0.5.0 • Published 6 years ago

schema2ts v0.5.0

Weekly downloads
5
License
MIT
Repository
github
Last release
6 years ago

Schema2ts is developed to generate Typescript code from REST API schema.

Command Line usage

Syntax: schema2ts options

Options:
    -h, --help                   Print this message.
    --template FILE/URL          Template of the generated files.
    --tsx                        Generates '.tsx' file (or .d.tsx if -d is on).
    -d, --declaration            Generates corresponding '.d.ts' file.
    -o, --out FILE               Generates file to someplace.
    --outPath DIRECTORY          Generates file to the directory.
    --noEmit                     Do not emit outputs.

API Usage

interface Schema2tsAPI {
    /** Custom template that used to generate code */ template?: string
    /** If this is true, template will be treated as url/file path */ isTemplateUrl?: boolean
    /** Schema that used to generate code */ schema: string | object
    /** If this is true, schema will be treated as url/file path */ isSchemaUrl?: boolean
    /** Generate only declarations */ declaration?: boolean
    /** If you only want to change comments on the top, you may need this. */ customFileComment?: string
    /** Code generator */ generator?: typeof RestClientGenerator
}
export default function(config: Schema2tsAPI): Promise<string>

Add a custom specification

Here is an example

import { Specs, SpecificationProvider } from 'schema2ts/dist/specifications'
// All Specs are in this Map

import API, { Schema2tsServerDefinition } from 'schema2ts/dist/api'
// Your transformer need to return a Schema2tsServerDefinition

declare const MySpec: SpecificationProvider
Specs.set('My API', MySpec)
// Set your spec before API call
API({ schema: { mySchema: true } }).then(result => {})

Utils for developers

In schema2ts/dist/utils.js, we have some utils that are useful when handle with schema objects.

Important!: These utils are not guaranteed to be stable, especially undocumented ones.

/**
 * This is an impl of parsing JSON Schema into internal expression of type in schema2ts
 *
 * About JSON Schema, see: https://tools.ietf.org/html/draft-fge-json-schema-validation-00
 */
async createJSONSchemaToTypes(document: any) => (from: JSONSchema, ): Types.Type

In schema2ts/dist/code/types.js, we define an internal express of Types

See Internal type express

Template variables

Variables that you can use in template comments

  • %version%: Current version of schema2ts
  • %typescript-version%: Current version of typescript that schema2ts use
  • %when%: Current time
  • %default-template%: Include default template of schema2ts

Q&A

Supported schema type?

Supported generator?

You can create your own generator!

What does it generate?

We have some examples in the ./examples folder.

0.5.0

6 years ago

0.4.4

6 years ago

0.4.3

6 years ago

0.4.2

6 years ago

0.4.1

6 years ago

0.4.0

6 years ago

0.3.0

6 years ago

0.2.9

6 years ago

0.2.8

6 years ago

0.2.7

6 years ago

0.2.6

6 years ago

0.2.5

6 years ago

0.2.4

6 years ago

0.2.3

6 years ago

0.2.2

6 years ago

0.2.1

6 years ago

0.2.0

7 years ago

0.1.11

7 years ago

0.1.10

7 years ago

0.1.9

7 years ago

0.1.8

7 years ago

0.1.7

7 years ago

0.1.6

7 years ago

0.1.5

7 years ago

0.1.4

7 years ago

0.1.3

7 years ago