blob: 0faf7279e8c57d876b745d4a36c180d84ceb2f9f [file] [log] [blame]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var commander_1 = tslib_1.__importDefault(require("commander"));
var pkg = require('../package.json');
var CommandOptions = (function () {
function CommandOptions() {
this.files = [];
this.urls = [];
}
CommandOptions.prototype.isReadFromStdin = function () {
return this.stdin || this.files.length === 0 && this.urls.length === 0;
};
return CommandOptions;
}());
exports.CommandOptions = CommandOptions;
var opts = new CommandOptions();
clear();
exports.default = opts;
function initialize(argv) {
return parse(opts, argv);
}
exports.initialize = initialize;
function clear() {
opts.files = [];
opts.urls = [];
opts.stdin = undefined;
opts.out = undefined;
opts.namespace = undefined;
}
exports.clear = clear;
function parse(o, argv) {
var command = new commander_1.default.Command();
function collectUrl(val, memo) {
memo.push(val);
return memo;
}
command
.version(pkg.version)
.usage('[options] <file ... | file patterns using node-glob>')
.option('--url <url>', 'input json schema from the url.', collectUrl, [])
.option('--stdin', 'read stdin with other files or urls.')
.option('-o, --out <file>', 'output d.ts filename.')
.option('-n, --namespace <namespace>', 'use root namespace instead of definitions or components.schema from OpenAPI, or -n "" to suppress namespaces.')
.on('--help', function () {
console.log('');
console.log(' Examples:');
console.log('');
console.log(' $ dtsgen --help');
console.log(' $ dtsgen --out types.d.ts schema/**/*.schema.json');
console.log(' $ cat schema1.json | dtsgen');
console.log(' $ dtsgen -o swaggerSchema.d.ts --url https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/schemas/v2.0/schema.json');
console.log(' $ dtsgen -o petstore.d.ts -n PetStore --url https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/examples/v2.0/yaml/petstore.yaml');
})
.parse(argv);
var res = command;
o.files = command.args;
o.urls = res.url;
o.stdin = res.stdin;
o.out = res.out;
o.namespace = res.namespace;
return command;
}
//# sourceMappingURL=commandOptions.js.map