presetter 4.7.2 → 6.0.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 +5 -5
- package/lib/debugger.d.ts +4 -0
- package/lib/debugger.d.ts.map +1 -0
- package/lib/debugger.js +4 -0
- package/lib/executable/entry.d.ts.map +1 -1
- package/lib/executable/entry.js +4 -43
- package/lib/executable/error.d.ts.map +1 -1
- package/lib/executable/error.js +1 -16
- package/lib/executable/index.js +2 -16
- package/lib/index.d.ts +4 -5
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +6 -21
- package/lib/io.d.ts +8 -42
- package/lib/io.d.ts.map +1 -1
- package/lib/io.js +24 -156
- package/lib/package.d.ts +2 -2
- package/lib/package.d.ts.map +1 -1
- package/lib/package.js +5 -20
- package/lib/preset/bootstrap.d.ts +5 -0
- package/lib/preset/bootstrap.d.ts.map +1 -0
- package/lib/preset/bootstrap.js +32 -0
- package/lib/preset/config/index.d.ts +3 -0
- package/lib/preset/config/index.d.ts.map +1 -0
- package/lib/preset/config/index.js +4 -0
- package/lib/preset/config/resolve.d.ts +8 -0
- package/lib/preset/config/resolve.d.ts.map +1 -0
- package/lib/preset/config/resolve.js +25 -0
- package/lib/preset/config/search.d.ts +7 -0
- package/lib/preset/config/search.d.ts.map +1 -0
- package/lib/preset/config/search.js +25 -0
- package/lib/preset/context.d.ts +2 -1
- package/lib/preset/context.d.ts.map +1 -1
- package/lib/preset/context.js +5 -24
- package/lib/preset/index.d.ts +5 -2
- package/lib/preset/index.d.ts.map +1 -1
- package/lib/preset/index.js +7 -18
- package/lib/preset/project.d.ts +8 -0
- package/lib/preset/project.d.ts.map +1 -0
- package/lib/preset/project.js +28 -0
- package/lib/preset/resolution/asset.d.ts +31 -0
- package/lib/preset/resolution/asset.d.ts.map +1 -0
- package/lib/preset/resolution/asset.js +78 -0
- package/lib/preset/resolution/content.d.ts +37 -0
- package/lib/preset/resolution/content.d.ts.map +1 -0
- package/lib/preset/resolution/content.js +55 -0
- package/lib/preset/resolution/debugger.d.ts +3 -0
- package/lib/preset/resolution/debugger.d.ts.map +1 -0
- package/lib/preset/resolution/debugger.js +3 -0
- package/lib/preset/resolution/index.d.ts +6 -0
- package/lib/preset/resolution/index.d.ts.map +1 -0
- package/lib/preset/resolution/index.js +7 -0
- package/lib/preset/resolution/object.d.ts +9 -0
- package/lib/preset/resolution/object.d.ts.map +1 -0
- package/lib/preset/resolution/object.js +10 -0
- package/lib/preset/resolution/preset.d.ts +9 -0
- package/lib/preset/resolution/preset.d.ts.map +1 -0
- package/lib/preset/resolution/preset.js +17 -0
- package/lib/preset/resolution/script.d.ts +9 -0
- package/lib/preset/resolution/script.d.ts.map +1 -0
- package/lib/preset/resolution/script.js +39 -0
- package/lib/preset/resolution/variable.d.ts +9 -0
- package/lib/preset/resolution/variable.d.ts.map +1 -0
- package/lib/preset/resolution/variable.js +33 -0
- package/lib/preset/scripts.d.ts.map +1 -1
- package/lib/preset/scripts.js +6 -20
- package/lib/resolve.d.ts +7 -0
- package/lib/resolve.d.ts.map +1 -0
- package/lib/resolve.js +27 -0
- package/lib/run.d.ts.map +1 -1
- package/lib/run.js +7 -19
- package/lib/scripts.d.ts.map +1 -1
- package/lib/scripts.js +8 -19
- package/lib/serialization.d.ts +15 -0
- package/lib/serialization.d.ts.map +1 -0
- package/lib/serialization.js +48 -0
- package/lib/task.d.ts.map +1 -1
- package/lib/task.js +5 -17
- package/lib/template/index.d.ts +3 -0
- package/lib/template/index.d.ts.map +1 -0
- package/lib/template/index.js +4 -0
- package/lib/template/merge.d.ts +33 -0
- package/lib/template/merge.d.ts.map +1 -0
- package/lib/template/merge.js +84 -0
- package/lib/template/substitute.d.ts +11 -0
- package/lib/template/substitute.d.ts.map +1 -0
- package/lib/template/substitute.js +19 -0
- package/lib/utilities/display.d.ts +15 -0
- package/lib/utilities/display.d.ts.map +1 -0
- package/lib/utilities/display.js +51 -0
- package/lib/utilities/index.d.ts +3 -1
- package/lib/utilities/index.d.ts.map +1 -1
- package/lib/utilities/index.js +5 -17
- package/lib/utilities/{mapValues.d.ts → mapping.d.ts} +1 -1
- package/lib/utilities/mapping.d.ts.map +1 -0
- package/lib/utilities/mapping.js +10 -0
- package/lib/utilities/object.d.ts +20 -0
- package/lib/utilities/object.d.ts.map +1 -0
- package/lib/utilities/object.js +37 -0
- package/package.json +21 -16
- package/lib/content.d.ts +0 -123
- package/lib/content.d.ts.map +0 -1
- package/lib/content.js +0 -241
- package/lib/directive.d.ts +0 -34
- package/lib/directive.d.ts.map +0 -1
- package/lib/directive.js +0 -172
- package/lib/error.d.ts +0 -8
- package/lib/error.d.ts.map +0 -1
- package/lib/error.js +0 -32
- package/lib/preset/content.d.ts +0 -14
- package/lib/preset/content.d.ts.map +0 -1
- package/lib/preset/content.js +0 -32
- package/lib/preset/graph.d.ts +0 -22
- package/lib/preset/graph.d.ts.map +0 -1
- package/lib/preset/graph.js +0 -53
- package/lib/preset/mapping.d.ts +0 -9
- package/lib/preset/mapping.d.ts.map +0 -1
- package/lib/preset/mapping.js +0 -38
- package/lib/preset/presetterRC.d.ts +0 -25
- package/lib/preset/presetterRC.d.ts.map +0 -1
- package/lib/preset/presetterRC.js +0 -74
- package/lib/preset/setup.d.ts +0 -17
- package/lib/preset/setup.d.ts.map +0 -1
- package/lib/preset/setup.js +0 -80
- package/lib/preset/unset.d.ts +0 -5
- package/lib/preset/unset.d.ts.map +0 -1
- package/lib/preset/unset.js +0 -31
- package/lib/resolution.d.ts +0 -22
- package/lib/resolution.d.ts.map +0 -1
- package/lib/resolution.js +0 -61
- package/lib/template.d.ts +0 -64
- package/lib/template.d.ts.map +0 -1
- package/lib/template.js +0 -199
- package/lib/utilities/mapValues.d.ts.map +0 -1
- package/lib/utilities/mapValues.js +0 -24
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../../source/preset/resolution/object.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE1E;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,OAAO,EAAE,oBAAoB,GAC5B,CAAC,CAEH"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
/**
|
2
|
+
* resolve an object
|
3
|
+
* @param object the object to resolve
|
4
|
+
* @param context the context in which the object is being resolved
|
5
|
+
* @returns the resolved object
|
6
|
+
*/
|
7
|
+
export function resolveObject(object, context) {
|
8
|
+
return object instanceof Function ? object(context) : object;
|
9
|
+
}
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc291cmNlL3ByZXNldC9yZXNvbHV0aW9uL29iamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQzNCLE1BQXVCLEVBQ3ZCLE9BQTZCO0lBRTdCLE9BQU8sTUFBTSxZQUFZLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDL0QsQ0FBQyJ9
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import type { Preset, PresetContext, PresetNode } from 'presetter-types';
|
2
|
+
/**
|
3
|
+
* resolve a preset
|
4
|
+
* @param preset the preset to resolve
|
5
|
+
* @param context the context in which the preset is being resolved
|
6
|
+
* @returns the resolved preset node
|
7
|
+
*/
|
8
|
+
export declare function resolvePreset(preset: Preset, context: PresetContext): Promise<PresetNode>;
|
9
|
+
//# sourceMappingURL=preset.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../../../source/preset/resolution/preset.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEzE;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,UAAU,CAAC,CAiBrB"}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import debug from './debugger.js';
|
2
|
+
/**
|
3
|
+
* resolve a preset
|
4
|
+
* @param preset the preset to resolve
|
5
|
+
* @param context the context in which the preset is being resolved
|
6
|
+
* @returns the resolved preset node
|
7
|
+
*/
|
8
|
+
export async function resolvePreset(preset, context) {
|
9
|
+
debug(`resolving node ${preset.id}`);
|
10
|
+
const definition = preset instanceof Function
|
11
|
+
? { id: preset.id, ...(await preset(context)) }
|
12
|
+
: preset;
|
13
|
+
const nodes = await Promise.all((definition.extends ?? []).map(async (preset) => resolvePreset(preset, context)));
|
14
|
+
debug(`preset ${preset.id} resolved`);
|
15
|
+
return { definition, nodes };
|
16
|
+
}
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc291cmNlL3ByZXNldC9yZXNvbHV0aW9uL3ByZXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUM7QUFJL0I7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGFBQWEsQ0FDakMsTUFBYyxFQUNkLE9BQXNCO0lBRXRCLEtBQUssQ0FBQyxrQkFBa0IsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFckMsTUFBTSxVQUFVLEdBQ2QsTUFBTSxZQUFZLFFBQVE7UUFDeEIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUU7UUFDL0MsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUViLE1BQU0sS0FBSyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDN0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FDOUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FDL0IsQ0FDRixDQUFDO0lBRUYsS0FBSyxDQUFDLFVBQVUsTUFBTSxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFFdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUMvQixDQUFDIn0=
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import type { PresetContext, PresetNode, Scripts } from 'presetter-types';
|
2
|
+
/**
|
3
|
+
* resolves all scripts for a given preset node
|
4
|
+
* @param node the preset node
|
5
|
+
* @param context the context in which the node is being resolved
|
6
|
+
* @returns a promise that resolves to the RESOLVED scripts
|
7
|
+
*/
|
8
|
+
export declare function resolveScripts(node: PresetNode, context: PresetContext): Promise<Scripts>;
|
9
|
+
//# sourceMappingURL=script.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../../source/preset/resolution/script.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1E;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,OAAO,CAAC,CAoClB"}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
import { substitute } from '../../template/index.js';
|
2
|
+
import { resolveNodeContent } from './content.js';
|
3
|
+
import Debug from './debugger.js';
|
4
|
+
import { resolveVariables } from './variable.js';
|
5
|
+
/**
|
6
|
+
* resolves all scripts for a given preset node
|
7
|
+
* @param node the preset node
|
8
|
+
* @param context the context in which the node is being resolved
|
9
|
+
* @returns a promise that resolves to the RESOLVED scripts
|
10
|
+
*/
|
11
|
+
export async function resolveScripts(node, context) {
|
12
|
+
const name = 'SCRIPTS';
|
13
|
+
const debug = Debug.extend(name);
|
14
|
+
// resolve variables for the node
|
15
|
+
const variables = await resolveVariables(node, context);
|
16
|
+
debug('RESOLVING SCRIPTS (INITIAL PASS)');
|
17
|
+
// resolve the initial value of the scripts
|
18
|
+
const initial = await resolveNodeContent({
|
19
|
+
name,
|
20
|
+
node,
|
21
|
+
context,
|
22
|
+
variables,
|
23
|
+
select: ({ scripts }) => scripts,
|
24
|
+
});
|
25
|
+
debug('RESOLVED SCRIPTS (INITIAL PASS)\n%O', initial);
|
26
|
+
debug('RESOLVING SCRIPTS (FINAL PASS)');
|
27
|
+
// resolve the final value of the scripts, considering overrides
|
28
|
+
const final = (await resolveNodeContent({
|
29
|
+
name,
|
30
|
+
node,
|
31
|
+
context,
|
32
|
+
initial,
|
33
|
+
variables,
|
34
|
+
select: ({ override }) => override?.scripts,
|
35
|
+
})) ?? {};
|
36
|
+
debug('RESOLVED SCRIPTS (FINAL PASS)\n%O', final);
|
37
|
+
return substitute(final, variables);
|
38
|
+
}
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc291cmNlL3ByZXNldC9yZXNvbHV0aW9uL3NjcmlwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9DLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQztBQUMvQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFJOUM7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGNBQWMsQ0FDbEMsSUFBZ0IsRUFDaEIsT0FBc0I7SUFFdEIsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDO0lBQ3ZCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFakMsaUNBQWlDO0lBQ2pDLE1BQU0sU0FBUyxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXhELEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0lBRTFDLDJDQUEyQztJQUMzQyxNQUFNLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO1FBQ3ZDLElBQUk7UUFDSixJQUFJO1FBQ0osT0FBTztRQUNQLFNBQVM7UUFDVCxNQUFNLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPO0tBQ2pDLENBQUMsQ0FBQztJQUVILEtBQUssQ0FBQyxxQ0FBcUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUV0RCxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUV4QyxnRUFBZ0U7SUFDaEUsTUFBTSxLQUFLLEdBQ1QsQ0FBQyxNQUFNLGtCQUFrQixDQUFDO1FBQ3hCLElBQUk7UUFDSixJQUFJO1FBQ0osT0FBTztRQUNQLE9BQU87UUFDUCxTQUFTO1FBQ1QsTUFBTSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLE9BQU87S0FDNUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBRVosS0FBSyxDQUFDLG1DQUFtQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRWxELE9BQU8sVUFBVSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztBQUN0QyxDQUFDIn0=
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import type { PresetContext, PresetNode, Variables } from 'presetter-types';
|
2
|
+
/**
|
3
|
+
* resolves all variables for a given preset node
|
4
|
+
* @param node the preset node
|
5
|
+
* @param context the context in which the node is being resolved
|
6
|
+
* @returns a promise that resolves to the RESOLVED variables
|
7
|
+
*/
|
8
|
+
export declare function resolveVariables(node: PresetNode, context: PresetContext): Promise<Variables>;
|
9
|
+
//# sourceMappingURL=variable.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"variable.d.ts","sourceRoot":"","sources":["../../../source/preset/resolution/variable.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5E;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,SAAS,CAAC,CA+BpB"}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import { resolveNodeContent } from './content.js';
|
2
|
+
import Debug from './debugger.js';
|
3
|
+
/**
|
4
|
+
* resolves all variables for a given preset node
|
5
|
+
* @param node the preset node
|
6
|
+
* @param context the context in which the node is being resolved
|
7
|
+
* @returns a promise that resolves to the RESOLVED variables
|
8
|
+
*/
|
9
|
+
export async function resolveVariables(node, context) {
|
10
|
+
const name = 'VARIABLES';
|
11
|
+
const debug = Debug.extend(name);
|
12
|
+
debug('RESOLVING VARIABLES (INITIAL PASS)');
|
13
|
+
// resolve the initial value of the variables
|
14
|
+
const initial = await resolveNodeContent({
|
15
|
+
name,
|
16
|
+
node,
|
17
|
+
context,
|
18
|
+
select: ({ variables }) => variables,
|
19
|
+
});
|
20
|
+
debug('RESOLVED VARIABLES (INITIAL PASS)\n%O', initial);
|
21
|
+
debug('RESOLVING VARIABLES (FINAL PASS)');
|
22
|
+
// resolve the final value of the variables, considering overrides
|
23
|
+
const final = (await resolveNodeContent({
|
24
|
+
name,
|
25
|
+
node,
|
26
|
+
context,
|
27
|
+
initial,
|
28
|
+
select: ({ override }) => override?.variables,
|
29
|
+
})) ?? {};
|
30
|
+
debug('RESOLVED VARIABLES (FINAL PASS)\n%O', final);
|
31
|
+
return final;
|
32
|
+
}
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zb3VyY2UvcHJlc2V0L3Jlc29sdXRpb24vdmFyaWFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQy9DLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQztBQUkvQjs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsZ0JBQWdCLENBQ3BDLElBQWdCLEVBQ2hCLE9BQXNCO0lBRXRCLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQztJQUN6QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWpDLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0lBRTVDLDZDQUE2QztJQUM3QyxNQUFNLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO1FBQ3ZDLElBQUk7UUFDSixJQUFJO1FBQ0osT0FBTztRQUNQLE1BQU0sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDLFNBQVM7S0FDckMsQ0FBQyxDQUFDO0lBRUgsS0FBSyxDQUFDLHVDQUF1QyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXhELEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0lBRTFDLGtFQUFrRTtJQUNsRSxNQUFNLEtBQUssR0FDVCxDQUFDLE1BQU0sa0JBQWtCLENBQUM7UUFDeEIsSUFBSTtRQUNKLElBQUk7UUFDSixPQUFPO1FBQ1AsT0FBTztRQUNQLE1BQU0sRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTO0tBQzlDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUVaLEtBQUssQ0FBQyxxQ0FBcUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUVwRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMifQ==
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scripts.d.ts","sourceRoot":"","sources":["../../source/preset/scripts.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"scripts.d.ts","sourceRoot":"","sources":["../../source/preset/scripts.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAOlE"}
|
package/lib/preset/scripts.js
CHANGED
@@ -1,28 +1,14 @@
|
|
1
|
-
/*
|
2
|
-
* *** MIT LICENSE ***
|
3
|
-
* -------------------------------------------------------------------------
|
4
|
-
* This code may be modified and distributed under the MIT license.
|
5
|
-
* See the LICENSE file for details.
|
6
|
-
* -------------------------------------------------------------------------
|
7
|
-
*
|
8
|
-
* @summary Collection of computing the final scripts
|
9
|
-
*
|
10
|
-
* @author Alvis HT Tang <alvis@hilbert.space>
|
11
|
-
* @license MIT
|
12
|
-
* @copyright Copyright (c) 2020 - All Rights Reserved.
|
13
|
-
* -------------------------------------------------------------------------
|
14
|
-
*/
|
15
|
-
import { resolveContext, resolveScripts } from '../content.js';
|
16
1
|
import { getContext } from './context.js';
|
17
|
-
import {
|
2
|
+
import { resolveProjectPreset } from './project.js';
|
3
|
+
import { resolveScripts } from './resolution/index.js';
|
18
4
|
/**
|
19
5
|
* get the merged scripts templates
|
20
6
|
* @returns scripts template
|
21
7
|
*/
|
22
8
|
export async function getScripts() {
|
23
9
|
const context = await getContext();
|
24
|
-
const
|
25
|
-
const
|
26
|
-
return
|
10
|
+
const node = await resolveProjectPreset(context);
|
11
|
+
const script = await resolveScripts(node, context);
|
12
|
+
return script;
|
27
13
|
}
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wcmVzZXQvc2NyaXB0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTlDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsVUFBVTtJQUM5QixNQUFNLE9BQU8sR0FBRyxNQUFNLFVBQVUsRUFBRSxDQUFDO0lBQ25DLE1BQU0sSUFBSSxHQUFHLE1BQU0sb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFakQsTUFBTSxNQUFNLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRW5ELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMifQ==
|
package/lib/resolve.d.ts
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
/**
|
2
|
+
* resolves a dynamic asset from a file URL
|
3
|
+
* @param url the URL of the asset
|
4
|
+
* @returns a promise that resolves to the RESOLVED asset
|
5
|
+
*/
|
6
|
+
export declare function resolve(url: string): Promise<Record<string, unknown>>;
|
7
|
+
//# sourceMappingURL=resolve.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../source/resolve.ts"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAwB3E"}
|
package/lib/resolve.js
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
import { dirname, relative, sep } from 'node:path';
|
2
|
+
import { fileURLToPath } from 'node:url';
|
3
|
+
import { getContext, resolveAsset, resolvePreset, resolvePresetterConfig, resolveVariables, } from './preset/index.js';
|
4
|
+
/**
|
5
|
+
* resolves a dynamic asset from a file URL
|
6
|
+
* @param url the URL of the asset
|
7
|
+
* @returns a promise that resolves to the RESOLVED asset
|
8
|
+
*/
|
9
|
+
export async function resolve(url) {
|
10
|
+
const path = fileURLToPath(url);
|
11
|
+
const context = await getContext(dirname(path));
|
12
|
+
// get the relative name of the asset
|
13
|
+
const name = relative(context.root, path).split(sep).join('/'); // make the path OS agnostic
|
14
|
+
// get the preset configuration
|
15
|
+
const preset = await resolvePresetterConfig(context.root);
|
16
|
+
// resolve the preset node
|
17
|
+
const node = await resolvePreset(preset, context);
|
18
|
+
// resolve variables for the node
|
19
|
+
const variables = await resolveVariables(node, context);
|
20
|
+
// resolve the asset
|
21
|
+
const asset = await resolveAsset({ name, node, context, variables });
|
22
|
+
if (!asset) {
|
23
|
+
throw new Error(`asset ${name} not found in preset defined at ${path}`);
|
24
|
+
}
|
25
|
+
return asset;
|
26
|
+
}
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9yZXNvbHZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXpDLE9BQU8sRUFDTCxVQUFVLEVBQ1YsWUFBWSxFQUNaLGFBQWEsRUFDYixzQkFBc0IsRUFDdEIsZ0JBQWdCLEdBQ2pCLE1BQU0sVUFBVSxDQUFDO0FBRWxCOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLE9BQU8sQ0FBQyxHQUFXO0lBQ3ZDLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQyxNQUFNLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUVoRCxxQ0FBcUM7SUFDckMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLDRCQUE0QjtJQUU1RiwrQkFBK0I7SUFDL0IsTUFBTSxNQUFNLEdBQUcsTUFBTSxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFMUQsMEJBQTBCO0lBQzFCLE1BQU0sSUFBSSxHQUFHLE1BQU0sYUFBYSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUVsRCxpQ0FBaUM7SUFDakMsTUFBTSxTQUFTLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFeEQsb0JBQW9CO0lBQ3BCLE1BQU0sS0FBSyxHQUFHLE1BQU0sWUFBWSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUVyRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsSUFBSSxtQ0FBbUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsT0FBTyxLQUFnQyxDQUFDO0FBQzFDLENBQUMifQ==
|
package/lib/run.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../source/run.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../source/run.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAkJnC;;;;;;GAMG;AACH,wBAAsB,GAAG,CACvB,KAAK,EAAE,IAAI,EAAE,EACb,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GACvD,OAAO,CAAC,IAAI,CAAC,CAiCf"}
|
package/lib/run.js
CHANGED
@@ -1,21 +1,8 @@
|
|
1
|
-
/*
|
2
|
-
* *** MIT LICENSE ***
|
3
|
-
* -------------------------------------------------------------------------
|
4
|
-
* This code may be modified and distributed under the MIT license.
|
5
|
-
* See the LICENSE file for details.
|
6
|
-
* -------------------------------------------------------------------------
|
7
|
-
*
|
8
|
-
* @summary Run a task
|
9
|
-
*
|
10
|
-
* @author Alvis HT Tang <alvis@hilbert.space>
|
11
|
-
* @license MIT
|
12
|
-
* @copyright Copyright (c) 2019 - All Rights Reserved.
|
13
|
-
* -------------------------------------------------------------------------
|
14
|
-
*/
|
15
1
|
import { dirname } from 'node:path';
|
16
|
-
import npmRunScript from '@npmcli/run-script';
|
17
2
|
import { Listr } from 'listr2';
|
18
3
|
import parse from 'yargs-parser';
|
4
|
+
import npmRunScript from '@npmcli/run-script';
|
5
|
+
import debug from './debugger.js';
|
19
6
|
import { getPackage } from './package.js';
|
20
7
|
import { getScripts } from './preset/index.js';
|
21
8
|
import { composeScripts } from './scripts.js';
|
@@ -38,7 +25,6 @@ function createListrTask(_) {
|
|
38
25
|
const command = composed[task];
|
39
26
|
// parse the command and extract the executable and task specifications
|
40
27
|
const argv = parse(command, {
|
41
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
42
28
|
configuration: { 'populate--': true, 'unknown-options-as-args': true },
|
43
29
|
});
|
44
30
|
const [executable, ...taskSpecs] = argv._.map((arg) => arg.toString());
|
@@ -51,6 +37,7 @@ function createListrTask(_) {
|
|
51
37
|
return taskControl.newListr(subTasks, { concurrent });
|
52
38
|
}
|
53
39
|
else {
|
40
|
+
taskControl.output = `${composed[task]} ${args.join(' ')}`;
|
54
41
|
// run the npm script with the provided arguments and package information
|
55
42
|
return runWithNPM({ task, args, pkg, composedScript: composed });
|
56
43
|
}
|
@@ -109,8 +96,8 @@ function getListrTasks(_) {
|
|
109
96
|
*/
|
110
97
|
async function runWithNPM(_) {
|
111
98
|
const { task, args, pkg, composedScript } = _;
|
112
|
-
|
113
|
-
|
99
|
+
debug('RUNNING\n%O', { task, command: composedScript[task] });
|
100
|
+
await npmRunScript({
|
114
101
|
event: task,
|
115
102
|
args,
|
116
103
|
pkg: { scripts: composedScript },
|
@@ -127,6 +114,7 @@ async function runWithNPM(_) {
|
|
127
114
|
*/
|
128
115
|
export async function run(tasks, options) {
|
129
116
|
const { parallel = false, templateOnly = false } = { ...options };
|
117
|
+
debug('TASK INSTRUCTION\n%O', { tasks, parallel, templateOnly });
|
130
118
|
// find the target project's package.json information
|
131
119
|
const pkg = await getPackage();
|
132
120
|
if (templateOnly) {
|
@@ -151,4 +139,4 @@ export async function run(tasks, options) {
|
|
151
139
|
process.exit(1);
|
152
140
|
}
|
153
141
|
}
|
154
|
-
//# sourceMappingURL=data:application/json;base64,
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc291cmNlL3J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFL0IsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFDO0FBRWpDLE9BQU8sWUFBWSxNQUFNLG9CQUFvQixDQUFDO0FBRTlDLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQztBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFPckU7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyxlQUFlLENBQUMsQ0FNeEI7SUFDQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUVsRCxPQUFPO1FBQ0wsS0FBSyxFQUFFLFdBQVcsSUFBSSxLQUFLO1FBQzNCLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxFQUFFO1lBQzdCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUUvQix1RUFBdUU7WUFDdkUsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRTtnQkFDMUIsYUFBYSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSx5QkFBeUIsRUFBRSxJQUFJLEVBQUU7YUFDdkUsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLFVBQVUsRUFBRSxHQUFHLFNBQVMsQ0FBQyxHQUFH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
|
package/lib/scripts.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scripts.d.ts","sourceRoot":"","sources":["../source/scripts.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"scripts.d.ts","sourceRoot":"","sources":["../source/scripts.ts"],"names":[],"mappings":"AAWA,wDAAwD;AACxD,KAAK,UAAU,GAAG,MAAM,CAAC;AAEzB,+CAA+C;AAC/C,KAAK,OAAO,GAAG,MAAM,CAAC;AAEtB,4BAA4B;AAC5B,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAkBjD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,MAAM,CAkCT"}
|
package/lib/scripts.js
CHANGED
@@ -1,20 +1,7 @@
|
|
1
|
-
/*
|
2
|
-
* *** MIT LICENSE ***
|
3
|
-
* -------------------------------------------------------------------------
|
4
|
-
* This code may be modified and distributed under the MIT license.
|
5
|
-
* See the LICENSE file for details.
|
6
|
-
* -------------------------------------------------------------------------
|
7
|
-
*
|
8
|
-
* @summary Handle script merging
|
9
|
-
*
|
10
|
-
* @author Alvis HT Tang <alvis@hilbert.space>
|
11
|
-
* @license MIT
|
12
|
-
* @copyright Copyright (c) 2019 - All Rights Reserved.
|
13
|
-
* -------------------------------------------------------------------------
|
14
|
-
*/
|
15
1
|
import { basename } from 'node:path';
|
16
|
-
import mvdan from 'mvdan-sh';
|
17
2
|
import parse from 'yargs-parser';
|
3
|
+
import mvdan from 'mvdan-sh';
|
4
|
+
import debug from './debugger.js';
|
18
5
|
import { mapValues } from './utilities/index.js';
|
19
6
|
const { syntax } = mvdan;
|
20
7
|
// shell command parser
|
@@ -30,7 +17,8 @@ const printer = syntax.NewPrinter();
|
|
30
17
|
*/
|
31
18
|
export function composeScripts(args) {
|
32
19
|
const { template, target } = args;
|
33
|
-
|
20
|
+
debug('SCRIPT PROVIDED BY PROJECT\n%O', target);
|
21
|
+
const script = mapValues({ ...template, ...target }, (command) => {
|
34
22
|
try {
|
35
23
|
// parse the shell command into its ast
|
36
24
|
const ast = parser.Parse(command);
|
@@ -54,6 +42,8 @@ export function composeScripts(args) {
|
|
54
42
|
}
|
55
43
|
}
|
56
44
|
});
|
45
|
+
debug('SCRIPT RESOLVED FROM PRESET AND PROJECT\n%O', script);
|
46
|
+
return script;
|
57
47
|
}
|
58
48
|
function isNodeType(node, type) {
|
59
49
|
return syntax.NodeType(node) === type;
|
@@ -66,11 +56,10 @@ function isNodeType(node, type) {
|
|
66
56
|
*/
|
67
57
|
function resolveRunner(command, context) {
|
68
58
|
const arg = parse(command, {
|
69
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
70
59
|
configuration: { 'populate--': true, 'unknown-options-as-args': true },
|
71
60
|
});
|
72
61
|
// extract tasks and their arguments
|
73
|
-
const destinations = arg
|
62
|
+
const destinations = arg._.slice(1);
|
74
63
|
const destinationArgs = arg['--'] ?? [];
|
75
64
|
// resolve tasks into its full form e.g. task1 task2
|
76
65
|
return destinations
|
@@ -109,4 +98,4 @@ function replaceRunnerNode(node, context) {
|
|
109
98
|
}
|
110
99
|
return true;
|
111
100
|
}
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9zY3JpcHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFckMsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFDO0FBRWpDLE9BQU8sS0FBSyxNQUFNLFVBQVUsQ0FBQztBQUU3QixPQUFPLEtBQUssTUFBTSxZQUFZLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQWF4QyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO0FBRXpCLHVCQUF1QjtBQUN2QixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7QUFFbEMsMEJBQTBCO0FBQzFCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQVVwQzs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLElBSzlCO0lBQ0MsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFFbEMsS0FBSyxDQUFDLGdDQUFnQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRWhELE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxFQUFFLEdBQUcsUUFBUSxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQVUsRUFBRTtRQUN2RSxJQUFJLENBQUM7WUFDSCx1Q0FBdUM7WUFDdkMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUVsQyw2RkFBNkY7WUFDN0YsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFMUUsa0NB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
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import type { ResolvedPresetAsset } from 'presetter-types';
|
2
|
+
/**
|
3
|
+
* generates dynamic ES module content for the specified preset
|
4
|
+
* @param exports an array of export names to include in the generated content
|
5
|
+
* @returns a string representing the dynamically generated ES module content
|
6
|
+
*/
|
7
|
+
export declare function buildEsmFile(exports: string[]): string;
|
8
|
+
/**
|
9
|
+
* serialize a configuration content to the right format according to its destination
|
10
|
+
* @param destination the path to which the content will be written
|
11
|
+
* @param content configuration content
|
12
|
+
* @returns serialized content
|
13
|
+
*/
|
14
|
+
export declare function serialize(destination: string, content: ResolvedPresetAsset): string | Buffer;
|
15
|
+
//# sourceMappingURL=serialization.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../source/serialization.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAK3D;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAYtD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,mBAAmB,GAC3B,MAAM,GAAG,MAAM,CAqBjB"}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
import { extname } from 'node:path';
|
2
|
+
import { dump } from 'js-yaml';
|
3
|
+
// JSON format
|
4
|
+
const INDENT = 2;
|
5
|
+
/**
|
6
|
+
* generates dynamic ES module content for the specified preset
|
7
|
+
* @param exports an array of export names to include in the generated content
|
8
|
+
* @returns a string representing the dynamically generated ES module content
|
9
|
+
*/
|
10
|
+
export function buildEsmFile(exports) {
|
11
|
+
return [
|
12
|
+
`import { resolve } from 'presetter';`,
|
13
|
+
'',
|
14
|
+
`const assets = await resolve(import.meta.url);`,
|
15
|
+
'',
|
16
|
+
...exports.map((exportName) => exportName === 'default'
|
17
|
+
? `export default assets['${exportName}'];`
|
18
|
+
: `export const ${exportName} = assets['${exportName}'];`),
|
19
|
+
].join('\n');
|
20
|
+
}
|
21
|
+
/**
|
22
|
+
* serialize a configuration content to the right format according to its destination
|
23
|
+
* @param destination the path to which the content will be written
|
24
|
+
* @param content configuration content
|
25
|
+
* @returns serialized content
|
26
|
+
*/
|
27
|
+
export function serialize(destination, content) {
|
28
|
+
if (Buffer.isBuffer(content)) {
|
29
|
+
return content;
|
30
|
+
}
|
31
|
+
switch (extname(destination)) {
|
32
|
+
case '.yaml':
|
33
|
+
case '.yml':
|
34
|
+
return dump(content);
|
35
|
+
case '.json':
|
36
|
+
return JSON.stringify(content, null, INDENT);
|
37
|
+
case '.js':
|
38
|
+
case '.mjs':
|
39
|
+
case '.ts':
|
40
|
+
case '.mts':
|
41
|
+
return buildEsmFile(Object.keys(content));
|
42
|
+
default:
|
43
|
+
return Array.isArray(content)
|
44
|
+
? content.join('\n') // for ignore list, e.g., .gitignore
|
45
|
+
: JSON.stringify(content, null, INDENT); // for JSON config not with a .json extension, e.g., .prettierrc
|
46
|
+
}
|
47
|
+
}
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9zZXJpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUkvQixjQUFjO0FBQ2QsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBRWpCOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLE9BQWlCO0lBQzVDLE9BQU87UUFDTCxzQ0FBc0M7UUFDdEMsRUFBRTtRQUNGLGdEQUFnRDtRQUNoRCxFQUFFO1FBQ0YsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FDNUIsVUFBVSxLQUFLLFNBQVM7WUFDdEIsQ0FBQyxDQUFDLDBCQUEwQixVQUFVLEtBQUs7WUFDM0MsQ0FBQyxDQUFDLGdCQUFnQixVQUFVLGNBQWMsVUFBVSxLQUFLLENBQzVEO0tBQ0YsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDZixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUN2QixXQUFtQixFQUNuQixPQUE0QjtJQUU1QixJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUM3QixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztRQUM3QixLQUFLLE9BQU8sQ0FBQztRQUNiLEtBQUssTUFBTTtZQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZCLEtBQUssT0FBTztZQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLEtBQUssS0FBSyxDQUFDO1FBQ1gsS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLEtBQUssQ0FBQztRQUNYLEtBQUssTUFBTTtZQUNULE9BQU8sWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBa0MsQ0FBQyxDQUFDLENBQUM7UUFDdkU7WUFDRSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO2dCQUMzQixDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxvQ0FBb0M7Z0JBQ3pELENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxnRUFBZ0U7SUFDL0csQ0FBQztBQUNILENBQUMifQ==
|
package/lib/task.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../source/task.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../source/task.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,gDAAgD;AAChD,MAAM,WAAW,IAAI;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,CAWzD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAgBtE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAsBtE"}
|
package/lib/task.js
CHANGED
@@ -1,18 +1,5 @@
|
|
1
|
-
/*
|
2
|
-
* *** MIT LICENSE ***
|
3
|
-
* -------------------------------------------------------------------------
|
4
|
-
* This code may be modified and distributed under the MIT license.
|
5
|
-
* See the LICENSE file for details.
|
6
|
-
* -------------------------------------------------------------------------
|
7
|
-
*
|
8
|
-
* @summary Helper functions for parsing task strings
|
9
|
-
*
|
10
|
-
* @author Alvis HT Tang <alvis@hilbert.space>
|
11
|
-
* @license MIT
|
12
|
-
* @copyright Copyright (c) 2019 - All Rights Reserved.
|
13
|
-
* -------------------------------------------------------------------------
|
14
|
-
*/
|
15
1
|
import parse from 'yargs-parser';
|
2
|
+
import debug from './debugger.js';
|
16
3
|
/**
|
17
4
|
* parse global arguments from an argv object
|
18
5
|
* @param argv - an arguments object containing the command line arguments
|
@@ -35,7 +22,6 @@ export function parseGlobalArgs(argv) {
|
|
35
22
|
*/
|
36
23
|
export function parseTaskSpec(spec, globalArgs) {
|
37
24
|
const argv = parse(spec, {
|
38
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
39
25
|
configuration: { 'populate--': true },
|
40
26
|
});
|
41
27
|
const selector = argv._[0];
|
@@ -70,6 +56,8 @@ export function selectTasks(tasks, pattern) {
|
|
70
56
|
})
|
71
57
|
.join(':');
|
72
58
|
const regex = new RegExp(`^${regexPattern}$`);
|
73
|
-
|
59
|
+
const selected = tasks.filter((task) => regex.test(task));
|
60
|
+
debug('SELECTED TASKS\n%O', { pattern, selected });
|
61
|
+
return selected;
|
74
62
|
}
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS90YXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUVqQyxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUM7QUFVL0I7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQUMsSUFBZTtJQUM3QywwRkFBMEY7SUFDMUYsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTlCLCtFQUErRTtJQUMvRSxPQUFPLENBQ0wsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO0lBQ3RCLDZEQUE2RDtJQUM3RCxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUNsRCxJQUFJLEVBQUUsQ0FBQyw0REFBNEQ7S0FDckUsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsSUFBWSxFQUFFLFVBQW9CO0lBQzlELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUU7UUFDdkIsYUFBYSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRTtLQUN0QyxDQUFDLENBQUM7SUFFSCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBVyxDQUFDO0lBQ3JDLE1BQU0sSUFBSSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDL0QsSUFBSSxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDbEIsOEJBQThCO1lBQzlCLE9BQU8sQ0FBQyxHQUFHLGFBQWEsRUFBRSxHQUFHLFVBQVUsQ0FBQyxDQUFDO1FBQzNDLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLEdBQUcsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDLEVBQUUsRUFBYyxDQUFDLENBQUM7SUFFbkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUM1QixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLEtBQWUsRUFBRSxPQUFlO0lBQzFELE1BQU0sWUFBWSxHQUFHLE9BQU87U0FDekIsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUNWLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ1osSUFBSSxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDakIsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUNELElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2xCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO1NBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRWIsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBRTlDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUUxRCxLQUFLLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUVuRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDIn0=
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/template/index.ts"],"names":[],"mappings":"AAEA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
|
@@ -0,0 +1,4 @@
|
|
1
|
+
/* v8 ignore start */
|
2
|
+
export * from './merge.js';
|
3
|
+
export * from './substitute.js';
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvdGVtcGxhdGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCO0FBRXJCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsY0FBYyxDQUFDIn0=
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import type { UnknownRecord } from 'type-fest';
|
2
|
+
type MergedType<A, B> = A extends UnknownRecord ? B extends UnknownRecord ? A & B : MergedArray<A, B> : MergedArray<A, B>;
|
3
|
+
type MergedArray<A, B> = A extends any[] ? B extends any[] ? Array<A[number] | B[number]> : keyof B extends `${number}` ? Array<A[number] | B[keyof B]> : B : B;
|
4
|
+
/**
|
5
|
+
* deep merge an object
|
6
|
+
* @param source default object if no additional property is supplied
|
7
|
+
* @param target properties to be merged with the default
|
8
|
+
* @returns merged object
|
9
|
+
*/
|
10
|
+
export declare function merge<S, T>(source: S, target?: T): MergedType<S, T>;
|
11
|
+
/**
|
12
|
+
* merge an array with any value
|
13
|
+
* @param source the source array to be merged
|
14
|
+
* @param target new replacement
|
15
|
+
* @returns merged value
|
16
|
+
*/
|
17
|
+
export declare function mergeArray<S, T>(source: S[], target?: T): MergedArray<S[], T>;
|
18
|
+
/**
|
19
|
+
* merge two arrays
|
20
|
+
* @param source the source array to be merged
|
21
|
+
* @param target new replacement
|
22
|
+
* @returns merged array
|
23
|
+
*/
|
24
|
+
export declare function mergeArrays<S, T>(source: S[], target: T[]): MergedArray<S[], T[]>;
|
25
|
+
/**
|
26
|
+
* merge an object with any value
|
27
|
+
* @param source the source object to be merged
|
28
|
+
* @param target new replacement
|
29
|
+
* @returns merged value
|
30
|
+
*/
|
31
|
+
export declare function mergeObject<S extends {}, T>(source: S, target?: T): MergedType<S, T>;
|
32
|
+
export {};
|
33
|
+
//# sourceMappingURL=merge.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../source/template/merge.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,KAAK,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,aAAa,GAC3C,CAAC,SAAS,aAAa,GACrB,CAAC,GAAG,CAAC,GACL,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GACnB,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEtB,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,GACpC,CAAC,SAAS,GAAG,EAAE,GACb,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAC5B,MAAM,CAAC,SAAS,GAAG,MAAM,EAAE,GACzB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAC7B,CAAC,GACL,CAAC,CAAC;AAEN;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAqBnE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAoB7E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAC9B,MAAM,EAAE,CAAC,EAAE,EACX,MAAM,EAAE,CAAC,EAAE,GACV,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAEvB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,EACzC,MAAM,EAAE,CAAC,EACT,MAAM,CAAC,EAAE,CAAC,GACT,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAoBlB"}
|