0.11.4 • Published 3 years ago
create-ts-json-schema v0.11.4
create-ts-json-schema
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.

installation
npm install create-ts-json-schema --save-devUsage
# 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 databaseFastify.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 |