@aceandtate/contentful-ts-type-generator 中文文档教程

发布于 4年前 浏览 17 项目主页 更新于 3年前

contentful-ts-type-generator

注意:这是 github.com/arimkevi/contentful-ts-type-generator 的一个分支从 Contentful

Usage

  1. 获取预览 api 令牌和 spaceId。

  2. 将此存储库安装到您的节点项目

npm install @aceandtate/contentful-ts-type-generator
  1. Run the script to get help options
npx generateContentfulTypes
  1. Base usage
npx generateContentfulTypes <SPACE_ID> <PREVIEW_API_TOKEN>

中这将生成 contentfulTypes.d.ts 文件,该文件将包含所有空间模型作为接口和继承。 导出还包含模型 sys.id。

如果您在 package.json 脚本中使用 generateContentfulTypes 命令,则可以省略它前面的 npx

  1. 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: ''
  1. 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

  1. Get preview api token and spaceId from Contentful.

  2. Install this repository into your node project

npm install @aceandtate/contentful-ts-type-generator
  1. Run the script to get help options
npx generateContentfulTypes
  1. 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.

  1. 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: ''
  1. 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)
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文