This repository is archived. Development continues in the cli-plugins monorepo. Open issues at cli-plugins/issues.
The npm package name is unchanged:contentstack-cli-tsgen.
This is a plugin for Contentstack's CLI. This plugin generates TypeScript typings from Content Types. Interfaces and fields are optionally annotated with JSDoc comments.
$ csdx plugins:install contentstack-cli-tsgenRefer to the Migration Guide version 3 if you are migrating from version 2 or older.
$ csdx tsgen
generate TypeScript typings from a Stack
USAGE
$ csdx tsgen
OPTIONS
-a, --token-alias=token-alias (required) delivery token alias
-d, --[no-]doc include documentation comments
-o, --output=output (required) full path to output
-p, --prefix=prefix interface prefix, e.g. "I"
EXAMPLES
$ csdx tsgen -a "delivery token alias" -o "contentstack/generated.d.ts"
$ csdx tsgen -a "delivery token alias" -o "contentstack/generated.d.ts" -p "I"
$ csdx tsgen -a "delivery token alias" -o "contentstack/generated.d.ts" --no-doc
See code: src/commands/tsgen.ts
- Number
- Text
- IsoDate
- Boolean
- Single Select w/ String and Number Types
- Multiple Select w/ String and Number Types
- Modular Block
- Global Field
- Group
- Link
- File
- References
- Mandatory
- Multiple
- Multiple Max Limit
- Description (used in JSDoc comment)
/** This is a description. */interfaceBuiltinExample{/** Title */title: string;/** URL */url: string;/** Group1 */group1?: {/** Group2 */group2?: {/** Group3 */group3?: {/** Number */number?: number;};};};/** SEO */seo?: Seo;/** Single line textbox */single_line?: string;/** Multi line textbox */multi_line?: string;/** Rich text editor */rich_text_editor?: string;/** Multiple Single Line Textbox */multiple_single_line_textbox?: string[];/** Markdown */markdown?: string;/** Multiple Choice */multiple_choice?: ("Choice 1"|"Choice 2"|"Choice 3")[];/** Single Choice */single_choice: "Choice 1"|"Choice 2"|"Choice 3";/** Modular Blocks */modular_blocks?:ModularBlocks[];/** Number */number?: number;/** Link */link?: Link;/** File */file?: File;/** Boolean */boolean?: boolean;/** Date */date?: string;}interfaceModularBlocks{block_1: {/** Number */number?: number;/** Single line textbox */single_line?: string;};block_2: {/** Boolean */boolean?: boolean;/** Date */date?: string;};seo_gf: {/** Keywords */keywords?: string;/** Description */description?: string;};}