npm.io
0.11.4 • Published 3 years agoCLI

create-ts-json-schema

Licence
MIT
Version
0.11.4
Deps
29
Size
984 kB
Vulns
0
Weekly
0
Stars
6

create-ts-json-schema

Download Status Github Star Github Issues NPM version License

automatically generate json-schema from TypeScript source code and management it!

What is create-ts-json-schema?

create-ts-json-schema is tiny cli utility that automatically generate json-schema from TypeScript source code and management generated json-schema. If you use fastify.js that uses json-schema to validate request and reply. But managing a large number of json-schema takes a lot of effort. create-ts-json-schema help that work.

demo

installation

npm install create-ts-json-schema --save-dev

Usage

# generate json-schema and create database (if exist)
ctjs add

# delete json-schema from database
ctjs del

# truncate database
ctjs truncate

# regenerate all json-schema in database

Fastify.js

Example for fastify

import fastify from 'fastify';
import fs from 'fs';

const server = fastify();
const db = JSON.parse((await fs.promises.readFile('db.json')).toString());
Object.value(db).forEach((record) => server.addSchema(JSON.parse(record.schema)));

server.get(
  '/pokemon/:name',
  {
    schema: {
      tags: ['Pokemon'],
      summary: 'Pokemon detail information using by name',
      querystring: { $ref: 'IReqPokeDetailQuerystring' }, // You can access local reference for fastify schema store
      params: { $ref: 'IReqPokeDetailParams' }, // You can access local reference for fastify schema store
      response: {
        200: { $ref: 'IPokemonDto' }, // You can access local reference for fastify schema store
      },
    },
  },
  (req) => {
    /* your handler code */
  },
);

command and option

command
command alias description
add a add or update json-schema to database file
del d delete json-schema from database file
refresh r regenerate all json-schema in database file
truncate t reset database file
add option
option alias description
project p tsconfig.json path
config c configuration file path
output o database file path
skip-error skip compile error on source file
types TypeScript type of source code. You can use interface, type alias, enum, class.
files TypeScript source code file path
format generated json-schema save format: json, string, base64
delete option
option alias description
project p tsconfig.json path
config c configuration file path
output o database file path
skip-error skip compile error on source file
types TypeScript type of source code. You can use interface, type alias, enum, class.
files TypeScript source code file path
refresh option
option alias description
project p tsconfig.json path
config c configuration file path
output o database file path
skip-error skip compile error on source file
format generated json-schema save format: json, string, base64
truncate option
option alias description
project p tsconfig.json path
config c configuration file path
output o database file path