@anttiviljami/dtsgenerator
Version:
TypeScript d.ts file generator for JSON Schema file
57 lines (56 loc) • 1.96 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const fs = tslib_1.__importStar(require("fs"));
const path_1 = require("path");
const commandOptions_1 = tslib_1.__importStar(require("./commandOptions"));
const core_1 = tslib_1.__importStar(require("./core"));
const config_1 = tslib_1.__importStar(require("./core/config"));
const utils_1 = require("./utils");
async function loadContents() {
let contents = [];
const ps = [];
if (config_1.default.input.stdin) {
ps.push((0, core_1.readSchemaFromStdin)().then((s) => {
contents.push(s);
}));
}
for (const pattern of config_1.default.input.files) {
ps.push((0, core_1.readSchemasFromFile)(pattern).then((ss) => {
contents = contents.concat(ss);
}));
}
for (const url of config_1.default.input.urls) {
ps.push((0, core_1.readSchemaFromUrl)(url).then((s) => {
contents.push(s);
}));
}
await Promise.all(ps);
return contents;
}
async function exec() {
const command = (0, commandOptions_1.initialize)(process.argv);
const pc = (0, utils_1.readConfig)(commandOptions_1.default);
(0, config_1.setConfig)(pc);
if (commandOptions_1.default.info) {
const version = command.opts().version;
await (0, config_1.showConfig)(version, config_1.default);
return;
}
const contents = await loadContents();
const result = await (0, core_1.default)({
contents,
});
if (commandOptions_1.default.out) {
fs.mkdirSync((0, path_1.dirname)(commandOptions_1.default.out), { recursive: true });
fs.writeFileSync(commandOptions_1.default.out, result, { encoding: 'utf-8' });
}
else {
console.log(result);
}
}
exec().catch((err) => {
var _a;
console.error((_a = err.stack) !== null && _a !== void 0 ? _a : err);
process.exitCode = 1;
});
;