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