@aceandtate/contentful-ts-type-generator 中文文档教程
contentful-ts-type-generator
注意:这是 github.com/arimkevi/contentful-ts-type-generator 的一个分支从 Contentful
Usage
获取预览 api 令牌和 spaceId。
将此存储库安装到您的节点项目
npm install @aceandtate/contentful-ts-type-generator
- Run the script to get help options
npx generateContentfulTypes
- Base usage
npx generateContentfulTypes <SPACE_ID> <PREVIEW_API_TOKEN>
中这将生成 contentfulTypes.d.ts 文件,该文件将包含所有空间模型作为接口和继承。 导出还包含模型 sys.id。
如果您在 package.json 脚本中使用 generateContentfulTypes
命令,则可以省略它前面的 npx
。
- Options
-o, --output <file>, Output file path. Default: './contentfulTypes.d.ts'
-e, --environment [value], Contentful environment id to use. Default: 'master'
-p, --prefix <value>, Name prefix for generated interfaces. Default: ''
-h, --host [value], Default: 'api.contentful.com'
-i, --ignore [value], Ignored field(s): a single field id or comma separated list of field ids. Default: ''
- Once the types are generated you can use contentful.js calling the following function:
const client = contentful.createClient({
host: 'contentfulHost',
accessToken: 'accessToken',
space: 'spaceId',
resolveLinks: true,
})
export function getContent<T>(
contentfulLocale: string, contentType: string
): Promise<contentful.Entry<T>> {
return client
.getEntries({ content_type: contentType, locale: contentfulLocale })
.then((response: contentful.EntryCollection<T>) => response.items[0])
}
getContent<T>(locale, YourContentfulType)
contentful-ts-type-generator
Note: This is a fork of github.com/arimkevi/contentful-ts-type-generator
Usage
Get preview api token and spaceId from Contentful.
Install this repository into your node project
npm install @aceandtate/contentful-ts-type-generator
- Run the script to get help options
npx generateContentfulTypes
- Base usage
npx generateContentfulTypes <SPACE_ID> <PREVIEW_API_TOKEN>
This will generate contentfulTypes.d.ts file that will contain all of the space model as interfaces and inheritance. Export contains also model sys.id.
If you use the generateContentfulTypes
command in your package.json scripts, you can leave out the npx
in front of it.
- Options
-o, --output <file>, Output file path. Default: './contentfulTypes.d.ts'
-e, --environment [value], Contentful environment id to use. Default: 'master'
-p, --prefix <value>, Name prefix for generated interfaces. Default: ''
-h, --host [value], Default: 'api.contentful.com'
-i, --ignore [value], Ignored field(s): a single field id or comma separated list of field ids. Default: ''
- Once the types are generated you can use contentful.js calling the following function:
const client = contentful.createClient({
host: 'contentfulHost',
accessToken: 'accessToken',
space: 'spaceId',
resolveLinks: true,
})
export function getContent<T>(
contentfulLocale: string, contentType: string
): Promise<contentful.Entry<T>> {
return client
.getEntries({ content_type: contentType, locale: contentfulLocale })
.then((response: contentful.EntryCollection<T>) => response.items[0])
}
getContent<T>(locale, YourContentfulType)