TypeScript d.ts file generator from JSON Schema file or OpenAPI(Swagger) spec file.
npm install -g dtsgenerator
$ dtsgen --help
Usage: dtsgenerator [options] <file ... | file patterns using node-glob>
Options:
-V, --version output the version number
-c, --config <file> set configuration file path. (default: "dtsgen.json")
--url <url> input json schema from the url. (default: [])
--stdin read stdin with other files or urls.
-o, --out <file> output filename.
-t, --target <version> Specify ECMAScript target version: 'ES3', 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT' (default).
--info for developer mode. output loaded config and plugin details only.
--output-ast output TypeScript AST instead of d.ts file.
-h, --help display help for command
Examples:
$ dtsgen --help
$ dtsgen --out types.d.ts schema/**/*.schema.json
$ cat schema1.json | dtsgen -c dtsgenrc.json
$ dtsgen -o swaggerSchema.d.ts --url https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/schemas/v2.0/schema.json
$ dtsgen -o petstore.d.ts -n PetStore --url https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/examples/v2.0/yaml/petstore.yaml
$ dtsgen -c dtsgen-test.json --info
If you need a proxy to fetch the schema, please set the following environment variables.
export http_proxy=http://proxy.example.com:8080/
export https_proxy=http://proxy.example.com:8080/
# If there are exceptionally hosts that do not go through a proxy
export no_proxy=google.com, yahoo.com
The dtsgenerator v3 has made the following braking changes from v2.
- Support Plug-in feature. See the Plug-in section for more information.
- Change the command line options.
- Remove the
--namespace
option. Use the@dtsgenerator/replace-namespace
plug-in instead. - Add the
--config
option. Mainly for setting up the Plug-in. - And add more options.
- Remove the
- TypeScript AST is now used internally to generate type definitions.
- Search by npm: https://www.npmjs.com/search?q=dtsgenerator%20plugin
- Find by the @dtsgenerator repositories: https://github.com/dtsgenerator
@dtsgenerator/replace-namespace
: This plug-in is instead the--namespace
option on old version.@dtsgenerator/decorate-typename
: This plug-in can decorate the output type name.@dtsgenerator/single-quote
: This plug-in replace the quote mark to single.
- Scaffold by the command:
npm init @dtsgenerator **plugin-name**
- Edit
**plugin-name**/index.ts
- Do test:
npm test
- Build it:
npm run build
- Publish to npm:
npm publish
Output debug message by debug library.
$ DEBUG=dtsgen dtsgen schema/news.json
-
JSON Schema
- Draft-04 and before
- Draft-07 and before
-
OpenAPI
- OpenAPI Specification version 2.0
- OpenAPI Specification version 3.0
v3.0.2 (2020-06-11)
- fixed:
- Remove old example by #421. Thank you @maapteh 👍
v3.0.1 (2020-06-09)
- features:
- Support the plug-in for pre-process and post-process.
- Change command line options and Support config file.
- Use the TypeScript AST for intermediate format.
dtsgenerator
is licensed under the MIT license.
Copyright © 2016-2020, Hiroki Horiuchi