UNPKG

dtsgenerator

Version:

TypeScript d.ts file generator for JSON Schema file

94 lines (93 loc) 3.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.showConfig = exports.clearToDefault = exports.setConfig = void 0; const typescript_1 = require("typescript"); const type_1 = require("./type"); const defaultConfig = { configFile: undefined, input: { files: [], urls: [], stdin: false, }, outputFile: undefined, target: typescript_1.ScriptTarget.Latest, outputAST: false, plugins: {}, }; let config = Object.assign({}, defaultConfig); function setConfig(input) { config = Object.assign(config, input); } exports.setConfig = setConfig; function clearToDefault() { setConfig(defaultConfig); } exports.clearToDefault = clearToDefault; async function showConfig(version, c) { var _a, _b, _c; console.log('Version: ' + version); console.log('ConfigFile: ' + ((_b = (_a = c.configFile) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : '"not set"')); console.log(); console.log('Config:'); console.log(' input:'); if (c.input.files.length > 0) { console.log(' files: ' + JSON.stringify(c.input.files)); } if (c.input.urls.length > 0) { console.log(' urls: ' + JSON.stringify(c.input.urls)); } if (c.input.stdin) { console.log(' stdin: true'); } if (c.outputFile != null) { console.log(' outputFile: ' + JSON.stringify(c.outputFile)); } console.log(' target: ' + showScriptTarget(c.target)); if (c.outputAST) { console.log(' outputAST: true'); } console.log(' plugins:'); for (const [name, option] of Object.entries(c.plugins)) { console.log(` ${name}: ${JSON.stringify(option)}`); } console.log(); const plugins = []; for (const [name, option] of Object.entries(c.plugins)) { const p = await (0, type_1.loadPlugin)(name, option); if (p != null) { plugins.push(p); } } console.log('Plugins: count=' + plugins.length.toString()); for (const p of plugins) { console.log(` ${p.meta.name}@${p.meta.version}: ${(_c = p.meta.description) !== null && _c !== void 0 ? _c : ''}`); } console.log(); } exports.showConfig = showConfig; function showScriptTarget(target) { switch (target) { case typescript_1.ScriptTarget.ES3: return 'ES3'; case typescript_1.ScriptTarget.ES5: return 'ES5'; case typescript_1.ScriptTarget.ES2015: return 'ES2015'; case typescript_1.ScriptTarget.ES2016: return 'ES2016'; case typescript_1.ScriptTarget.ES2017: return 'ES2017'; case typescript_1.ScriptTarget.ES2018: return 'ES2018'; case typescript_1.ScriptTarget.ES2019: return 'ES2019'; case typescript_1.ScriptTarget.ES2020: return 'ES2020'; case typescript_1.ScriptTarget.ESNext: return 'ESNext'; default: return 'Latest'; } } exports.default = config;