presetter 3.1.0 → 3.3.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 +1 -1
- package/lib/content.js +58 -129
- 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.js +20 -69
- package/lib/io.d.ts +1 -1
- package/lib/io.js +88 -170
- package/lib/package.js +58 -149
- package/lib/preset.js +160 -294
- package/lib/run.js +59 -127
- package/lib/scripts.js +52 -128
- package/lib/template.js +70 -139
- package/lib/types.d.ts +1 -0
- package/lib/types.js +2 -1
- package/package.json +9 -1
- 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/README.md
CHANGED
@@ -4,14 +4,14 @@
|
|
4
4
|
|
5
5
|
🏄🏻 _Setup build settings from a template, quick and right!_
|
6
6
|
|
7
|
-
• [Quick Start](#quick-start) • [Usage](#usage) • [
|
7
|
+
• [Quick Start](#quick-start) • [Usage](#usage) • [Customization](#customization) •
|
8
8
|
|
9
9
|
[](https://github.com/alvis/presetter/releases)
|
10
10
|
[](https://github.com/alvis/presetter/actions)
|
11
11
|
[](https://codeclimate.com/github/alvis/presetter/maintainability)
|
12
12
|
[](https://codeclimate.com/github/alvis/presetter/test_coverage)
|
13
13
|
[](https://snyk.io/test/github/alvis/presetter?targetFile=packages/presetter/package.json&style=flat-square)
|
14
|
-
[](https://libraries.io/npm/presetter-presetter)
|
15
15
|
[](https://github.com/alvis/presetter/blob/master/LICENSE)
|
16
16
|
|
17
17
|
</div>
|
@@ -21,7 +21,7 @@ How many dev dependencies you have to install before you can kick start a projec
|
|
21
21
|
|
22
22
|
What's more, what if you want to update configs for all projects? :man_facepalming:
|
23
23
|
|
24
|
-
**Presetter is a utility for setting up building tools for your project from a template.** This means with just only two dev packages, namely this package and your
|
24
|
+
**Presetter is a utility for setting up building tools for your project from a template.** This means with just only two dev packages, namely this package and your favorite template preset, all essential development packages, such as typescript, eslint and jest, together with their configuration files provided by the preset, are automatically setup for you upon the project's initialization.
|
25
25
|
|
26
26
|
---
|
27
27
|
|
@@ -128,13 +128,13 @@ _PROTIPS_: Install `presetter` globally via `npm install -g presetter` and you c
|
|
128
128
|
|
129
129
|
---
|
130
130
|
|
131
|
-
##
|
131
|
+
## Customization
|
132
132
|
|
133
|
-
Presetter support
|
133
|
+
Presetter support customization in two ways.
|
134
134
|
|
135
|
-
#### Preset
|
135
|
+
#### Preset Customization
|
136
136
|
|
137
|
-
If your preset support
|
137
|
+
If your preset support customization, you can supply the customization parameter via the `config` field in `.presetterrc`.
|
138
138
|
e.g. For [presetter-preset-essentials](https://github.com/alvis/presetter/tree/master/packages/preset-essentials), you can adding an expression to `.gitignore` with the following in `.presetterrc`:
|
139
139
|
|
140
140
|
```json
|
package/lib/content.d.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import type { DynamicAsset, DynamicAssetField, PresetAsset, PresetContext, RequiredResolution, ResolvedPresetContext, Template } from './types';
|
2
|
-
export declare function
|
2
|
+
export declare function customize(template: Template, custom?: string[] | Record<string, unknown>): Template;
|
3
3
|
export declare function generateContent(assets: PresetAsset[], context: PresetContext): Promise<Record<string, Template>>;
|
4
4
|
export declare function getConfigKey(filename: string): string;
|
5
5
|
export declare function getVariable(assets: PresetAsset[], context: PresetContext): Record<string, string>;
|
package/lib/content.js
CHANGED
@@ -1,141 +1,70 @@
|
|
1
1
|
"use strict";
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
var _template = require("./template");
|
18
|
-
|
19
|
-
/*
|
20
|
-
* *** MIT LICENSE ***
|
21
|
-
* -------------------------------------------------------------------------
|
22
|
-
* This code may be modified and distributed under the MIT license.
|
23
|
-
* See the LICENSE file for details.
|
24
|
-
* -------------------------------------------------------------------------
|
25
|
-
*
|
26
|
-
* @summary Collection of config related helpers
|
27
|
-
*
|
28
|
-
* @author Alvis HT Tang <alvis@hilbert.space>
|
29
|
-
* @license MIT
|
30
|
-
* @copyright Copyright (c) 2021 - All Rights Reserved.
|
31
|
-
* -------------------------------------------------------------------------
|
32
|
-
*/
|
33
|
-
|
34
|
-
/**
|
35
|
-
* customise the template with customisation from .presetterrc
|
36
|
-
* @param template template configuration
|
37
|
-
* @param custom content to be merged with the template configuration
|
38
|
-
* @returns customised configuration
|
39
|
-
*/
|
40
|
-
function customise(template, custom) {
|
41
|
-
if (typeof template === 'string' && Array.isArray(custom)) {
|
42
|
-
return (0, _template.merge)(template.split('\n'), custom).join('\n');
|
43
|
-
} else if (typeof template === 'object' && !Array.isArray(custom)) {
|
44
|
-
return (0, _template.merge)(template, custom);
|
45
|
-
} else {
|
46
|
-
return template;
|
47
|
-
}
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.resolveDynamicMap = exports.resolveContext = exports.getVariable = exports.getConfigKey = exports.generateContent = exports.customize = void 0;
|
4
|
+
const path_1 = require("path");
|
5
|
+
const io_1 = require("./io");
|
6
|
+
const template_1 = require("./template");
|
7
|
+
function customize(template, custom) {
|
8
|
+
if (typeof template === 'string' && Array.isArray(custom)) {
|
9
|
+
return (0, template_1.merge)(template.split('\n'), custom).join('\n');
|
10
|
+
}
|
11
|
+
else if (typeof template === 'object' && !Array.isArray(custom)) {
|
12
|
+
return (0, template_1.merge)(template, custom);
|
13
|
+
}
|
14
|
+
else {
|
15
|
+
return template;
|
16
|
+
}
|
48
17
|
}
|
49
|
-
|
50
|
-
* generate configuration content from preset with user customisation
|
51
|
-
* @param assets list of preset assets
|
52
|
-
* @param context context about the target project and any customisation in .presetterrc
|
53
|
-
* @returns a map of configuration content
|
54
|
-
*/
|
55
|
-
|
56
|
-
|
18
|
+
exports.customize = customize;
|
57
19
|
async function generateContent(assets, context) {
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
return (0, _template.template)(custom, resolvedContext.custom.variable);
|
20
|
+
const resolvedContext = await resolveContext(assets, context);
|
21
|
+
const resolvedTemplate = await resolveDynamicMap(assets, resolvedContext, 'template');
|
22
|
+
const custom = Object.fromEntries(await Promise.all(Object.entries(resolvedTemplate).map(async ([relativePath, templateConfig]) => {
|
23
|
+
const customConfig = resolvedContext.custom.config[getConfigKey(relativePath)];
|
24
|
+
return [relativePath, customize(templateConfig, customConfig)];
|
25
|
+
})));
|
26
|
+
return (0, template_1.template)(custom, resolvedContext.custom.variable);
|
66
27
|
}
|
67
|
-
|
68
|
-
* compute the corresponding field within the config field of .presetterrc
|
69
|
-
* @param filename symlink name
|
70
|
-
* @returns field name in config
|
71
|
-
*/
|
72
|
-
|
73
|
-
|
28
|
+
exports.generateContent = generateContent;
|
74
29
|
function getConfigKey(filename) {
|
75
|
-
|
30
|
+
return (0, path_1.basename)(filename, (0, path_1.extname)(filename))
|
31
|
+
.replace(/^\./, '')
|
32
|
+
.replace(/rc$/, '')
|
33
|
+
.replace(/\.config$/, '');
|
76
34
|
}
|
77
|
-
|
78
|
-
* combine the default variables from presets with custom variables
|
79
|
-
* @param assets list of preset assets
|
80
|
-
* @param context context about the target project and any customisation in .presetterrc
|
81
|
-
* @returns combined variables
|
82
|
-
*/
|
83
|
-
|
84
|
-
|
35
|
+
exports.getConfigKey = getConfigKey;
|
85
36
|
function getVariable(assets, context) {
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
37
|
+
const variables = assets
|
38
|
+
.map((asset) => asset.variable)
|
39
|
+
.filter((variable) => !!variable);
|
40
|
+
const variableFromPresets = variables.reduce((merged, variable) => (0, template_1.merge)(merged, variable), {});
|
41
|
+
const variableWithCustomConfig = (0, template_1.merge)(variableFromPresets, context.custom.variable);
|
42
|
+
return Object.assign({}, variableWithCustomConfig);
|
91
43
|
}
|
92
|
-
|
93
|
-
* resolve context values which may be dynamic
|
94
|
-
* @param assets list of preset assets
|
95
|
-
* @param context context about the target project and any customisation in .presetterrc
|
96
|
-
* @returns a context with no further dynamic content
|
97
|
-
*/
|
98
|
-
|
99
|
-
|
44
|
+
exports.getVariable = getVariable;
|
100
45
|
async function resolveContext(assets, context) {
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
const config = (0, _template.merge)(await resolveDynamicMap(assets, variableContext, 'supplementaryConfig'), context.custom.config);
|
109
|
-
const customList = (_context$custom$noSym = context.custom.noSymlinks) !== null && _context$custom$noSym !== void 0 ? _context$custom$noSym : [];
|
110
|
-
const assetList = assets.map(async ({
|
111
|
-
noSymlinks
|
112
|
-
}) => (0, _io.loadDynamic)(noSymlinks !== null && noSymlinks !== void 0 ? noSymlinks : [], variableContext));
|
113
|
-
const noSymlinks = [...(await Promise.all(assetList)), ...customList].flat();
|
114
|
-
return { ...variableContext,
|
115
|
-
custom: { ...variableContext.custom,
|
116
|
-
config,
|
117
|
-
noSymlinks: [...new Set(noSymlinks)]
|
118
|
-
}
|
119
|
-
};
|
46
|
+
var _a;
|
47
|
+
const variableContext = Object.assign(Object.assign({}, context), { custom: Object.assign(Object.assign({}, context.custom), { variable: getVariable(assets, context) }) });
|
48
|
+
const config = (0, template_1.merge)(await resolveDynamicMap(assets, variableContext, 'supplementaryConfig'), context.custom.config);
|
49
|
+
const customList = (_a = context.custom.noSymlinks) !== null && _a !== void 0 ? _a : [];
|
50
|
+
const assetList = assets.map(async ({ noSymlinks }) => (0, io_1.loadDynamic)(noSymlinks !== null && noSymlinks !== void 0 ? noSymlinks : [], variableContext));
|
51
|
+
const noSymlinks = [...(await Promise.all(assetList)), ...customList].flat();
|
52
|
+
return Object.assign(Object.assign({}, variableContext), { custom: Object.assign(Object.assign({}, variableContext.custom), { config, noSymlinks: [...new Set(noSymlinks)] }) });
|
120
53
|
}
|
121
|
-
|
122
|
-
* resolve a dynamic asset content
|
123
|
-
* @param assets list of preset assets
|
124
|
-
* @param context arguments to be passed to the generator function
|
125
|
-
* @param field field name of PresetAsset to be resolved
|
126
|
-
* @returns content of the resolved field
|
127
|
-
*/
|
128
|
-
|
129
|
-
|
54
|
+
exports.resolveContext = resolveContext;
|
130
55
|
async function resolveDynamicMap(assets, context, field) {
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
56
|
+
const templates = await Promise.all(assets.map(async (asset) => {
|
57
|
+
const content = asset[field];
|
58
|
+
return Object.fromEntries(await Promise.all(Object.entries(content instanceof Function
|
59
|
+
? await content(context)
|
60
|
+
: Object.assign({}, content)).map(async ([relativePath, value]) => [
|
61
|
+
relativePath,
|
62
|
+
typeof value === 'string' && (0, path_1.isAbsolute)(value)
|
63
|
+
? await (0, io_1.loadFile)(value)
|
64
|
+
: await (0, io_1.loadDynamic)(value, context),
|
65
|
+
])));
|
66
|
+
}));
|
67
|
+
return templates.reduce((merged, map) => (0, template_1.merge)(merged, map), {});
|
140
68
|
}
|
141
|
-
|
69
|
+
exports.resolveDynamicMap = resolveDynamicMap;
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9jb250ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWVBLCtCQUFxRDtBQUVyRCw2QkFBNkM7QUFDN0MseUNBQTZDO0FBa0I3QyxTQUFnQixTQUFTLENBQ3ZCLFFBQWtCLEVBQ2xCLE1BQTJDO0lBRTNDLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDekQsT0FBTyxJQUFBLGdCQUFLLEVBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDdkQ7U0FBTSxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDakUsT0FBTyxJQUFBLGdCQUFLLEVBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQ2hDO1NBQU07UUFDTCxPQUFPLFFBQVEsQ0FBQztLQUNqQjtBQUNILENBQUM7QUFYRCw4QkFXQztBQU9NLEtBQUssVUFBVSxlQUFlLENBQ25DLE1BQXFCLEVBQ3JCLE9BQXNCO0lBRXRCLE1BQU0sZUFBZSxHQUFHLE1BQU0sY0FBYyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUU5RCxNQUFNLGdCQUFnQixHQUFHLE1BQU0saUJBQWlCLENBQzlDLE1BQU0sRUFDTixlQUFlLEVBQ2YsVUFBVSxDQUNYLENBQUM7SUFHRixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsV0FBVyxDQUMvQixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsQ0FDbEMsS0FBSyxFQUFFLENBQUMsWUFBWSxFQUFFLGNBQWMsQ0FBQyxFQUErQixFQUFFO1FBQ3BF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
|
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
|