UNPKG

maketypes

Version:

Make TypeScript types and proxy objects from example JSON objects. Can use proxy objects to dynamically type check JSON at runtime.

38 lines 3.47 kB
#!/usr/bin/env node "use strict"; var yargs = require("yargs"); var fs = require("fs"); var path = require("path"); var index_1 = require("./lib/index"); var argv = yargs.usage('Usage: $0 [options] inputFile rootName') .alias('i', 'interface-file') .string('i') .describe('i', 'Specify output file for interfaces') .alias('p', 'proxy-file') .string('p') .describe('p', 'Specity output file for TypeScript proxy classes') .help('h') .alias('h', 'help') .argv; var interfaceWriter = new index_1.NopWriter(); var proxyWriter = interfaceWriter; if (argv.i && argv.p && path.resolve(argv.i) === path.resolve(argv.p)) { console.error("Interfaces and proxies cannot be written to same file."); yargs.showHelp(); process.exit(1); } if (argv.i) { interfaceWriter = new index_1.StreamWriter(fs.createWriteStream(argv.i)); } if (argv.p) { proxyWriter = new index_1.StreamWriter(fs.createWriteStream(argv.p)); } if (argv._.length !== 2) { console.error("Please supply an input file with samples in a JSON array, and a symbol to use for the root interface / proxy."); yargs.showHelp(); process.exit(1); } var samples = JSON.parse(fs.readFileSync(argv._[0]).toString()); var e = new index_1.Emitter(interfaceWriter, proxyWriter); e.emit(samples, argv._[1]); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDZCQUErQjtBQUMvQix1QkFBeUI7QUFDekIsMkJBQTZCO0FBRTdCLHFDQUE2RDtBQUU3RCxJQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLHdDQUF3QyxDQUFDO0tBQy9ELEtBQUssQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7S0FDNUIsTUFBTSxDQUFDLEdBQUcsQ0FBQztLQUNYLFFBQVEsQ0FBQyxHQUFHLEVBQUUsb0NBQW9DLENBQUM7S0FDbkQsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUM7S0FDeEIsTUFBTSxDQUFDLEdBQUcsQ0FBQztLQUNYLFFBQVEsQ0FBQyxHQUFHLEVBQUUsa0RBQWtELENBQUM7S0FDakUsSUFBSSxDQUFDLEdBQUcsQ0FBQztLQUNULEtBQUssQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDO0tBQ2xCLElBQUksQ0FBQztBQUVSLElBQUksZUFBZSxHQUFHLElBQUksaUJBQVMsRUFBRSxDQUFDO0FBQ3RDLElBQUksV0FBVyxHQUFHLGVBQWUsQ0FBQztBQUNsQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQztJQUN4RSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDO0FBQ0QsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDWCxlQUFlLEdBQUcsSUFBSSxvQkFBWSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuRSxDQUFDO0FBQ0QsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDWCxXQUFXLEdBQUcsSUFBSSxvQkFBWSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvRCxDQUFDO0FBQ0QsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixPQUFPLENBQUMsS0FBSyxDQUFDLCtHQUErRyxDQUFDLENBQUM7SUFDL0gsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQztBQUVELElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztBQUNsRSxJQUFNLENBQUMsR0FBRyxJQUFJLGVBQU8sQ0FBQyxlQUFlLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDcEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDIn0=