dtsgenerator
Version:
TypeScript d.ts file generator for JSON Schema file
94 lines (93 loc) • 3.08 kB
JavaScript
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;
;