Skip to content

Repository files navigation

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.

Node.js CInpm

Description

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.

How to install this plugin

$ csdx plugins:install contentstack-cli-tsgen

Migration

Refer to the Migration Guide version 3 if you are migrating from version 2 or older.

How to use this plugin

$ 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

Supported Fields

  • 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

Supported Field Options

  • Mandatory
  • Multiple
  • Multiple Max Limit
  • Description (used in JSDoc comment)

Example Output

/** 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;};}

About

Generate TypeScript typings from a Stack

Topics

Resources

Security policy

Stars

11 stars

Watchers

10 watching

Forks

Releases

Used by

Contributors

Languages