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
JavaScript
;
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=