@xpack/xpm-lib 3.1.1 → 3.1.2
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/dist/lib/liquid-actions.d.ts +8 -3
- package/dist/lib/liquid-actions.d.ts.map +1 -1
- package/dist/lib/liquid-actions.js +58 -23
- package/dist/lib/liquid-actions.js.map +1 -1
- package/dist/lib/liquid-build-configurations.d.ts +2 -4
- package/dist/lib/liquid-build-configurations.d.ts.map +1 -1
- package/dist/lib/liquid-build-configurations.js +22 -7
- package/dist/lib/liquid-build-configurations.js.map +1 -1
- package/package.json +1 -1
- package/src/lib/liquid-actions.ts +66 -22
- package/src/lib/liquid-build-configurations.ts +34 -11
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { Logger } from '@xpack/logger';
|
|
2
2
|
import { XpmLiquidEngine } from './liquid-engine.js';
|
|
3
3
|
import { XpmLiquidSubstitutionsVariables, XpmLiquidSubstitutionsStrings } from './substitutions-variables.js';
|
|
4
|
-
import { JsonActions } from './types.js';
|
|
4
|
+
import { JsonActions, JsonActionValue } from './types.js';
|
|
5
5
|
export declare class XpmLiquidActions {
|
|
6
6
|
#private;
|
|
7
7
|
readonly log: Logger;
|
|
8
8
|
readonly engine: XpmLiquidEngine;
|
|
9
9
|
readonly substitutionsVariables: XpmLiquidSubstitutionsVariables;
|
|
10
10
|
readonly jsonActions: JsonActions;
|
|
11
|
-
constructor({ log, engine, substitutionsVariables, jsonActions, }: {
|
|
11
|
+
constructor({ log, engine, substitutionsVariables, inheritedActionsMap, jsonActions, }: {
|
|
12
12
|
log: Logger;
|
|
13
13
|
engine: XpmLiquidEngine;
|
|
14
14
|
substitutionsVariables: XpmLiquidSubstitutionsVariables;
|
|
15
|
+
inheritedActionsMap?: Map<string, XpmLiquidAction>;
|
|
15
16
|
jsonActions: JsonActions | undefined;
|
|
16
17
|
});
|
|
17
18
|
initialise(): Promise<void>;
|
|
@@ -22,9 +23,13 @@ export declare class XpmLiquidActions {
|
|
|
22
23
|
}
|
|
23
24
|
export declare class XpmLiquidAction {
|
|
24
25
|
#private;
|
|
26
|
+
readonly actionName: string;
|
|
27
|
+
readonly jsonAction: JsonActionValue;
|
|
28
|
+
parentActions: XpmLiquidActions;
|
|
25
29
|
matrixParameters?: XpmLiquidSubstitutionsStrings;
|
|
26
|
-
constructor({ actionName, parentActions, }: {
|
|
30
|
+
constructor({ actionName, jsonAction, parentActions, }: {
|
|
27
31
|
actionName: string;
|
|
32
|
+
jsonAction: JsonActionValue;
|
|
28
33
|
parentActions: XpmLiquidActions;
|
|
29
34
|
});
|
|
30
35
|
getCommands(): Promise<string[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liquid-actions.d.ts","sourceRoot":"","sources":["../../src/lib/liquid-actions.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC9B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"liquid-actions.d.ts","sourceRoot":"","sources":["../../src/lib/liquid-actions.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC9B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAMzD,qBAAa,gBAAgB;;IAI3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,sBAAsB,EAAE,+BAA+B,CAAA;IAChE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;gBAUrB,EACV,GAAG,EACH,MAAM,EACN,sBAAsB,EACtB,mBAAmB,EACnB,WAAW,GACZ,EAAE;QACD,GAAG,EAAE,MAAM,CAAA;QACX,MAAM,EAAE,eAAe,CAAA;QACvB,sBAAsB,EAAE,+BAA+B,CAAA;QACvD,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;QAClD,WAAW,EAAE,WAAW,GAAG,SAAS,CAAA;KACrC;IAiCK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBjC,KAAK,IAAI,OAAO;IAIhB,KAAK,IAAI,MAAM,EAAE;IAOjB,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAIhC,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe;CAiBzC;AAKD,qBAAa,eAAe;;IAI1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAE3B,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAA;IACpC,aAAa,EAAE,gBAAgB,CAAA;IAG/B,gBAAgB,CAAC,EAAE,6BAA6B,CAAA;gBAMpC,EACV,UAAU,EAEV,UAAU,EACV,aAAa,GACd,EAAE;QACD,UAAU,EAAE,MAAM,CAAA;QAElB,UAAU,EAAE,eAAe,CAAA;QAC3B,aAAa,EAAE,gBAAgB,CAAA;KAChC;IAgBK,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAwBvC"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
/* eslint max-len: [ "error", 80, { "ignoreUrls": true } ] */
|
|
12
12
|
// ----------------------------------------------------------------------------
|
|
13
|
-
|
|
13
|
+
import assert from 'node:assert';
|
|
14
14
|
import * as os from 'node:os';
|
|
15
15
|
import { performSubstitutions } from './functions/perform-substitutions.js';
|
|
16
16
|
// ----------------------------------------------------------------------------
|
|
@@ -22,18 +22,31 @@ export class XpmLiquidActions {
|
|
|
22
22
|
engine;
|
|
23
23
|
substitutionsVariables;
|
|
24
24
|
jsonActions;
|
|
25
|
-
#
|
|
25
|
+
#actionsMap;
|
|
26
|
+
#jsonActionsNamesMap;
|
|
26
27
|
#isInitialised = false;
|
|
27
28
|
// --------------------------------------------------------------------------
|
|
28
29
|
// Constructor and async initialiser.
|
|
29
|
-
constructor({ log, engine, substitutionsVariables, jsonActions, }) {
|
|
30
|
+
constructor({ log, engine, substitutionsVariables, inheritedActionsMap, jsonActions, }) {
|
|
30
31
|
log.trace(`${XpmLiquidActions.name}()`);
|
|
31
32
|
this.log = log;
|
|
32
33
|
this.engine = engine;
|
|
33
34
|
this.substitutionsVariables = substitutionsVariables;
|
|
34
35
|
this.jsonActions = jsonActions ?? {};
|
|
35
36
|
// Possibly empty if there are no actions.
|
|
36
|
-
this.#
|
|
37
|
+
this.#actionsMap = new Map();
|
|
38
|
+
if (inheritedActionsMap !== undefined) {
|
|
39
|
+
for (const [inheritedActionName, inheritedAction,] of inheritedActionsMap) {
|
|
40
|
+
// Make copies of the actions, do not alter the inherited ones.
|
|
41
|
+
const action = new XpmLiquidAction({
|
|
42
|
+
actionName: inheritedActionName,
|
|
43
|
+
jsonAction: inheritedAction.jsonAction,
|
|
44
|
+
parentActions: this,
|
|
45
|
+
});
|
|
46
|
+
this.#actionsMap.set(inheritedActionName, action);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
this.#jsonActionsNamesMap = new Map();
|
|
37
50
|
// log.trace('substitutionsVariables => ', this.substitutionsVariables)
|
|
38
51
|
// The rest of the initialisation is done in the async initialiser.
|
|
39
52
|
}
|
|
@@ -43,30 +56,43 @@ export class XpmLiquidActions {
|
|
|
43
56
|
return;
|
|
44
57
|
}
|
|
45
58
|
for (const actionName of Object.keys(this.jsonActions)) {
|
|
46
|
-
|
|
47
|
-
|
|
59
|
+
if (actionName.includes('{{')) {
|
|
60
|
+
// TODO: expand templates and generate multiple actions.
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
this.#actionsMap.set(actionName, undefined);
|
|
64
|
+
this.#jsonActionsNamesMap.set(actionName, actionName);
|
|
65
|
+
}
|
|
48
66
|
}
|
|
49
|
-
this.log.trace(`${XpmLiquidActions.name}.initialise() =>`, Array.from(this.#
|
|
67
|
+
this.log.trace(`${XpmLiquidActions.name}.initialise() =>`, Array.from(this.#actionsMap.keys()));
|
|
50
68
|
this.#isInitialised = true;
|
|
51
69
|
}
|
|
52
70
|
// --------------------------------------------------------------------------
|
|
53
71
|
// Methods.
|
|
54
72
|
empty() {
|
|
55
|
-
return this.#
|
|
73
|
+
return this.#actionsMap.size === 0;
|
|
56
74
|
}
|
|
57
75
|
names() {
|
|
58
|
-
const actionNames = Array.from(this.#
|
|
76
|
+
const actionNames = Array.from(this.#actionsMap.keys());
|
|
59
77
|
this.log.trace(`${XpmLiquidActions.name}.names() =>`, actionNames);
|
|
60
78
|
return actionNames;
|
|
61
79
|
}
|
|
62
80
|
has(actionName) {
|
|
63
|
-
return this.#
|
|
81
|
+
return this.#actionsMap.has(actionName);
|
|
64
82
|
}
|
|
65
83
|
get(actionName) {
|
|
66
|
-
let action = this.#
|
|
84
|
+
let action = this.#actionsMap.get(actionName);
|
|
67
85
|
if (action === undefined) {
|
|
68
|
-
|
|
69
|
-
|
|
86
|
+
const jsonActionName =
|
|
87
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
88
|
+
this.#jsonActionsNamesMap.get(actionName);
|
|
89
|
+
const jsonAction = this.jsonActions[jsonActionName] ?? '';
|
|
90
|
+
action = new XpmLiquidAction({
|
|
91
|
+
actionName,
|
|
92
|
+
jsonAction,
|
|
93
|
+
parentActions: this,
|
|
94
|
+
});
|
|
95
|
+
this.#actionsMap.set(actionName, action);
|
|
70
96
|
}
|
|
71
97
|
return action;
|
|
72
98
|
}
|
|
@@ -76,36 +102,45 @@ export class XpmLiquidActions {
|
|
|
76
102
|
export class XpmLiquidAction {
|
|
77
103
|
// --------------------------------------------------------------------------
|
|
78
104
|
// Members.
|
|
79
|
-
|
|
80
|
-
|
|
105
|
+
actionName;
|
|
106
|
+
// readonly jsonActionName: string
|
|
107
|
+
jsonAction;
|
|
108
|
+
parentActions;
|
|
81
109
|
// For templates, the actual values.
|
|
82
110
|
matrixParameters;
|
|
83
111
|
#commands;
|
|
84
112
|
// --------------------------------------------------------------------------
|
|
85
113
|
// Constructor.
|
|
86
|
-
constructor({ actionName,
|
|
114
|
+
constructor({ actionName,
|
|
115
|
+
// jsonActionName,
|
|
116
|
+
jsonAction, parentActions, }) {
|
|
117
|
+
assert(actionName);
|
|
118
|
+
// assert(jsonActionName)
|
|
119
|
+
assert(parentActions);
|
|
87
120
|
parentActions.log.trace(`${XpmLiquidAction.name}(${actionName})`);
|
|
88
|
-
this
|
|
89
|
-
this
|
|
121
|
+
this.actionName = actionName;
|
|
122
|
+
// this.jsonActionName = jsonActionName
|
|
123
|
+
this.jsonAction = jsonAction;
|
|
124
|
+
this.parentActions = parentActions;
|
|
90
125
|
}
|
|
91
126
|
// --------------------------------------------------------------------------
|
|
92
127
|
// Methods.
|
|
93
128
|
async getCommands() {
|
|
94
129
|
if (this.#commands === undefined) {
|
|
95
130
|
// Silently accept empty or non-existing actions.
|
|
96
|
-
const jsonAction = this
|
|
131
|
+
const jsonAction = this.jsonAction;
|
|
97
132
|
const input = Array.isArray(jsonAction)
|
|
98
133
|
? jsonAction.join(os.EOL)
|
|
99
134
|
: jsonAction;
|
|
100
135
|
const substituted = await performSubstitutions({
|
|
101
136
|
input,
|
|
102
|
-
engine: this
|
|
103
|
-
substitutionsVariables: this
|
|
104
|
-
log: this
|
|
137
|
+
engine: this.parentActions.engine,
|
|
138
|
+
substitutionsVariables: this.parentActions.substitutionsVariables,
|
|
139
|
+
log: this.parentActions.log,
|
|
105
140
|
});
|
|
106
141
|
this.#commands = substituted.split(os.EOL);
|
|
107
142
|
}
|
|
108
|
-
this
|
|
143
|
+
this.parentActions.log.trace(`${XpmLiquidAction.name}.commands() =>`, this.#commands);
|
|
109
144
|
return this.#commands;
|
|
110
145
|
}
|
|
111
146
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liquid-actions.js","sourceRoot":"","sources":["../../src/lib/liquid-actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,6DAA6D;AAE7D,+EAA+E;AAE/E,
|
|
1
|
+
{"version":3,"file":"liquid-actions.js","sourceRoot":"","sources":["../../src/lib/liquid-actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,7 +28,6 @@ export declare class XpmLiquidBuildConfigurations {
|
|
|
28
28
|
export declare class XpmLiquidBuildConfiguration {
|
|
29
29
|
#private;
|
|
30
30
|
readonly hidden: boolean;
|
|
31
|
-
readonly jsonBuildConfigurationName: string;
|
|
32
31
|
readonly jsonBuildConfiguration: JsonBuildConfiguration;
|
|
33
32
|
substitutionsVariables: XpmLiquidSubstitutionsVariables;
|
|
34
33
|
properties: XpmLiquidSubstitutionsStrings;
|
|
@@ -36,10 +35,9 @@ export declare class XpmLiquidBuildConfiguration {
|
|
|
36
35
|
jsonDevDependencies: JsonDependencies;
|
|
37
36
|
matrixParameters?: XpmLiquidSubstitutionsStrings;
|
|
38
37
|
constructor({ buildConfigurationName, // The Liquid-processed name.
|
|
39
|
-
|
|
40
|
-
parentBuildConfigurations, }: {
|
|
38
|
+
jsonBuildConfiguration, parentBuildConfigurations, }: {
|
|
41
39
|
buildConfigurationName: string;
|
|
42
|
-
|
|
40
|
+
jsonBuildConfiguration: JsonBuildConfiguration;
|
|
43
41
|
parentBuildConfigurations: XpmLiquidBuildConfigurations;
|
|
44
42
|
});
|
|
45
43
|
initialise(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liquid-build-configurations.d.ts","sourceRoot":"","sources":["../../src/lib/liquid-build-configurations.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC9B,MAAM,8BAA8B,CAAA;AAErC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAEnB,OAAO,
|
|
1
|
+
{"version":3,"file":"liquid-build-configurations.d.ts","sourceRoot":"","sources":["../../src/lib/liquid-build-configurations.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC9B,MAAM,8BAA8B,CAAA;AAErC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAmB,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAOvE,qBAAa,4BAA4B;;IAIvC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,sBAAsB,EAAE,+BAA+B,CAAA;IAChE,QAAQ,CAAC,uBAAuB,EAAE,uBAAuB,CAAA;gBAa7C,EACV,GAAG,EACH,MAAM,EACN,sBAAsB,EACtB,uBAAuB,GACxB,EAAE;QACD,GAAG,EAAE,MAAM,CAAA;QACX,MAAM,EAAE,eAAe,CAAA;QACvB,sBAAsB,EAAE,+BAA+B,CAAA;QACvD,uBAAuB,EAAE,uBAAuB,GAAG,SAAS,CAAA;KAC7D;IAsBK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BjC,KAAK,IAAI,OAAO;IAIhB,KAAK,IAAI,MAAM,EAAE;IAYjB,OAAO,CAAC,sBAAsB,EAAE,MAAM,GAAG,OAAO;IAIhD,OAAO,CAAC,sBAAsB,EAAE,MAAM,GAAG,sBAAsB;IAM/D,QAAQ,CAAC,sBAAsB,EAAE,MAAM,GAAG,OAAO;IAOjD,GAAG,CAAC,sBAAsB,EAAE,MAAM,GAAG,OAAO;IAItC,GAAG,CACP,sBAAsB,EAAE,MAAM,GAC7B,OAAO,CAAC,2BAA2B,CAAC;IA4BvC,WAAW,CAAC,sBAAsB,EAAE,MAAM,GAAG,MAAM;CAIpD;AAKD,qBAAa,2BAA2B;;IAItC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IAKxB,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAA;IAEvD,sBAAsB,EAAE,+BAA+B,CAAA;IAEvD,UAAU,EAAE,6BAA6B,CAAK;IAE9C,gBAAgB,EAAE,gBAAgB,CAAK;IACvC,mBAAmB,EAAE,gBAAgB,CAAK;IAG1C,gBAAgB,CAAC,EAAE,6BAA6B,CAAA;gBAgBpC,EACV,sBAAsB,EAAE,6BAA6B;IAErD,sBAAsB,EACtB,yBAAyB,GAC1B,EAAE;QACD,sBAAsB,EAAE,MAAM,CAAA;QAE9B,sBAAsB,EAAE,sBAAsB,CAAA;QAC9C,yBAAyB,EAAE,4BAA4B,CAAA;KACxD;IAwBK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA8HjC,IAAI,OAAO,IAAI,gBAAgB,CAG9B;IAEK,0BAA0B,IAAI,OAAO,CAAC,MAAM,CAAC;CAiCpD"}
|
|
@@ -32,6 +32,9 @@ export class XpmLiquidBuildConfigurations {
|
|
|
32
32
|
// --------------------------------------------------------------------------
|
|
33
33
|
// Constructor and async initialiser.
|
|
34
34
|
constructor({ log, engine, substitutionsVariables, jsonBuildConfigurations, }) {
|
|
35
|
+
assert(log);
|
|
36
|
+
assert(engine);
|
|
37
|
+
assert(substitutionsVariables);
|
|
35
38
|
log.trace(`${XpmLiquidBuildConfigurations.name}()`);
|
|
36
39
|
this.log = log;
|
|
37
40
|
this.engine = engine;
|
|
@@ -88,9 +91,11 @@ export class XpmLiquidBuildConfigurations {
|
|
|
88
91
|
const jsonBuildConfigurationName =
|
|
89
92
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
90
93
|
this.#jsonBuildConfigurationsNamesMap.get(buildConfigurationName);
|
|
94
|
+
const jsonBuildConfiguration = this.jsonBuildConfigurations[jsonBuildConfigurationName] ?? {};
|
|
91
95
|
buildConfiguration = new XpmLiquidBuildConfiguration({
|
|
92
96
|
buildConfigurationName,
|
|
93
|
-
jsonBuildConfigurationName,
|
|
97
|
+
// jsonBuildConfigurationName,
|
|
98
|
+
jsonBuildConfiguration,
|
|
94
99
|
parentBuildConfigurations: this,
|
|
95
100
|
});
|
|
96
101
|
await buildConfiguration.initialise();
|
|
@@ -110,7 +115,7 @@ export class XpmLiquidBuildConfiguration {
|
|
|
110
115
|
// Members.
|
|
111
116
|
hidden;
|
|
112
117
|
// The actual (un-substituted) name from package.json.
|
|
113
|
-
jsonBuildConfigurationName
|
|
118
|
+
// readonly jsonBuildConfigurationName: string
|
|
114
119
|
// Points to the actual buildConfiguration in package.json.
|
|
115
120
|
jsonBuildConfiguration;
|
|
116
121
|
substitutionsVariables;
|
|
@@ -128,14 +133,17 @@ export class XpmLiquidBuildConfiguration {
|
|
|
128
133
|
// --------------------------------------------------------------------------
|
|
129
134
|
// Constructor and async initialiser.
|
|
130
135
|
constructor({ buildConfigurationName, // The Liquid-processed name.
|
|
131
|
-
jsonBuildConfigurationName, // The raw name from package.json.
|
|
132
|
-
parentBuildConfigurations, }) {
|
|
136
|
+
// jsonBuildConfigurationName, // The raw name from package.json.
|
|
137
|
+
jsonBuildConfiguration, parentBuildConfigurations, }) {
|
|
138
|
+
assert(buildConfigurationName);
|
|
139
|
+
// assert(jsonBuildConfigurationName)
|
|
140
|
+
assert(jsonBuildConfiguration);
|
|
141
|
+
assert(parentBuildConfigurations);
|
|
133
142
|
parentBuildConfigurations.log.trace(`${XpmLiquidBuildConfiguration.name}(${buildConfigurationName})`);
|
|
134
143
|
this.#buildConfigurationName = buildConfigurationName;
|
|
135
|
-
this.jsonBuildConfigurationName = jsonBuildConfigurationName
|
|
144
|
+
// this.jsonBuildConfigurationName = jsonBuildConfigurationName
|
|
145
|
+
this.jsonBuildConfiguration = jsonBuildConfiguration;
|
|
136
146
|
this.#parentBuildConfigurations = parentBuildConfigurations;
|
|
137
|
-
this.jsonBuildConfiguration =
|
|
138
|
-
parentBuildConfigurations.jsonBuildConfigurations[jsonBuildConfigurationName] ?? {};
|
|
139
147
|
this.substitutionsVariables = {
|
|
140
148
|
...this.#parentBuildConfigurations.substitutionsVariables,
|
|
141
149
|
};
|
|
@@ -163,6 +171,7 @@ export class XpmLiquidBuildConfiguration {
|
|
|
163
171
|
else if (Array.isArray(jsonBuildConfiguration.inherit)) {
|
|
164
172
|
inherits = jsonBuildConfiguration.inherit;
|
|
165
173
|
}
|
|
174
|
+
const inheritedActionsMap = new Map();
|
|
166
175
|
// Add inherited configuration properties.
|
|
167
176
|
// TODO: detect circular references.
|
|
168
177
|
for (const inheritedBuildConfigurationName of inherits) {
|
|
@@ -180,6 +189,11 @@ export class XpmLiquidBuildConfiguration {
|
|
|
180
189
|
...this.jsonDevDependencies,
|
|
181
190
|
...inheritedBuildConfiguration.jsonDevDependencies,
|
|
182
191
|
};
|
|
192
|
+
await inheritedBuildConfiguration.actions.initialise();
|
|
193
|
+
for (const actionName of inheritedBuildConfiguration.actions.names()) {
|
|
194
|
+
const action = inheritedBuildConfiguration.actions.get(actionName);
|
|
195
|
+
inheritedActionsMap.set(actionName, action);
|
|
196
|
+
}
|
|
183
197
|
}
|
|
184
198
|
else {
|
|
185
199
|
log.warn('buildConfiguration', this.#buildConfigurationName, 'inherits from missing', inheritedBuildConfigurationName, '(ignored)');
|
|
@@ -218,6 +232,7 @@ export class XpmLiquidBuildConfiguration {
|
|
|
218
232
|
log: this.#parentBuildConfigurations.log,
|
|
219
233
|
engine: this.#parentBuildConfigurations.engine,
|
|
220
234
|
substitutionsVariables: this.substitutionsVariables,
|
|
235
|
+
inheritedActionsMap,
|
|
221
236
|
jsonActions: this.jsonBuildConfiguration.actions,
|
|
222
237
|
});
|
|
223
238
|
// Note: this must be done manually by the application.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liquid-build-configurations.js","sourceRoot":"","sources":["../../src/lib/liquid-build-configurations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,6DAA6D;AAE7D,+EAA+E;AAE/E,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AASjC,OAAO,EAAE,mCAAmC,EAAE,MAAM,qBAAqB,CAAA;AAMzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;AAC3E,OAAO,
|
|
1
|
+
{"version":3,"file":"liquid-build-configurations.js","sourceRoot":"","sources":["../../src/lib/liquid-build-configurations.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
// ----------------------------------------------------------------------------
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
import assert from 'node:assert'
|
|
17
17
|
import * as os from 'node:os'
|
|
18
18
|
|
|
19
19
|
import { Logger } from '@xpack/logger'
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
XpmLiquidSubstitutionsVariables,
|
|
24
24
|
XpmLiquidSubstitutionsStrings,
|
|
25
25
|
} from './substitutions-variables.js'
|
|
26
|
-
import { JsonActions } from './types.js'
|
|
26
|
+
import { JsonActions, JsonActionValue } from './types.js'
|
|
27
27
|
import { performSubstitutions } from './functions/perform-substitutions.js'
|
|
28
28
|
|
|
29
29
|
// ----------------------------------------------------------------------------
|
|
@@ -38,7 +38,8 @@ export class XpmLiquidActions {
|
|
|
38
38
|
readonly substitutionsVariables: XpmLiquidSubstitutionsVariables
|
|
39
39
|
readonly jsonActions: JsonActions
|
|
40
40
|
|
|
41
|
-
readonly #
|
|
41
|
+
readonly #actionsMap: Map<string, XpmLiquidAction | undefined>
|
|
42
|
+
readonly #jsonActionsNamesMap: Map<string, string>
|
|
42
43
|
|
|
43
44
|
#isInitialised = false
|
|
44
45
|
|
|
@@ -49,11 +50,13 @@ export class XpmLiquidActions {
|
|
|
49
50
|
log,
|
|
50
51
|
engine,
|
|
51
52
|
substitutionsVariables,
|
|
53
|
+
inheritedActionsMap,
|
|
52
54
|
jsonActions,
|
|
53
55
|
}: {
|
|
54
56
|
log: Logger
|
|
55
57
|
engine: XpmLiquidEngine
|
|
56
58
|
substitutionsVariables: XpmLiquidSubstitutionsVariables
|
|
59
|
+
inheritedActionsMap?: Map<string, XpmLiquidAction>
|
|
57
60
|
jsonActions: JsonActions | undefined
|
|
58
61
|
}) {
|
|
59
62
|
log.trace(`${XpmLiquidActions.name}()`)
|
|
@@ -64,7 +67,24 @@ export class XpmLiquidActions {
|
|
|
64
67
|
this.jsonActions = jsonActions ?? {}
|
|
65
68
|
|
|
66
69
|
// Possibly empty if there are no actions.
|
|
67
|
-
this.#
|
|
70
|
+
this.#actionsMap = new Map<string, XpmLiquidAction | undefined>()
|
|
71
|
+
|
|
72
|
+
if (inheritedActionsMap !== undefined) {
|
|
73
|
+
for (const [
|
|
74
|
+
inheritedActionName,
|
|
75
|
+
inheritedAction,
|
|
76
|
+
] of inheritedActionsMap) {
|
|
77
|
+
// Make copies of the actions, do not alter the inherited ones.
|
|
78
|
+
const action = new XpmLiquidAction({
|
|
79
|
+
actionName: inheritedActionName,
|
|
80
|
+
jsonAction: inheritedAction.jsonAction,
|
|
81
|
+
parentActions: this,
|
|
82
|
+
})
|
|
83
|
+
this.#actionsMap.set(inheritedActionName, action)
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
this.#jsonActionsNamesMap = new Map<string, string>()
|
|
68
88
|
|
|
69
89
|
// log.trace('substitutionsVariables => ', this.substitutionsVariables)
|
|
70
90
|
// The rest of the initialisation is done in the async initialiser.
|
|
@@ -76,13 +96,17 @@ export class XpmLiquidActions {
|
|
|
76
96
|
return
|
|
77
97
|
}
|
|
78
98
|
for (const actionName of Object.keys(this.jsonActions)) {
|
|
79
|
-
|
|
80
|
-
|
|
99
|
+
if (actionName.includes('{{')) {
|
|
100
|
+
// TODO: expand templates and generate multiple actions.
|
|
101
|
+
} else {
|
|
102
|
+
this.#actionsMap.set(actionName, undefined)
|
|
103
|
+
this.#jsonActionsNamesMap.set(actionName, actionName)
|
|
104
|
+
}
|
|
81
105
|
}
|
|
82
106
|
|
|
83
107
|
this.log.trace(
|
|
84
108
|
`${XpmLiquidActions.name}.initialise() =>`,
|
|
85
|
-
Array.from(this.#
|
|
109
|
+
Array.from(this.#actionsMap.keys())
|
|
86
110
|
)
|
|
87
111
|
|
|
88
112
|
this.#isInitialised = true
|
|
@@ -92,25 +116,33 @@ export class XpmLiquidActions {
|
|
|
92
116
|
// Methods.
|
|
93
117
|
|
|
94
118
|
empty(): boolean {
|
|
95
|
-
return this.#
|
|
119
|
+
return this.#actionsMap.size === 0
|
|
96
120
|
}
|
|
97
121
|
|
|
98
122
|
names(): string[] {
|
|
99
|
-
const actionNames = Array.from(this.#
|
|
123
|
+
const actionNames = Array.from(this.#actionsMap.keys())
|
|
100
124
|
|
|
101
125
|
this.log.trace(`${XpmLiquidActions.name}.names() =>`, actionNames)
|
|
102
126
|
return actionNames
|
|
103
127
|
}
|
|
104
128
|
|
|
105
129
|
has(actionName: string): boolean {
|
|
106
|
-
return this.#
|
|
130
|
+
return this.#actionsMap.has(actionName)
|
|
107
131
|
}
|
|
108
132
|
|
|
109
133
|
get(actionName: string): XpmLiquidAction {
|
|
110
|
-
let action = this.#
|
|
134
|
+
let action = this.#actionsMap.get(actionName)
|
|
111
135
|
if (action === undefined) {
|
|
112
|
-
|
|
113
|
-
|
|
136
|
+
const jsonActionName: string =
|
|
137
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
138
|
+
this.#jsonActionsNamesMap.get(actionName)!
|
|
139
|
+
const jsonAction = this.jsonActions[jsonActionName] ?? ''
|
|
140
|
+
action = new XpmLiquidAction({
|
|
141
|
+
actionName,
|
|
142
|
+
jsonAction,
|
|
143
|
+
parentActions: this,
|
|
144
|
+
})
|
|
145
|
+
this.#actionsMap.set(actionName, action)
|
|
114
146
|
}
|
|
115
147
|
|
|
116
148
|
return action
|
|
@@ -124,8 +156,10 @@ export class XpmLiquidAction {
|
|
|
124
156
|
// --------------------------------------------------------------------------
|
|
125
157
|
// Members.
|
|
126
158
|
|
|
127
|
-
readonly
|
|
128
|
-
readonly
|
|
159
|
+
readonly actionName: string
|
|
160
|
+
// readonly jsonActionName: string
|
|
161
|
+
readonly jsonAction: JsonActionValue
|
|
162
|
+
parentActions: XpmLiquidActions
|
|
129
163
|
|
|
130
164
|
// For templates, the actual values.
|
|
131
165
|
matrixParameters?: XpmLiquidSubstitutionsStrings
|
|
@@ -136,15 +170,25 @@ export class XpmLiquidAction {
|
|
|
136
170
|
|
|
137
171
|
constructor({
|
|
138
172
|
actionName,
|
|
173
|
+
// jsonActionName,
|
|
174
|
+
jsonAction,
|
|
139
175
|
parentActions,
|
|
140
176
|
}: {
|
|
141
177
|
actionName: string
|
|
178
|
+
// jsonActionName: string
|
|
179
|
+
jsonAction: JsonActionValue
|
|
142
180
|
parentActions: XpmLiquidActions
|
|
143
181
|
}) {
|
|
182
|
+
assert(actionName)
|
|
183
|
+
// assert(jsonActionName)
|
|
184
|
+
assert(parentActions)
|
|
185
|
+
|
|
144
186
|
parentActions.log.trace(`${XpmLiquidAction.name}(${actionName})`)
|
|
145
187
|
|
|
146
|
-
this
|
|
147
|
-
this
|
|
188
|
+
this.actionName = actionName
|
|
189
|
+
// this.jsonActionName = jsonActionName
|
|
190
|
+
this.jsonAction = jsonAction
|
|
191
|
+
this.parentActions = parentActions
|
|
148
192
|
}
|
|
149
193
|
|
|
150
194
|
// --------------------------------------------------------------------------
|
|
@@ -153,22 +197,22 @@ export class XpmLiquidAction {
|
|
|
153
197
|
async getCommands(): Promise<string[]> {
|
|
154
198
|
if (this.#commands === undefined) {
|
|
155
199
|
// Silently accept empty or non-existing actions.
|
|
156
|
-
const jsonAction = this
|
|
200
|
+
const jsonAction = this.jsonAction
|
|
157
201
|
const input = Array.isArray(jsonAction)
|
|
158
202
|
? jsonAction.join(os.EOL)
|
|
159
203
|
: jsonAction
|
|
160
204
|
|
|
161
205
|
const substituted = await performSubstitutions({
|
|
162
206
|
input,
|
|
163
|
-
engine: this
|
|
164
|
-
substitutionsVariables: this
|
|
165
|
-
log: this
|
|
207
|
+
engine: this.parentActions.engine,
|
|
208
|
+
substitutionsVariables: this.parentActions.substitutionsVariables,
|
|
209
|
+
log: this.parentActions.log,
|
|
166
210
|
})
|
|
167
211
|
|
|
168
212
|
this.#commands = substituted.split(os.EOL)
|
|
169
213
|
}
|
|
170
214
|
|
|
171
|
-
this
|
|
215
|
+
this.parentActions.log.trace(
|
|
172
216
|
`${XpmLiquidAction.name}.commands() =>`,
|
|
173
217
|
this.#commands
|
|
174
218
|
)
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
JsonDependencies,
|
|
31
31
|
} from './types.js'
|
|
32
32
|
import { performSubstitutions } from './functions/perform-substitutions.js'
|
|
33
|
-
import { XpmLiquidActions } from './liquid-actions.js'
|
|
33
|
+
import { XpmLiquidAction, XpmLiquidActions } from './liquid-actions.js'
|
|
34
34
|
import { isString } from './functions/utils.js'
|
|
35
35
|
import { filterPath } from './functions/utils.js'
|
|
36
36
|
|
|
@@ -68,6 +68,10 @@ export class XpmLiquidBuildConfigurations {
|
|
|
68
68
|
substitutionsVariables: XpmLiquidSubstitutionsVariables
|
|
69
69
|
jsonBuildConfigurations: JsonBuildConfigurations | undefined
|
|
70
70
|
}) {
|
|
71
|
+
assert(log)
|
|
72
|
+
assert(engine)
|
|
73
|
+
assert(substitutionsVariables)
|
|
74
|
+
|
|
71
75
|
log.trace(`${XpmLiquidBuildConfigurations.name}()`)
|
|
72
76
|
|
|
73
77
|
this.log = log
|
|
@@ -163,9 +167,13 @@ export class XpmLiquidBuildConfigurations {
|
|
|
163
167
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
164
168
|
this.#jsonBuildConfigurationsNamesMap.get(buildConfigurationName)!
|
|
165
169
|
|
|
170
|
+
const jsonBuildConfiguration =
|
|
171
|
+
this.jsonBuildConfigurations[jsonBuildConfigurationName] ?? {}
|
|
172
|
+
|
|
166
173
|
buildConfiguration = new XpmLiquidBuildConfiguration({
|
|
167
174
|
buildConfigurationName,
|
|
168
|
-
jsonBuildConfigurationName,
|
|
175
|
+
// jsonBuildConfigurationName,
|
|
176
|
+
jsonBuildConfiguration,
|
|
169
177
|
parentBuildConfigurations: this,
|
|
170
178
|
})
|
|
171
179
|
await buildConfiguration.initialise()
|
|
@@ -194,7 +202,7 @@ export class XpmLiquidBuildConfiguration {
|
|
|
194
202
|
readonly hidden: boolean
|
|
195
203
|
|
|
196
204
|
// The actual (un-substituted) name from package.json.
|
|
197
|
-
readonly jsonBuildConfigurationName: string
|
|
205
|
+
// readonly jsonBuildConfigurationName: string
|
|
198
206
|
// Points to the actual buildConfiguration in package.json.
|
|
199
207
|
readonly jsonBuildConfiguration: JsonBuildConfiguration
|
|
200
208
|
|
|
@@ -224,26 +232,29 @@ export class XpmLiquidBuildConfiguration {
|
|
|
224
232
|
|
|
225
233
|
constructor({
|
|
226
234
|
buildConfigurationName, // The Liquid-processed name.
|
|
227
|
-
jsonBuildConfigurationName, // The raw name from package.json.
|
|
235
|
+
// jsonBuildConfigurationName, // The raw name from package.json.
|
|
236
|
+
jsonBuildConfiguration,
|
|
228
237
|
parentBuildConfigurations,
|
|
229
238
|
}: {
|
|
230
239
|
buildConfigurationName: string
|
|
231
|
-
jsonBuildConfigurationName: string
|
|
240
|
+
// jsonBuildConfigurationName: string
|
|
241
|
+
jsonBuildConfiguration: JsonBuildConfiguration
|
|
232
242
|
parentBuildConfigurations: XpmLiquidBuildConfigurations
|
|
233
243
|
}) {
|
|
244
|
+
assert(buildConfigurationName)
|
|
245
|
+
// assert(jsonBuildConfigurationName)
|
|
246
|
+
assert(jsonBuildConfiguration)
|
|
247
|
+
assert(parentBuildConfigurations)
|
|
248
|
+
|
|
234
249
|
parentBuildConfigurations.log.trace(
|
|
235
250
|
`${XpmLiquidBuildConfiguration.name}(${buildConfigurationName})`
|
|
236
251
|
)
|
|
237
252
|
|
|
238
253
|
this.#buildConfigurationName = buildConfigurationName
|
|
239
|
-
this.jsonBuildConfigurationName = jsonBuildConfigurationName
|
|
254
|
+
// this.jsonBuildConfigurationName = jsonBuildConfigurationName
|
|
255
|
+
this.jsonBuildConfiguration = jsonBuildConfiguration
|
|
240
256
|
this.#parentBuildConfigurations = parentBuildConfigurations
|
|
241
257
|
|
|
242
|
-
this.jsonBuildConfiguration =
|
|
243
|
-
parentBuildConfigurations.jsonBuildConfigurations[
|
|
244
|
-
jsonBuildConfigurationName
|
|
245
|
-
] ?? {}
|
|
246
|
-
|
|
247
258
|
this.substitutionsVariables = {
|
|
248
259
|
...this.#parentBuildConfigurations.substitutionsVariables,
|
|
249
260
|
}
|
|
@@ -275,6 +286,11 @@ export class XpmLiquidBuildConfiguration {
|
|
|
275
286
|
inherits = jsonBuildConfiguration.inherit as string[]
|
|
276
287
|
}
|
|
277
288
|
|
|
289
|
+
const inheritedActionsMap: Map<string, XpmLiquidAction> = new Map<
|
|
290
|
+
string,
|
|
291
|
+
XpmLiquidAction
|
|
292
|
+
>()
|
|
293
|
+
|
|
278
294
|
// Add inherited configuration properties.
|
|
279
295
|
// TODO: detect circular references.
|
|
280
296
|
for (const inheritedBuildConfigurationName of inherits) {
|
|
@@ -299,6 +315,12 @@ export class XpmLiquidBuildConfiguration {
|
|
|
299
315
|
...this.jsonDevDependencies,
|
|
300
316
|
...inheritedBuildConfiguration.jsonDevDependencies,
|
|
301
317
|
}
|
|
318
|
+
|
|
319
|
+
await inheritedBuildConfiguration.actions.initialise()
|
|
320
|
+
for (const actionName of inheritedBuildConfiguration.actions.names()) {
|
|
321
|
+
const action = inheritedBuildConfiguration.actions.get(actionName)
|
|
322
|
+
inheritedActionsMap.set(actionName, action)
|
|
323
|
+
}
|
|
302
324
|
} else {
|
|
303
325
|
log.warn(
|
|
304
326
|
'buildConfiguration',
|
|
@@ -347,6 +369,7 @@ export class XpmLiquidBuildConfiguration {
|
|
|
347
369
|
log: this.#parentBuildConfigurations.log,
|
|
348
370
|
engine: this.#parentBuildConfigurations.engine,
|
|
349
371
|
substitutionsVariables: this.substitutionsVariables,
|
|
372
|
+
inheritedActionsMap,
|
|
350
373
|
jsonActions: this.jsonBuildConfiguration.actions,
|
|
351
374
|
})
|
|
352
375
|
// Note: this must be done manually by the application.
|