Convert MicroCMS schema to TypeScript type definitions.
microcms-typescript src-dir [dist-file]
Use the file name as the type name.
If there are multiple schema files with the same type name, the one with the latest date will be used for conversion.
api-contents-20210905132840.json -> cms-types.ts
{
"apiFields": [
{
"idValue": "g8ZUm5uLha",
"fieldId": "title",
"name": "title",
"kind": "text",
"required": true,
"isUnique": false
},
{ "fieldId": "visible", "name": "visible", "kind": "boolean", "required": true },
{ "fieldId": "keyword", "name": "keyword", "kind": "textArea" },
{ "fieldId": "parent", "name": "parent", "kind": "relation" },
{ "fieldId": "body", "name": "body", "kind": "textArea" }
],
"customFields": []
}
import type { EndPoints } from './cms-types';
let a:EndPoints["gets"]["contents"];
/*
{
limit:number
offset:number
totalCount:number
contents:{
id: string;
title: string;
visible: boolean;
keyword?: string;
parent?: string;
body?: string;
createdAt: string;
updatedAt: string;
publishedAt: string;
revisedAt: string;
}[]
}
*/
let b:EndPoints["get"]["contents"];
/*
{
id: string;
title: string;
visible: boolean;
keyword?: string;
parent?: string;
body?: string;
createdAt: string;
updatedAt: string;
publishedAt: string;
revisedAt: string;
}
*/
let c:EndPoints["post"]["contents"];
let d:EndPoints["put"]["contents"];
/*
{
title: string;
visible: boolean;
keyword?: string;
parent?: string;
body?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
revisedAt?: string;
}
*/
let e:EndPoints["patch"]["contents"];
/*
{
title?: string;
visible?: boolean;
keyword?: string;
parent?: string;
body?: string;
createdAt?: string;
updatedAt?: string;
publishedAt?: string;
revisedAt?: string;
}
*/