1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.showConfig = exports.clearToDefault = exports.setConfig = void 0;
|
4 | const typescript_1 = require("typescript");
|
5 | const type_1 = require("./type");
|
6 | const defaultConfig = {
|
7 | input: {
|
8 | files: [],
|
9 | urls: [],
|
10 | stdin: false,
|
11 | },
|
12 | outputAST: false,
|
13 | target: typescript_1.ScriptTarget.Latest,
|
14 | plugins: {},
|
15 | };
|
16 | let config = Object.assign({}, defaultConfig);
|
17 | function setConfig(input) {
|
18 | config = Object.assign(config, input);
|
19 | }
|
20 | exports.setConfig = setConfig;
|
21 | function clearToDefault() {
|
22 | setConfig(defaultConfig);
|
23 | }
|
24 | exports.clearToDefault = clearToDefault;
|
25 | async function showConfig(version, c) {
|
26 | var _a, _b, _c;
|
27 | console.log('Version: ' + version);
|
28 | console.log('ConfigFile: ' + ((_b = (_a = c.configFile) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : '"not set"'));
|
29 | console.log();
|
30 | console.log('Config:');
|
31 | console.log(' input:');
|
32 | if (c.input.files.length > 0) {
|
33 | console.log(' files: ' + JSON.stringify(c.input.files));
|
34 | }
|
35 | if (c.input.urls.length > 0) {
|
36 | console.log(' urls: ' + JSON.stringify(c.input.urls));
|
37 | }
|
38 | if (c.input.stdin) {
|
39 | console.log(' stdin: true');
|
40 | }
|
41 | if (c.outputFile != null) {
|
42 | console.log(' outputFile: ' + JSON.stringify(c.outputFile));
|
43 | }
|
44 | console.log(' target: ' + showScriptTarget(c.target));
|
45 | if (c.outputAST) {
|
46 | console.log(' outputAST: true');
|
47 | }
|
48 | console.log(' plugins:');
|
49 | for (const [name, option] of Object.entries(c.plugins)) {
|
50 | console.log(` ${name}: ${JSON.stringify(option)}`);
|
51 | }
|
52 | console.log();
|
53 | const plugins = [];
|
54 | for (const [name, option] of Object.entries(c.plugins)) {
|
55 | const p = await type_1.loadPlugin(name, option);
|
56 | if (p != null) {
|
57 | plugins.push(p);
|
58 | }
|
59 | }
|
60 | console.log('Plugins: count=' + plugins.length.toString());
|
61 | for (const p of plugins) {
|
62 | console.log(` ${p.meta.name}@${p.meta.version}: ${(_c = p.meta.description) !== null && _c !== void 0 ? _c : ''}`);
|
63 | }
|
64 | console.log();
|
65 | }
|
66 | exports.showConfig = showConfig;
|
67 | function showScriptTarget(target) {
|
68 | switch (target) {
|
69 | case typescript_1.ScriptTarget.ES3:
|
70 | return 'ES3';
|
71 | case typescript_1.ScriptTarget.ES5:
|
72 | return 'ES5';
|
73 | case typescript_1.ScriptTarget.ES2015:
|
74 | return 'ES2015';
|
75 | case typescript_1.ScriptTarget.ES2016:
|
76 | return 'ES2016';
|
77 | case typescript_1.ScriptTarget.ES2017:
|
78 | return 'ES2017';
|
79 | case typescript_1.ScriptTarget.ES2018:
|
80 | return 'ES2018';
|
81 | case typescript_1.ScriptTarget.ES2019:
|
82 | return 'ES2019';
|
83 | case typescript_1.ScriptTarget.ES2020:
|
84 | return 'ES2020';
|
85 | case typescript_1.ScriptTarget.ESNext:
|
86 | return 'ESNext';
|
87 | default:
|
88 | return 'Latest';
|
89 | }
|
90 | }
|
91 | exports.default = config;
|