presetter 3.1.1 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/lib/content.d.ts +49 -7
- package/lib/content.js +127 -133
- package/lib/directive.js +67 -196
- package/lib/error.js +12 -36
- package/lib/executable/entry.js +55 -73
- package/lib/executable/error.js +24 -55
- package/lib/executable/index.js +5 -23
- package/lib/index.d.ts +1 -0
- package/lib/index.js +21 -69
- package/lib/io.d.ts +2 -3
- package/lib/io.js +78 -172
- package/lib/package.js +58 -149
- package/lib/preset.d.ts +6 -6
- package/lib/preset.js +149 -297
- package/lib/resolution.d.ts +4 -0
- package/lib/resolution.js +35 -0
- package/lib/run.js +59 -127
- package/lib/scripts.js +52 -128
- package/lib/template.d.ts +4 -1
- package/lib/template.js +85 -141
- package/lib/types.d.ts +24 -7
- package/lib/types.js +2 -1
- package/package.json +10 -2
- package/lib/content.js.map +0 -1
- package/lib/directive.js.map +0 -1
- package/lib/error.js.map +0 -1
- package/lib/executable/entry.js.map +0 -1
- package/lib/executable/error.js.map +0 -1
- package/lib/executable/index.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/io.js.map +0 -1
- package/lib/package.js.map +0 -1
- package/lib/preset.js.map +0 -1
- package/lib/run.js.map +0 -1
- package/lib/scripts.js.map +0 -1
- package/lib/template.js.map +0 -1
- package/lib/types.js.map +0 -1
package/lib/directive.js
CHANGED
@@ -1,222 +1,93 @@
|
|
1
1
|
"use strict";
|
2
|
-
|
3
|
-
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.isApplyDirective = isApplyDirective;
|
7
|
-
exports.isDirective = isDirective;
|
8
|
-
exports.isImportDirective = isImportDirective;
|
9
|
-
exports.resolveDirective = resolveDirective;
|
10
|
-
|
11
|
-
/*
|
12
|
-
* *** MIT LICENSE ***
|
13
|
-
* -------------------------------------------------------------------------
|
14
|
-
* This code may be modified and distributed under the MIT license.
|
15
|
-
* See the LICENSE file for details.
|
16
|
-
* -------------------------------------------------------------------------
|
17
|
-
*
|
18
|
-
* @summary Collection of helpers for parsing configuration
|
19
|
-
*
|
20
|
-
* @author Alvis HT Tang <alvis@hilbert.space>
|
21
|
-
* @license MIT
|
22
|
-
* @copyright Copyright (c) 2021 - All Rights Reserved.
|
23
|
-
* -------------------------------------------------------------------------
|
24
|
-
*/
|
25
|
-
|
26
|
-
/** syntax for an apply direc ti ve */
|
27
|
-
|
28
|
-
/** syntax for an import directive */
|
29
|
-
|
30
|
-
/** context that pass down to all parsers */
|
31
|
-
|
32
|
-
/** syntax for an apply directive */
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.resolveDirective = exports.isDirective = exports.isImportDirective = exports.isApplyDirective = void 0;
|
33
4
|
const applyRegex = /^@apply ((\.+\/|@)?[a-zA-Z]+[a-zA-Z0-9_/.-]*[a-zA-Z0-9_]+)(\[([a-zA-Z]+[a-zA-Z0-9_.]*)\])?$/;
|
34
|
-
/** syntax for an import directive */
|
35
|
-
|
36
5
|
const importRegex = /^@import ((\.+\/|@)?[a-zA-Z]+[a-zA-Z0-9_/.-]*[a-zA-Z0-9_]+)(\[([a-zA-Z]+[a-zA-Z0-9_.]*)\])?$/;
|
37
|
-
/**
|
38
|
-
* indicate whether the given value is an apply directive
|
39
|
-
* @param value value to be tested
|
40
|
-
* @returns true if the value is an apply directive
|
41
|
-
*/
|
42
|
-
|
43
6
|
function isApplyDirective(value) {
|
44
|
-
|
7
|
+
return typeof value === 'string' && !!applyRegex.exec(value);
|
45
8
|
}
|
46
|
-
|
47
|
-
* indicate whether the given value is an import directive
|
48
|
-
* @param value value to be tested
|
49
|
-
* @returns true if the value is an import directive
|
50
|
-
*/
|
51
|
-
|
52
|
-
|
9
|
+
exports.isApplyDirective = isApplyDirective;
|
53
10
|
function isImportDirective(value) {
|
54
|
-
|
11
|
+
return typeof value === 'string' && !!importRegex.exec(value);
|
55
12
|
}
|
56
|
-
|
57
|
-
* indicate whether the given value is a directive
|
58
|
-
* @param value value to be tested
|
59
|
-
* @returns true if the value is a directive
|
60
|
-
*/
|
61
|
-
|
62
|
-
|
13
|
+
exports.isImportDirective = isImportDirective;
|
63
14
|
function isDirective(value) {
|
64
|
-
|
15
|
+
return isApplyDirective(value) || isImportDirective(value);
|
65
16
|
}
|
66
|
-
|
67
|
-
* resolve directives from configuration options
|
68
|
-
* @param config configuration options
|
69
|
-
* @param context background context about the configuration
|
70
|
-
* @returns resolved configuration options with directive replaced
|
71
|
-
*/
|
72
|
-
|
73
|
-
|
17
|
+
exports.isDirective = isDirective;
|
74
18
|
function resolveDirective(config, context) {
|
75
|
-
|
76
|
-
|
77
|
-
packages
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
importMap,
|
82
|
-
stringifiedConfig
|
83
|
-
};
|
19
|
+
const packages = new Set();
|
20
|
+
const stringifiedConfig = stringifyConfigObject(config, Object.assign(Object.assign({}, context), { packages }));
|
21
|
+
const importMap = Object.fromEntries([...packages.values()].map((packageName, key) => [
|
22
|
+
packageName,
|
23
|
+
`import${key}`,
|
24
|
+
]));
|
25
|
+
return { importMap, stringifiedConfig };
|
84
26
|
}
|
85
|
-
|
86
|
-
* resolve an apply directive
|
87
|
-
* @param directiveMeta a potential directive in the form of [directive, options]
|
88
|
-
* @param context shared context passed from the upstream
|
89
|
-
* @returns resolved string or null if no directive is found
|
90
|
-
*/
|
91
|
-
|
92
|
-
|
27
|
+
exports.resolveDirective = resolveDirective;
|
93
28
|
function resolveApplyDirective(directiveMeta, context) {
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
const argsExpression = `[${resolvedArgs.join(', ')}]`;
|
106
|
-
const resolvedName = registerUsage(packages, packageName, importName);
|
107
|
-
return `${resolvedName}(...(${argsExpression} as const))`;
|
29
|
+
const [directive, ...args] = directiveMeta;
|
30
|
+
const { packages } = context;
|
31
|
+
if (typeof directive === 'string') {
|
32
|
+
const match = applyRegex.exec(directive);
|
33
|
+
if (match) {
|
34
|
+
const [_, packageName, _prefix, _importBracket, importName] = match;
|
35
|
+
const resolvedArgs = args.map((arg) => stringifyValue(arg, context));
|
36
|
+
const argsExpression = `[${resolvedArgs.join(', ')}]`;
|
37
|
+
const resolvedName = registerUsage(packages, packageName, importName);
|
38
|
+
return `${resolvedName}(...(${argsExpression} as const))`;
|
39
|
+
}
|
108
40
|
}
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
return null;
|
41
|
+
return null;
|
113
42
|
}
|
114
|
-
/**
|
115
|
-
* resolve an import directive
|
116
|
-
* @param directive a potential directive string
|
117
|
-
* @param context shared context passed from the upstream
|
118
|
-
* @returns resolved string or null if no directive is found
|
119
|
-
*/
|
120
|
-
|
121
|
-
|
122
43
|
function resolveImportDirective(directive, context) {
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
return registerUsage(packages, packageName, importName);
|
131
|
-
} // return null for a non-match
|
132
|
-
|
133
|
-
|
134
|
-
return null;
|
44
|
+
const { packages } = context;
|
45
|
+
const match = importRegex.exec(directive);
|
46
|
+
if (match) {
|
47
|
+
const [_, packageName, _prefix, _importBracket, importName] = match;
|
48
|
+
return registerUsage(packages, packageName, importName);
|
49
|
+
}
|
50
|
+
return null;
|
135
51
|
}
|
136
|
-
/**
|
137
|
-
* stringify a value which has a type object
|
138
|
-
* @param value the value to be stringified
|
139
|
-
* @param context shared context passed from the upstream
|
140
|
-
* @returns stringified value
|
141
|
-
*/
|
142
|
-
|
143
|
-
|
144
52
|
function stringifyObjectValue(value, context) {
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
53
|
+
var _a;
|
54
|
+
if (Array.isArray(value)) {
|
55
|
+
return ((_a = resolveApplyDirective(value, context)) !== null && _a !== void 0 ? _a : stringifyConfigArray(value, context));
|
56
|
+
}
|
57
|
+
else if (value !== null) {
|
58
|
+
return stringifyConfigObject(value, context);
|
59
|
+
}
|
60
|
+
else {
|
61
|
+
return 'null';
|
62
|
+
}
|
154
63
|
}
|
155
|
-
/**
|
156
|
-
* stringify an array
|
157
|
-
* @param config an object to be parsed
|
158
|
-
* @param context shared context passed from the upstream
|
159
|
-
* @returns stringified object
|
160
|
-
*/
|
161
|
-
|
162
|
-
|
163
64
|
function stringifyConfigArray(config, context) {
|
164
|
-
|
165
|
-
|
65
|
+
const values = config.map((value) => stringifyValue(value, context));
|
66
|
+
return `[${values.join(', ')}]`;
|
166
67
|
}
|
167
|
-
/**
|
168
|
-
* stringify an object
|
169
|
-
* @param config an object to be parsed
|
170
|
-
* @param context shared context passed from the upstream
|
171
|
-
* @returns stringified object
|
172
|
-
*/
|
173
|
-
|
174
|
-
|
175
68
|
function stringifyConfigObject(config, context) {
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
69
|
+
const values = Object.entries(config).map(([key, value]) => {
|
70
|
+
return `${JSON.stringify(key)}: ${stringifyValue(value, context)}`;
|
71
|
+
});
|
72
|
+
return `{${values.join(', ')}}`;
|
180
73
|
}
|
181
|
-
/**
|
182
|
-
* stringify a value
|
183
|
-
* @param value the value to be stringified
|
184
|
-
* @param context shared context passed from the upstream
|
185
|
-
* @returns stringified value
|
186
|
-
*/
|
187
|
-
|
188
|
-
|
189
74
|
function stringifyValue(value, context) {
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
default:
|
202
|
-
return JSON.stringify(value);
|
203
|
-
}
|
75
|
+
var _a;
|
76
|
+
switch (typeof value) {
|
77
|
+
case 'string':
|
78
|
+
return (_a = resolveImportDirective(value, context)) !== null && _a !== void 0 ? _a : JSON.stringify(value);
|
79
|
+
case 'object':
|
80
|
+
return stringifyObjectValue(value, context);
|
81
|
+
case 'boolean':
|
82
|
+
case 'number':
|
83
|
+
default:
|
84
|
+
return JSON.stringify(value);
|
85
|
+
}
|
204
86
|
}
|
205
|
-
/**
|
206
|
-
* add the needed package name to the registry and return its resolved name
|
207
|
-
* @param packages package registry
|
208
|
-
* @param packageName name of the package to be imported
|
209
|
-
* @param importName named import to be used
|
210
|
-
* @returns resolved symbol
|
211
|
-
*/
|
212
|
-
|
213
|
-
|
214
87
|
function registerUsage(packages, packageName, importName) {
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
const named = importName ? `.${importName}` : '';
|
220
|
-
return `import${packageKey}${named}`;
|
88
|
+
packages.add(packageName);
|
89
|
+
const packageKey = [...packages.values()].findIndex((name) => name === packageName);
|
90
|
+
const named = importName ? `.${importName}` : '';
|
91
|
+
return `import${packageKey}${named}`;
|
221
92
|
}
|
222
|
-
//# sourceMappingURL=
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc291cmNlL2RpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFnQ0EsTUFBTSxVQUFVLEdBQ2QsNkZBQTZGLENBQUM7QUFHaEcsTUFBTSxXQUFXLEdBQ2YsOEZBQThGLENBQUM7QUFPakcsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBYztJQUM3QyxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvRCxDQUFDO0FBRkQsNENBRUM7QUFPRCxTQUFnQixpQkFBaUIsQ0FBQyxLQUFjO0lBQzlDLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFGRCw4Q0FFQztBQU9ELFNBQWdCLFdBQVcsQ0FDekIsS0FBYztJQUVkLE9BQU8sZ0JBQWdCLENBQUMsS0FBSyxDQUFDLElBQUksaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQUpELGtDQUlDO0FBUUQsU0FBZ0IsZ0JBQWdCLENBQzlCLE1BQStCLEVBQy9CLE9BQXNCO0lBS3RCLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDbkMsTUFBTSxpQkFBaUIsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLGtDQUNqRCxPQUFPLEtBQ1YsUUFBUSxJQUNSLENBQUM7SUFFSCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUNsQyxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUM7UUFDL0MsV0FBVztRQUNYLFNBQVMsR0FBRyxFQUFFO0tBQ2YsQ0FBQyxDQUNILENBQUM7SUFFRixPQUFPLEVB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
|
package/lib/error.js
CHANGED
@@ -1,40 +1,16 @@
|
|
1
1
|
"use strict";
|
2
|
-
|
3
|
-
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.wrap = wrap;
|
7
|
-
|
8
|
-
/*
|
9
|
-
* *** MIT LICENSE ***
|
10
|
-
* -------------------------------------------------------------------------
|
11
|
-
* This code may be modified and distributed under the MIT license.
|
12
|
-
* See the LICENSE file for details.
|
13
|
-
* -------------------------------------------------------------------------
|
14
|
-
*
|
15
|
-
* @summary Helpers for handling errors
|
16
|
-
*
|
17
|
-
* @author Alvis HT Tang <alvis@hilbert.space>
|
18
|
-
* @license MIT
|
19
|
-
* @copyright Copyright (c) 2020 - All Rights Reserved.
|
20
|
-
* -------------------------------------------------------------------------
|
21
|
-
*/
|
22
|
-
|
23
|
-
/**
|
24
|
-
* prepend a rejected error message with a better explanation
|
25
|
-
* @param promise a promise to be resolved
|
26
|
-
* @param message a custom message to be prepended to any rejected message
|
27
|
-
* @returns wrapped error
|
28
|
-
*/
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.wrap = void 0;
|
29
4
|
async function wrap(promise, message) {
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
5
|
+
try {
|
6
|
+
return await promise;
|
7
|
+
}
|
8
|
+
catch (error) {
|
9
|
+
if (error instanceof Error) {
|
10
|
+
error.message = `${message}: ${error.message}`;
|
11
|
+
}
|
12
|
+
throw error;
|
35
13
|
}
|
36
|
-
|
37
|
-
throw error;
|
38
|
-
}
|
39
14
|
}
|
40
|
-
|
15
|
+
exports.wrap = wrap;
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2UvZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBcUJPLEtBQUssVUFBVSxJQUFJLENBQ3hCLE9BQW1CLEVBQ25CLE9BQWU7SUFFZixJQUFJO1FBQ0YsT0FBTyxNQUFNLE9BQU8sQ0FBQztLQUN0QjtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFO1lBQzFCLEtBQUssQ0FBQyxPQUFPLEdBQUcsR0FBRyxPQUFPLEtBQUssS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ2hEO1FBRUQsTUFBTSxLQUFLLENBQUM7S0FDYjtBQUNILENBQUM7QUFiRCxvQkFhQyJ9
|
package/lib/executable/entry.js
CHANGED
@@ -1,84 +1,66 @@
|
|
1
1
|
"use strict";
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
});
|
6
|
-
exports.entry =
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
var _preset = require("../preset");
|
13
|
-
|
14
|
-
var _run = require("../run");
|
15
|
-
|
16
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
17
|
-
|
18
|
-
/*
|
19
|
-
* *** MIT LICENSE ***
|
20
|
-
* -------------------------------------------------------------------------
|
21
|
-
* This code may be modified and distributed under the MIT license.
|
22
|
-
* See the LICENSE file for details.
|
23
|
-
* -------------------------------------------------------------------------
|
24
|
-
*
|
25
|
-
* @summary Entry point for the command line interface (CLI)
|
26
|
-
*
|
27
|
-
* @author Alvis HT Tang <alvis@hilbert.space>
|
28
|
-
* @license MIT
|
29
|
-
* @copyright Copyright (c) 2019 - All Rights Reserved.
|
30
|
-
* -------------------------------------------------------------------------
|
31
|
-
*/
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.entry = void 0;
|
7
|
+
const fs_extra_1 = require("fs-extra");
|
8
|
+
const yargs_1 = __importDefault(require("yargs"));
|
9
|
+
const _preset_1 = require("../preset");
|
10
|
+
const _run_1 = require("../run");
|
32
11
|
const useCommand = {
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
12
|
+
command: 'use <preset..>',
|
13
|
+
describe: 'adopt the specified preset to the project',
|
14
|
+
builder: (yargs) => yargs
|
15
|
+
.positional('preset', {
|
16
|
+
required: true,
|
17
|
+
type: 'string',
|
18
|
+
description: 'proceed only if the specified file exists',
|
19
|
+
})
|
20
|
+
.help(),
|
21
|
+
handler: async (argv) => (0, _preset_1.setupPreset)(...argv.preset),
|
41
22
|
};
|
42
23
|
const bootstrapCommand = {
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
}
|
57
|
-
}
|
24
|
+
command: 'bootstrap',
|
25
|
+
describe: 'setup the project according to the specified preset',
|
26
|
+
builder: (yargs) => yargs
|
27
|
+
.option('only', {
|
28
|
+
type: 'string',
|
29
|
+
description: 'proceed only if the specified file exists',
|
30
|
+
})
|
31
|
+
.help(),
|
32
|
+
handler: async (argv) => {
|
33
|
+
const { only } = argv;
|
34
|
+
if (!only || (await (0, fs_extra_1.pathExists)(only))) {
|
35
|
+
await (0, _preset_1.bootstrapPreset)();
|
36
|
+
}
|
37
|
+
},
|
58
38
|
};
|
59
39
|
const runCommand = {
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
await (0, _run.run)(task, args);
|
68
|
-
}
|
40
|
+
command: 'run',
|
41
|
+
describe: 'run a template script',
|
42
|
+
builder: (yargs) => yargs.usage('run <task>').demandCommand(),
|
43
|
+
handler: async (argv) => {
|
44
|
+
const [, task, ...args] = argv._.map((arg) => arg.toString());
|
45
|
+
await (0, _run_1.run)(task, args);
|
46
|
+
},
|
69
47
|
};
|
70
48
|
const unsetCommand = {
|
71
|
-
|
72
|
-
|
73
|
-
|
49
|
+
command: 'unset',
|
50
|
+
describe: 'remove all artifacts created by the preset',
|
51
|
+
handler: async () => (0, _preset_1.unsetPreset)(),
|
74
52
|
};
|
75
|
-
/**
|
76
|
-
* provide a command line interface
|
77
|
-
* @returns the command entered together with its options
|
78
|
-
*/
|
79
|
-
|
80
53
|
async function entry() {
|
81
|
-
|
82
|
-
|
54
|
+
const [, , ...args] = process.argv;
|
55
|
+
await yargs_1.default
|
56
|
+
.usage('⚙ presetter: your preset configurator')
|
57
|
+
.showHelpOnFail(true)
|
58
|
+
.command(useCommand)
|
59
|
+
.command(bootstrapCommand)
|
60
|
+
.command(runCommand)
|
61
|
+
.command(unsetCommand)
|
62
|
+
.demandCommand()
|
63
|
+
.parse(args);
|
83
64
|
}
|
84
|
-
|
65
|
+
exports.entry = entry;
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvZXhlY3V0YWJsZS9lbnRyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFlQSx1Q0FBc0M7QUFDdEMsa0RBQTBCO0FBRTFCLHFDQUFvRTtBQUNwRSwrQkFBMkI7QUFJM0IsTUFBTSxVQUFVLEdBQStEO0lBQzdFLE9BQU8sRUFBRSxnQkFBZ0I7SUFDekIsUUFBUSxFQUFFLDJDQUEyQztJQUNyRCxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNqQixLQUFLO1NBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTtRQUNwQixRQUFRLEVBQUUsSUFBYTtRQUN2QixJQUFJLEVBQUUsUUFBUTtRQUNkLFdBQVcsRUFBRSwyQ0FBMkM7S0FDekQsQ0FBQztTQUNELElBQUksRUFBRTtJQUNYLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFBLHFCQUFXLEVBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0NBQ3JELENBQUM7QUFFRixNQUFNLGdCQUFnQixHQUdsQjtJQUNGLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFFBQVEsRUFBRSxxREFBcUQ7SUFDL0QsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDakIsS0FBSztTQUNGLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDZCxJQUFJLEVBQUUsUUFBUTtRQUNkLFdBQVcsRUFBRSwyQ0FBMkM7S0FDekQsQ0FBQztTQUNELElBQUksRUFBRTtJQUNYLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDdEIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQztRQUd0QixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFBLHFCQUFVLEVBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtZQUNyQyxNQUFNLElBQUEseUJBQWUsR0FBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztDQUNGLENBQUM7QUFFRixNQUFNLFVBQVUsR0FBa0I7SUFDaEMsT0FBTyxFQUFFLEtBQUs7SUFDZCxRQUFRLEVBQUUsdUJBQXVCO0lBQ2pDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxhQUFhLEVBQUU7SUFDN0QsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUV0QixNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFOUQsTUFBTSxJQUFBLFVBQUcsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztDQUNGLENBQUM7QUFFRixNQUFNLFlBQVksR0FBa0I7SUFDbEMsT0FBTyxFQUFFLE9BQU87SUFDaEIsUUFBUSxFQUFFLDRDQUE0QztJQUN0RCxPQUFPLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxJQUFBLHFCQUFXLEdBQUU7Q0FDbkMsQ0FBQztBQU1LLEtBQUssVUFBVSxLQUFLO0lBQ3pCLE1BQU0sQ0FBQyxFQUFFLEFBQUQsRUFBRyxHQUFHLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFFbkMsTUFBTSxlQUFLO1NBQ1IsS0FBSyxDQUFDLHVDQUF1QyxDQUFDO1NBQzlDLGNBQWMsQ0FBQyxJQUFJLENBQUM7U0FDcEIsT0FBTyxDQUFDLFVBQVUsQ0FBQztTQUNuQixPQUFPLENBQUMsZ0JBQWdCLENBQUM7U0FDekIsT0FBTyxDQUFDLFVBQVUsQ0FBQztTQUNuQixPQUFPLENBQUMsWUFBWSxDQUFDO1NBQ3JCLGFBQWEsRUFBRTtTQUNmLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNqQixDQUFDO0FBWkQsc0JBWUMifQ==
|
package/lib/executable/error.js
CHANGED
@@ -1,59 +1,28 @@
|
|
1
1
|
"use strict";
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
});
|
6
|
-
exports.handleError =
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
var _chalk = _interopRequireDefault(require("chalk"));
|
11
|
-
|
12
|
-
var _console = require("console");
|
13
|
-
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
15
|
-
|
16
|
-
/*
|
17
|
-
* *** MIT LICENSE ***
|
18
|
-
* -------------------------------------------------------------------------
|
19
|
-
* This code may be modified and distributed under the MIT license.
|
20
|
-
* See the LICENSE file for details.
|
21
|
-
* -------------------------------------------------------------------------
|
22
|
-
*
|
23
|
-
* @summary Helpers for handling error
|
24
|
-
*
|
25
|
-
* @author Alvis HT Tang <alvis@hilbert.space>
|
26
|
-
* @license MIT
|
27
|
-
* @copyright Copyright (c) 2019 - All Rights Reserved.
|
28
|
-
* -------------------------------------------------------------------------
|
29
|
-
*/
|
30
|
-
|
31
|
-
/* istanbul ignore file */
|
32
|
-
|
33
|
-
/**
|
34
|
-
* print error nicely on console
|
35
|
-
* @param error the error to be reported
|
36
|
-
*/
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.handleError = void 0;
|
7
|
+
const callsite_record_1 = __importDefault(require("callsite-record"));
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
9
|
+
const console_1 = require("console");
|
37
10
|
async function handleError(error) {
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
if (record) {
|
54
|
-
(0, _console.warn)();
|
55
|
-
(0, _console.warn)(await record.render({}));
|
11
|
+
if (!process.stdout.isTTY) {
|
12
|
+
(0, console_1.warn)(error);
|
13
|
+
}
|
14
|
+
else {
|
15
|
+
const type = chalk_1.default.red.bold(`[${error.name}]`);
|
16
|
+
const message = chalk_1.default.white.bold(error.message.trim());
|
17
|
+
(0, console_1.warn)(`${type} ${message}`);
|
18
|
+
const record = (0, callsite_record_1.default)({
|
19
|
+
forError: error,
|
20
|
+
});
|
21
|
+
if (record) {
|
22
|
+
(0, console_1.warn)();
|
23
|
+
(0, console_1.warn)(await record.render({}));
|
24
|
+
}
|
56
25
|
}
|
57
|
-
}
|
58
26
|
}
|
59
|
-
|
27
|
+
exports.handleError = handleError;
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvZXhlY3V0YWJsZS9lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFpQkEsc0VBQW1EO0FBQ25ELGtEQUEwQjtBQUMxQixxQ0FBK0I7QUFNeEIsS0FBSyxVQUFVLFdBQVcsQ0FBQyxLQUFZO0lBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTtRQUV6QixJQUFBLGNBQUksRUFBQyxLQUFLLENBQUMsQ0FBQztLQUNiO1NBQU07UUFFTCxNQUFNLElBQUksR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sT0FBTyxHQUFHLGVBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN2RCxJQUFBLGNBQUksRUFBQyxHQUFHLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRzNCLE1BQU0sTUFBTSxHQUFHLElBQUEseUJBQW9CLEVBQUM7WUFDbEMsUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFBLGNBQUksR0FBRSxDQUFDO1lBQ1AsSUFBQSxjQUFJLEVBQUMsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDL0I7S0FDRjtBQUNILENBQUM7QUFwQkQsa0NBb0JDIn0=
|
package/lib/executable/index.js
CHANGED
@@ -1,24 +1,6 @@
|
|
1
1
|
"use strict";
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
/*
|
8
|
-
* *** MIT LICENSE ***
|
9
|
-
* -------------------------------------------------------------------------
|
10
|
-
* This code may be modified and distributed under the MIT license.
|
11
|
-
* See the LICENSE file for details.
|
12
|
-
* -------------------------------------------------------------------------
|
13
|
-
*
|
14
|
-
* @summary A command line interface for presetter
|
15
|
-
*
|
16
|
-
* @author Alvis HT Tang <alvis@hilbert.space>
|
17
|
-
* @license MIT
|
18
|
-
* @copyright Copyright (c) 2019 - All Rights Reserved.
|
19
|
-
* -------------------------------------------------------------------------
|
20
|
-
*/
|
21
|
-
|
22
|
-
/* istanbul ignore file */
|
23
|
-
(0, _entry.entry)().catch(_error.handleError);
|
24
|
-
//# sourceMappingURL=index.js.map
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const entry_1 = require("./entry");
|
4
|
+
const error_1 = require("./error");
|
5
|
+
(0, entry_1.entry)().catch(error_1.handleError);
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvZXhlY3V0YWJsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlCQSxtQ0FBZ0M7QUFDaEMsbUNBQXNDO0FBRXRDLElBQUEsYUFBSyxHQUFFLENBQUMsS0FBSyxDQUFDLG1CQUFXLENBQUMsQ0FBQyJ9
|