Skip to content

Latest commit

 

History

History
100 lines (70 loc) · 1.69 KB

README.md

File metadata and controls

100 lines (70 loc) · 1.69 KB

dts-from-json

Command line utility to emit TypeScript type declaration files for JSON files powered by

Installation and usage

npm install -g dts-from-json
dts-from-json <json-file>

You can pass a local path or URL as <json-file>.

Save to a file

The types are printed in stdout, to save to a file simply pipe to output to a file:

dts-from-json <json-file> > <dts-dir>

Examples

dts-from-json demo/json/senators.json
dts-from-json https://raw.githubusercontent.com/Biuni/PokemonGO-Pokedex/master/pokedex.json
dts-from-json demo/json/senators.json > demo/types/senators.d.ts 
dts-from-json demo/json/senators.json --root Senators
dts-from-json ./demo/json/senators.json --root Senators --types true

Usage via npx

npx dts-from-json <json-file>

Customize the root type

The default root type is the CamelCase version of the json file name. For example, if your file is called nobe-prize.d.ts the root type will be NobelPrice by default.

$ dts-from-json <json-file> --root Senators

Use type instead of interface

 $ dts-from-json <json-file> --types

Known limitations

  • Using json properties with names that have collisions with other types will cause issues. For example, if you have json that looks like:
{
    "meta": {
        // ...
    },
    "objects": [
        // ...
    ]
}

It will be translated into:

interface Meta {
    // ...
}

interface Object { // <-- Collision with Object type
    // ...
}

interface RootObject {
  meta: Meta;
  objects: Object[];
}

This will lead to problems with the already defined Object type.