@haibun/core 1.59.0 → 1.61.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/build/currentVersion.d.ts +1 -1
- package/build/currentVersion.js +1 -2
- package/build/lib/defs.d.ts +21 -5
- package/build/lib/defs.d.ts.map +1 -1
- package/build/lib/defs.js.map +1 -1
- package/build/lib/domain-types.d.ts.map +1 -1
- package/build/lib/domain-types.js +1 -1
- package/build/lib/domain-types.js.map +1 -1
- package/build/lib/features.d.ts +9 -14
- package/build/lib/features.d.ts.map +1 -1
- package/build/lib/features.js +12 -45
- package/build/lib/features.js.map +1 -1
- package/build/lib/interfaces/logger.d.ts +15 -2
- package/build/lib/interfaces/logger.d.ts.map +1 -1
- package/build/lib/interfaces/logger.js.map +1 -1
- package/build/lib/namedVars.d.ts +3 -3
- package/build/lib/namedVars.d.ts.map +1 -1
- package/build/lib/namedVars.js +8 -8
- package/build/lib/namedVars.js.map +1 -1
- package/build/lib/resolver-features.d.ts +3 -2
- package/build/lib/resolver-features.d.ts.map +1 -1
- package/build/lib/resolver-features.js.map +1 -1
- package/build/lib/test/TestSteps.d.ts +1 -1
- package/build/lib/test/resolvedTestFeatures.d.ts +30 -0
- package/build/lib/test/resolvedTestFeatures.d.ts.map +1 -0
- package/build/lib/test/resolvedTestFeatures.js +41 -0
- package/build/lib/test/resolvedTestFeatures.js.map +1 -0
- package/build/lib/util/index.d.ts +5 -0
- package/build/lib/util/index.d.ts.map +1 -1
- package/build/lib/util/index.js +9 -0
- package/build/lib/util/index.js.map +1 -1
- package/build/phases/Executor.d.ts.map +1 -1
- package/build/phases/Executor.js +23 -11
- package/build/phases/Executor.js.map +1 -1
- package/build/phases/Resolver.d.ts.map +1 -1
- package/build/phases/Resolver.js +7 -2
- package/build/phases/Resolver.js.map +1 -1
- package/build/phases/collector.js +5 -5
- package/build/phases/collector.js.map +1 -1
- package/build/runner.d.ts +1 -1
- package/build/runner.d.ts.map +1 -1
- package/build/runner.js +7 -8
- package/build/runner.js.map +1 -1
- package/build/steps/haibun.d.ts.map +1 -1
- package/build/steps/haibun.js +3 -3
- package/build/steps/haibun.js.map +1 -1
- package/build/steps/parse.d.ts +1 -1
- package/build/steps/variables-stepper.d.ts +55 -0
- package/build/steps/variables-stepper.d.ts.map +1 -0
- package/build/steps/variables-stepper.js +117 -0
- package/build/steps/variables-stepper.js.map +1 -0
- package/build/steps/vars.d.ts +4 -4
- package/package.json +1 -1
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { OK } from '../lib/defs.js';
|
|
2
|
+
import { AStepper } from '../lib/astepper.js';
|
|
3
|
+
import { EExecutionMessageType } from '../lib/interfaces/logger.js';
|
|
4
|
+
import { actionNotOK } from '../lib/util/index.js';
|
|
5
|
+
import { FeatureVariables } from '../lib/feature-variables.js';
|
|
6
|
+
// FIXME see https://github.com/withhaibun/haibun/issues/18
|
|
7
|
+
const getOrCond = (fr) => fr.replace(/.* is set or /, '');
|
|
8
|
+
const clearVars = (vars) => async () => {
|
|
9
|
+
vars.getWorld().shared.clear();
|
|
10
|
+
return Promise.resolve();
|
|
11
|
+
};
|
|
12
|
+
const cycles = (variablesStepper) => ({
|
|
13
|
+
endScenario: clearVars(variablesStepper),
|
|
14
|
+
startFeature: clearVars(variablesStepper),
|
|
15
|
+
startScenario: ({ featureVars }) => {
|
|
16
|
+
variablesStepper.getWorld().shared = new FeatureVariables(variablesStepper.getWorld().tag.toString(), { ...featureVars.all() });
|
|
17
|
+
return Promise.resolve();
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
class VariablesStepper extends AStepper {
|
|
21
|
+
cycles = cycles(this);
|
|
22
|
+
set = async (named, featureStep) => {
|
|
23
|
+
// FIXME see https://github.com/withhaibun/haibun/issues/18
|
|
24
|
+
const emptyOnly = !!featureStep.in.match(/set empty /);
|
|
25
|
+
const res = setShared(named, featureStep, this.getWorld(), emptyOnly);
|
|
26
|
+
return Promise.resolve(res);
|
|
27
|
+
};
|
|
28
|
+
checkIsSet(what) {
|
|
29
|
+
return this.getVarValue(what) !== undefined;
|
|
30
|
+
}
|
|
31
|
+
// FIXME provide explicit mapping to more carefully handle env, etc.
|
|
32
|
+
getVarValue(what) {
|
|
33
|
+
const envVal = this.getWorld().options.envVariables[what];
|
|
34
|
+
if (envVal !== undefined) {
|
|
35
|
+
return envVal;
|
|
36
|
+
}
|
|
37
|
+
return this.getWorld().shared.get(what);
|
|
38
|
+
}
|
|
39
|
+
isSet(what, orCond) {
|
|
40
|
+
if (this.checkIsSet(what)) {
|
|
41
|
+
return OK;
|
|
42
|
+
}
|
|
43
|
+
const [warning, response] = orCond.split(':').map((t) => t.trim());
|
|
44
|
+
const incident = {
|
|
45
|
+
incident: EExecutionMessageType.ACTION, incidentDetails: { summary: warning || response, }, tag: this.getWorld().tag
|
|
46
|
+
};
|
|
47
|
+
return actionNotOK(`${what} not set${orCond && ': ' + orCond}`, incident);
|
|
48
|
+
}
|
|
49
|
+
steps = {
|
|
50
|
+
combine: {
|
|
51
|
+
gwta: 'combine {p1} and {p2} as {what}',
|
|
52
|
+
action: async ({ p1, p2, what }, featureStep) => await this.set({ what, value: `${p1}${p2}` }, featureStep),
|
|
53
|
+
},
|
|
54
|
+
showEnv: {
|
|
55
|
+
gwta: 'show env',
|
|
56
|
+
action: async (n, featureStep) => {
|
|
57
|
+
console.info('env', this.world.options.envVariables);
|
|
58
|
+
return await this.set(n, featureStep);
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
showVars: {
|
|
62
|
+
gwta: 'show vars',
|
|
63
|
+
action: async () => {
|
|
64
|
+
console.info('vars', JSON.stringify(this.world.shared));
|
|
65
|
+
return Promise.resolve(OK);
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
set: {
|
|
69
|
+
gwta: 'set( empty)? {what: string} to {value: string}',
|
|
70
|
+
action: async (n, featureStep) => {
|
|
71
|
+
return await this.set(n, featureStep);
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
is: {
|
|
75
|
+
gwta: 'variable {what: string} is "{value}"',
|
|
76
|
+
action: async ({ what, value }) => {
|
|
77
|
+
const val = this.getVarValue(what);
|
|
78
|
+
return Promise.resolve(val === value ? OK : actionNotOK(`${what} is "${val}", not "${value}"`));
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
isSet: {
|
|
82
|
+
gwta: 'variable {what: string} is set( or .*)?',
|
|
83
|
+
action: async ({ what }, featureStep) => Promise.resolve(this.isSet(what, getOrCond(featureStep.in))),
|
|
84
|
+
},
|
|
85
|
+
isNotSet: {
|
|
86
|
+
gwta: 'variable {what: string} is not set?',
|
|
87
|
+
action: async ({ what }) => this.checkIsSet(what) ? actionNotOK(`${what} is set`) : Promise.resolve(OK),
|
|
88
|
+
},
|
|
89
|
+
background: {
|
|
90
|
+
match: /^Background: ?(?<background>.+)?$/,
|
|
91
|
+
action: async ({ background }) => {
|
|
92
|
+
this.getWorld().shared.set('background', background);
|
|
93
|
+
return Promise.resolve(OK);
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
display: {
|
|
97
|
+
gwta: 'display {what}',
|
|
98
|
+
action: async ({ what }) => {
|
|
99
|
+
this.getWorld().logger.info(`is ${JSON.stringify(what)}`);
|
|
100
|
+
return Promise.resolve(OK);
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
export default VariablesStepper;
|
|
106
|
+
export const didNotOverwrite = (what, present, value) => ({
|
|
107
|
+
overwrite: { summary: `did not overwrite ${what} value of "${present}" with "${value}"` },
|
|
108
|
+
});
|
|
109
|
+
export const setShared = ({ what, value }, featureStep, world, emptyOnly = false) => {
|
|
110
|
+
const { shared } = world;
|
|
111
|
+
if (!emptyOnly || shared.get(what) === undefined) {
|
|
112
|
+
shared.set(what, value);
|
|
113
|
+
return OK;
|
|
114
|
+
}
|
|
115
|
+
return OK;
|
|
116
|
+
};
|
|
117
|
+
//# sourceMappingURL=variables-stepper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variables-stepper.js","sourceRoot":"","sources":["../../src/steps/variables-stepper.ts"],"names":[],"mappings":"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"}
|
package/build/steps/vars.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ declare class Vars extends AStepper {
|
|
|
5
5
|
set: (named: TNamed, featureStep: TFeatureStep) => Promise<import("../lib/defs.js").TOKActionResult>;
|
|
6
6
|
checkIsSet(what: string): boolean;
|
|
7
7
|
private getVarValue;
|
|
8
|
-
isSet(what: string, orCond: string): import("../lib/defs.js").
|
|
8
|
+
isSet(what: string, orCond: string): import("../lib/defs.js").TOKActionResult | import("../lib/defs.js").TNotOKActionResult;
|
|
9
9
|
steps: {
|
|
10
10
|
combine: {
|
|
11
11
|
gwta: string;
|
|
@@ -25,15 +25,15 @@ declare class Vars extends AStepper {
|
|
|
25
25
|
};
|
|
26
26
|
is: {
|
|
27
27
|
gwta: string;
|
|
28
|
-
action: ({ what, value }: TNamed) => Promise<import("../lib/defs.js").
|
|
28
|
+
action: ({ what, value }: TNamed) => Promise<import("../lib/defs.js").TOKActionResult | import("../lib/defs.js").TNotOKActionResult>;
|
|
29
29
|
};
|
|
30
30
|
isSet: {
|
|
31
31
|
gwta: string;
|
|
32
|
-
action: ({ what }: TNamed, featureStep: TFeatureStep) => Promise<import("../lib/defs.js").
|
|
32
|
+
action: ({ what }: TNamed, featureStep: TFeatureStep) => Promise<import("../lib/defs.js").TOKActionResult | import("../lib/defs.js").TNotOKActionResult>;
|
|
33
33
|
};
|
|
34
34
|
isNotSet: {
|
|
35
35
|
gwta: string;
|
|
36
|
-
action: ({ what }: TNamed) => Promise<import("../lib/defs.js").
|
|
36
|
+
action: ({ what }: TNamed) => Promise<import("../lib/defs.js").TOKActionResult | import("../lib/defs.js").TNotOKActionResult>;
|
|
37
37
|
};
|
|
38
38
|
background: {
|
|
39
39
|
match: RegExp;
|