Skip to content

Latest commit

 

History

History
86 lines (67 loc) · 1.36 KB

README.md

File metadata and controls

86 lines (67 loc) · 1.36 KB

ts-transform-json-schema

  • 🌳 Generate inline JSON schema from TypeScript types

Example

In

import * as JsonSchema from "ts-transform-json-schema";

export interface SomeInterface {
  a: string;
  b: number;
  c?: boolean;
}

export const schema = JsonSchema.fromType<SomeInterface>({
  additionalProperties: false
});
// tsconfig.json
{
  "compilerOptions": {
    "target": "es2015",
    "plugins": [
      {
        "transform": "ts-transform-json-schema",
        "type": "program"
      }
    ]
  }
}

Out

import * as JsonSchema from "ts-transform-json-schema";
export const schema = {
  additionalProperties: false,
  type: "object", 
  properties: { 
    a: { type: "string" }, 
    b: { type: "number" }, 
    c: { type: "boolean" } 
  }, 
  $schema: "http://json-schema.org/draft-07/schema#" 
};

Installation

npm install ts-transform-json-schema ttypescript --save-dev

Usage

// tsconfig.json
{
  "compilerOptions": {
    "target": "es2015",
    "plugins": [
      {
        "transform": "ts-transform-json-schema",
        "type": "program"
      }
    ]
  }
}

See TTypeScript for docs about integration with other toolchains.


See ./example for a basic setup based on TTypeScript

License

MIT