@haibun/core 1.24.0 → 1.24.1
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/lib/contexts.d.ts +1 -0
- package/build/lib/contexts.js +6 -0
- package/build/lib/contexts.js.map +1 -1
- package/build/lib/defs.d.ts +4 -1
- package/build/lib/defs.js.map +1 -1
- package/build/lib/domain.d.ts +3 -2
- package/build/lib/domain.js +3 -2
- package/build/lib/domain.js.map +1 -1
- package/build/lib/namedVars.test.js +2 -2
- package/build/lib/namedVars.test.js.map +1 -1
- package/build/lib/run.js +5 -4
- package/build/lib/run.js.map +1 -1
- package/build/lib/run.test.js +25 -35
- package/build/lib/run.test.js.map +1 -1
- package/build/lib/test/TestSteps.d.ts +1 -1
- package/build/lib/test/TestSteps.js +4 -4
- package/build/lib/test/TestSteps.js.map +1 -1
- package/build/lib/test/TestStepsWithOptions.js +1 -1
- package/build/lib/test/TestStepsWithOptions.js.map +1 -1
- package/build/lib/test/lib.js +3 -3
- package/build/lib/test/lib.js.map +1 -1
- package/build/lib/util/index.d.ts +1 -0
- package/build/lib/util/index.js +8 -4
- package/build/lib/util/index.js.map +1 -1
- package/build/lib/util/util.test.js +48 -2
- package/build/lib/util/util.test.js.map +1 -1
- package/build/phases/Builder.d.ts +10 -3
- package/build/phases/Builder.js +54 -28
- package/build/phases/Builder.js.map +1 -1
- package/build/phases/Executor.d.ts +1 -1
- package/build/phases/Executor.js +9 -9
- package/build/phases/Executor.js.map +1 -1
- package/build/phases/Resolver.d.ts +9 -4
- package/build/phases/Resolver.js +69 -32
- package/build/phases/Resolver.js.map +1 -1
- package/build/phases/Resolver.test.js +14 -2
- package/build/phases/Resolver.test.js.map +1 -1
- package/build/steps/haibun.d.ts +18 -5
- package/build/steps/haibun.js +40 -2
- package/build/steps/haibun.js.map +1 -1
- package/build/steps/haibun.test.js +72 -2
- package/build/steps/haibun.test.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.test.js","sourceRoot":"","sources":["../../../src/lib/util/util.test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,oCAAoC,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACvI,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,oBAAoB,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAe,EAAE,EAAE,MAAM,YAAY,CAAC;AAEvD,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,QAAQ,GAAG;YACf,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"util.test.js","sourceRoot":"","sources":["../../../src/lib/util/util.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import { WorkspaceContext } from '../lib/contexts.js';
|
|
2
|
-
import { AStepper, TResolvedFeature, TWorld } from '../lib/defs.js';
|
|
2
|
+
import { AStepper, TFinalize, TResolvedFeature, TWorld } from '../lib/defs.js';
|
|
3
|
+
import { Resolver } from './Resolver.js';
|
|
4
|
+
export declare const BUILT = "_built";
|
|
5
|
+
export declare const EVENT_AFTER = "_after";
|
|
3
6
|
export default class Builder {
|
|
4
|
-
world:
|
|
7
|
+
world: TWorld;
|
|
5
8
|
workspace: WorkspaceContext;
|
|
6
9
|
steppers: AStepper[];
|
|
10
|
+
finalizers: {
|
|
11
|
+
[path: string]: TFinalize[];
|
|
12
|
+
};
|
|
7
13
|
constructor(steppers: AStepper[], world: TWorld, workspace?: WorkspaceContext);
|
|
8
|
-
|
|
14
|
+
buildStep(feature: TResolvedFeature, resolver: Resolver): Promise<void>;
|
|
15
|
+
finalize(): Promise<void>;
|
|
9
16
|
}
|
package/build/phases/Builder.js
CHANGED
|
@@ -1,45 +1,71 @@
|
|
|
1
1
|
import { WorkspaceContext } from '../lib/contexts.js';
|
|
2
|
-
import {
|
|
3
|
-
import { applyResShouldContinue } from '../lib/util/index.js';
|
|
4
|
-
|
|
2
|
+
import { getNamedToVars } from '../lib/namedVars.js';
|
|
3
|
+
import { applyResShouldContinue, findStepper } from '../lib/util/index.js';
|
|
4
|
+
export const BUILT = '_built';
|
|
5
|
+
export const EVENT_AFTER = '_after';
|
|
5
6
|
export default class Builder {
|
|
6
7
|
world;
|
|
7
8
|
workspace;
|
|
8
9
|
steppers;
|
|
10
|
+
finalizers = {};
|
|
9
11
|
constructor(steppers, world, workspace = new WorkspaceContext(`builder`)) {
|
|
10
12
|
this.steppers = steppers;
|
|
11
13
|
this.world = world;
|
|
12
14
|
this.workspace = workspace;
|
|
13
15
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
16
|
+
/*
|
|
17
|
+
async build(features: TResolvedFeature[]) {
|
|
18
|
+
this.world.shared.values._scored = [];
|
|
19
|
+
for (const feature of features) {
|
|
20
|
+
await this.buildSteps(feature);
|
|
21
|
+
}
|
|
22
|
+
for (const key of Object.keys(this.finalizers)) {
|
|
23
|
+
for (const finalize of this.finalizers[key]) {
|
|
24
|
+
finalize(this.workspace.get(key));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return OK;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
public async buildSteps(feature: TResolvedFeature) {
|
|
32
|
+
for (const vstep of feature.vsteps) {
|
|
33
|
+
await this.buildStep(vstep, feature);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
*/
|
|
37
|
+
async buildStep(feature, resolver) {
|
|
38
|
+
const vstep = feature.vsteps[0];
|
|
39
|
+
for (const action of vstep.actions) {
|
|
40
|
+
if (!action.step.build) {
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
if (!this.workspace.get(feature.path)) {
|
|
44
|
+
this.workspace.createPath(feature.path);
|
|
45
|
+
this.finalizers[feature.path] = [];
|
|
46
|
+
}
|
|
47
|
+
const found = vstep.actions[0];
|
|
48
|
+
const namedWithVars = getNamedToVars(found, this.world, vstep);
|
|
49
|
+
const stepper = findStepper(this.steppers, found.stepperName);
|
|
50
|
+
const res = await stepper.steps[found.actionName].build(namedWithVars, vstep, this.workspace, resolver, this.steppers);
|
|
51
|
+
const shouldContinue = applyResShouldContinue(this.world, res, action);
|
|
52
|
+
if (!shouldContinue || !res.ok) {
|
|
53
|
+
throw Error(`${action.actionName}: ${res.message}`);
|
|
54
|
+
}
|
|
55
|
+
if (res.finalize) {
|
|
56
|
+
this.finalizers[feature.path].push(res.finalize);
|
|
57
|
+
}
|
|
58
|
+
if (res.workspace) {
|
|
59
|
+
this.world.shared.values[BUILT] = { ...this.world.shared.values[BUILT], ...this.workspace };
|
|
35
60
|
}
|
|
36
61
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
62
|
+
}
|
|
63
|
+
async finalize() {
|
|
64
|
+
for (const key of Object.keys(this.finalizers)) {
|
|
65
|
+
for (const finalize of this.finalizers[key]) {
|
|
66
|
+
await finalize(this.workspace.get(key));
|
|
40
67
|
}
|
|
41
68
|
}
|
|
42
|
-
return OK;
|
|
43
69
|
}
|
|
44
70
|
}
|
|
45
71
|
//# sourceMappingURL=Builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Builder.js","sourceRoot":"","sources":["../../src/phases/Builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"Builder.js","sourceRoot":"","sources":["../../src/phases/Builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAG3E,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC;AAC9B,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC;AAEpC,MAAM,CAAC,OAAO,OAAO,OAAO;IAC1B,KAAK,CAAS;IACd,SAAS,CAAmB;IAC5B,QAAQ,CAAa;IACrB,UAAU,GAAoC,EAAE,CAAC;IACjD,YAAY,QAAoB,EAAE,KAAa,EAAE,YAA8B,IAAI,gBAAgB,CAAC,SAAS,CAAC;QAC5G,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IACD;;;;;;;;;;;;;;;;;;;;MAoBE;IAEK,KAAK,CAAC,SAAS,CAAC,OAAyB,EAAE,QAAkB;QAClE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAChC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;gBACtB,SAAS;aACV;YACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACrC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACxC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;aACpC;YACD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAE/B,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC/D,MAAM,OAAO,GAAG,WAAW,CAAW,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YAExE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvH,MAAM,cAAc,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAEvE,IAAI,CAAC,cAAc,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;gBAC9B,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,UAAU,KAA8B,GAAI,CAAC,OAAO,EAAE,CAAC,CAAC;aAC/E;YAED,IAAI,GAAG,CAAC,QAAQ,EAAE;gBAChB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAsC,GAAI,CAAC,QAAQ,CAAC,CAAC;aACxF;YACD,IAAI,GAAG,CAAC,SAAS,EAAE;gBACjB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;aAC7F;SACF;IACH,CAAC;IACM,KAAK,CAAC,QAAQ;QACnB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YAC9C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBAC3C,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;aACzC;SACF;IACH,CAAC;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TVStep, TResolvedFeature, TResult, TStepResult, TFeatureResult, TActionResult, TWorld, AStepper, TEndFeatureCallback, CStepper, TFound } from '../lib/defs.js';
|
|
2
2
|
export declare class Executor {
|
|
3
|
-
static action(steppers: AStepper[], vstep: TVStep,
|
|
3
|
+
static action(steppers: AStepper[], vstep: TVStep, found: TFound, world: TWorld): Promise<TActionResult>;
|
|
4
4
|
static execute(csteppers: CStepper[], world: TWorld, features: TResolvedFeature[], endFeatureCallback?: TEndFeatureCallback): Promise<TResult>;
|
|
5
5
|
}
|
|
6
6
|
export declare class FeatureExecutor {
|
package/build/phases/Executor.js
CHANGED
|
@@ -2,11 +2,11 @@ import { getNamedToVars } from '../lib/namedVars.js';
|
|
|
2
2
|
import { actionNotOK, applyResShouldContinue, setWorldStepperOptions, sleep, createSteppers, findStepper } from '../lib/util/index.js';
|
|
3
3
|
export class Executor {
|
|
4
4
|
// find the stepper and action, call it and return its result
|
|
5
|
-
static async action(steppers, vstep,
|
|
5
|
+
static async action(steppers, vstep, found, world) {
|
|
6
6
|
try {
|
|
7
|
-
const namedWithVars = getNamedToVars(
|
|
8
|
-
const stepper = findStepper(steppers,
|
|
9
|
-
return await stepper.steps[
|
|
7
|
+
const namedWithVars = getNamedToVars(found, world, vstep);
|
|
8
|
+
const stepper = findStepper(steppers, found.stepperName);
|
|
9
|
+
return await stepper.steps[found.actionName].action(namedWithVars, vstep);
|
|
10
10
|
}
|
|
11
11
|
catch (caught) {
|
|
12
12
|
world.logger.error(caught.stack);
|
|
@@ -89,10 +89,10 @@ export class FeatureExecutor {
|
|
|
89
89
|
static async doFeatureStep(steppers, vstep, world) {
|
|
90
90
|
let ok = true;
|
|
91
91
|
const actionResults = [];
|
|
92
|
-
// FIXME feature should really be attached
|
|
93
|
-
for (const
|
|
92
|
+
// FIXME feature should really be attached to the vstep
|
|
93
|
+
for (const action of vstep.actions) {
|
|
94
94
|
const start = world.timer.since();
|
|
95
|
-
const res = await Executor.action(steppers, vstep,
|
|
95
|
+
const res = await Executor.action(steppers, vstep, action, world);
|
|
96
96
|
let traces;
|
|
97
97
|
if (world.shared.get('_trace')) {
|
|
98
98
|
traces = world.shared.get('_trace');
|
|
@@ -100,9 +100,9 @@ export class FeatureExecutor {
|
|
|
100
100
|
}
|
|
101
101
|
const end = world.timer.since();
|
|
102
102
|
// FIXME
|
|
103
|
-
const stepResult = { ...res, name:
|
|
103
|
+
const stepResult = { ...res, name: action.actionName, start, end, traces };
|
|
104
104
|
actionResults.push(stepResult);
|
|
105
|
-
const shouldContinue = applyResShouldContinue(world, res,
|
|
105
|
+
const shouldContinue = applyResShouldContinue(world, res, action);
|
|
106
106
|
ok = ok && shouldContinue;
|
|
107
107
|
if (!shouldContinue) {
|
|
108
108
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Executor.js","sourceRoot":"","sources":["../../src/phases/Executor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEvI,MAAM,OAAO,QAAQ;IACnB,6DAA6D;IAC7D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAoB,EAAE,KAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"Executor.js","sourceRoot":"","sources":["../../src/phases/Executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import { TFound, TResolvedFeature, TWorld, TExpandedFeature, AStepper } from '../lib/defs.js';
|
|
2
|
+
import Builder from './Builder.js';
|
|
2
3
|
export declare class Resolver {
|
|
3
4
|
steppers: AStepper[];
|
|
4
5
|
world: TWorld;
|
|
5
6
|
mode: string;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
types: string[];
|
|
8
|
+
builder: Builder;
|
|
9
|
+
constructor(steppers: AStepper[], world: TWorld, builder?: Builder);
|
|
10
|
+
resolveStepsFromFeatures(features: TExpandedFeature[]): Promise<TResolvedFeature[]>;
|
|
11
|
+
private applyActionEvents;
|
|
12
|
+
private findVSteps;
|
|
13
|
+
findActionableSteps(actionable: string): TFound[];
|
|
14
|
+
private choose;
|
|
9
15
|
static getPrelude: (path: string, line: string, featureLine: string) => string;
|
|
10
16
|
static getTypeValidationError: (prelude: string, fileType: string, name: string, typeValidationError: string) => string;
|
|
11
17
|
static getMoreThanOneInclusionError: (prelude: string, fileType: string, name: string) => string;
|
|
12
18
|
static getNoFileTypeInclusionError: (prelude: string, fileType: string, name: string) => string;
|
|
13
|
-
findSteps(actionable: string): TFound[];
|
|
14
19
|
}
|
package/build/phases/Resolver.js
CHANGED
|
@@ -1,21 +1,29 @@
|
|
|
1
1
|
import { OK, BASE_TYPES } from '../lib/defs.js';
|
|
2
2
|
import { namedInterpolation, getMatch } from '../lib/namedVars.js';
|
|
3
|
-
import {
|
|
3
|
+
import { asExpandedFeatures } from '../lib/test/lib.js';
|
|
4
|
+
import { getActionable, describeSteppers, isLowerCase, dePolite } from '../lib/util/index.js';
|
|
5
|
+
import { BUILT, EVENT_AFTER } from './Builder.js';
|
|
4
6
|
export class Resolver {
|
|
5
7
|
steppers;
|
|
6
8
|
world;
|
|
7
9
|
mode;
|
|
8
|
-
|
|
10
|
+
types;
|
|
11
|
+
builder;
|
|
12
|
+
constructor(steppers, world, builder) {
|
|
9
13
|
this.steppers = steppers;
|
|
10
|
-
this.mode = mode;
|
|
11
14
|
this.world = world;
|
|
15
|
+
this.builder = builder;
|
|
16
|
+
this.types = [...BASE_TYPES, ...this.world.domains.map((d) => d.name)];
|
|
12
17
|
}
|
|
13
|
-
async
|
|
18
|
+
async resolveStepsFromFeatures(features) {
|
|
14
19
|
const expanded = [];
|
|
15
20
|
for (const feature of features) {
|
|
16
21
|
try {
|
|
17
|
-
const
|
|
18
|
-
|
|
22
|
+
const vsteps = await this.findVSteps(feature);
|
|
23
|
+
const e = { ...feature, ...{ vsteps } };
|
|
24
|
+
await this.builder?.buildStep(e, this);
|
|
25
|
+
this.world.shared.values[BUILT] && await this.applyActionEvents(this.world.shared.values[BUILT].values, EVENT_AFTER, e);
|
|
26
|
+
expanded.push(e);
|
|
19
27
|
}
|
|
20
28
|
catch (e) {
|
|
21
29
|
this.world.logger.error(e);
|
|
@@ -24,10 +32,32 @@ export class Resolver {
|
|
|
24
32
|
}
|
|
25
33
|
return expanded;
|
|
26
34
|
}
|
|
27
|
-
async
|
|
28
|
-
const
|
|
35
|
+
async applyActionEvents(values, event, expanded) {
|
|
36
|
+
for (const [k, a] of Object.entries(values)) {
|
|
37
|
+
const { action: actionable, vstep: sourceVStep } = a;
|
|
38
|
+
const [e, domain] = k.split(':');
|
|
39
|
+
if (e !== event) {
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
const expandedFeature = asExpandedFeatures([{ path: sourceVStep.source.path, content: actionable }]);
|
|
43
|
+
const vstep = this.findVSteps(expandedFeature[0]);
|
|
44
|
+
const found = this.findActionableSteps(actionable)[0];
|
|
45
|
+
const { source } = sourceVStep;
|
|
46
|
+
const { actionName, stepperName, step } = found;
|
|
47
|
+
const { named, vars } = sourceVStep.actions[0];
|
|
48
|
+
const action = { actionName, stepperName, step, named, vars };
|
|
49
|
+
const nv = { ...vstep, source, in: actionable, seq: expanded.vsteps.length + 1, ...{ actions: [action] } };
|
|
50
|
+
expanded.vsteps.push(nv);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async findVSteps(feature) {
|
|
54
|
+
// const vsteps = await feature.expanded.map(async (featureLine, seq) => {
|
|
55
|
+
const vsteps = [];
|
|
56
|
+
let seq = 0;
|
|
57
|
+
for (const featureLine of feature.expanded) {
|
|
58
|
+
seq++;
|
|
29
59
|
const actionable = getActionable(featureLine.line);
|
|
30
|
-
const actions = this.
|
|
60
|
+
const actions = this.findActionableSteps(actionable);
|
|
31
61
|
/*
|
|
32
62
|
try {
|
|
33
63
|
// FIXME
|
|
@@ -39,46 +69,53 @@ export class Resolver {
|
|
|
39
69
|
if (actions.length > 1) {
|
|
40
70
|
throw Error(`more than one step found for "${featureLine.line}": ${JSON.stringify(actions.map((a) => a.actionName))}`);
|
|
41
71
|
}
|
|
42
|
-
else if (actions.length < 1
|
|
72
|
+
else if (actions.length < 1) {
|
|
43
73
|
throw Error(`no step found for ${featureLine.line} in ${feature.path} from ${describeSteppers(this.steppers)}`);
|
|
44
74
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
75
|
+
const wtw = { source: featureLine.feature, in: featureLine.line, seq, actions };
|
|
76
|
+
vsteps.push(wtw);
|
|
77
|
+
}
|
|
78
|
+
return vsteps;
|
|
48
79
|
}
|
|
49
|
-
|
|
50
|
-
static getTypeValidationError = (prelude, fileType, name, typeValidationError) => `${prelude} Type '${fileType}' doesn't validate for '${name}': ${typeValidationError}`;
|
|
51
|
-
static getMoreThanOneInclusionError = (prelude, fileType, name) => `${prelude} more than one '${fileType}' inclusion for '${name}'`;
|
|
52
|
-
static getNoFileTypeInclusionError = (prelude, fileType, name) => `${prelude} no '${fileType}' inclusion for '${name}'`;
|
|
53
|
-
findSteps(actionable) {
|
|
80
|
+
findActionableSteps(actionable) {
|
|
54
81
|
if (!actionable.length) {
|
|
55
82
|
return [comment];
|
|
56
83
|
}
|
|
57
84
|
const found = [];
|
|
58
|
-
const types = [...BASE_TYPES, ...this.world.domains.map((d) => d.name)];
|
|
59
85
|
for (const stepper of this.steppers) {
|
|
60
86
|
const stepperName = stepper.constructor.name;
|
|
61
87
|
const { steps } = stepper;
|
|
62
88
|
for (const actionName in steps) {
|
|
63
89
|
const step = steps[actionName];
|
|
64
|
-
const
|
|
65
|
-
if (
|
|
66
|
-
|
|
67
|
-
const f = str.charAt(0);
|
|
68
|
-
const s = isLowerCase(f) ? ['[', f, f.toUpperCase(), ']', str.substring(1)].join('') : str;
|
|
69
|
-
const r = new RegExp(`^(Given|When|Then|And)?( the )?( I('m)? (am )?)? ?${s}`);
|
|
70
|
-
addIfMatch(getMatch(actionable, r, actionName, stepperName, step, vars));
|
|
71
|
-
}
|
|
72
|
-
else if (step.match) {
|
|
73
|
-
addIfMatch(getMatch(actionable, step.match, actionName, stepperName, step));
|
|
74
|
-
}
|
|
75
|
-
else if (actionable.length > 0 && step.exact === actionable) {
|
|
76
|
-
found.push({ actionName, stepperName, step });
|
|
90
|
+
const stepFound = this.choose(step, actionable, actionName, stepperName);
|
|
91
|
+
if (stepFound) {
|
|
92
|
+
found.push(stepFound);
|
|
77
93
|
}
|
|
78
94
|
}
|
|
79
95
|
}
|
|
80
96
|
return found;
|
|
81
97
|
}
|
|
98
|
+
choose(step, actionable, actionName, stepperName) {
|
|
99
|
+
const curt = dePolite(actionable);
|
|
100
|
+
if (step.gwta) {
|
|
101
|
+
const { str, vars } = namedInterpolation(step.gwta, this.types);
|
|
102
|
+
const f = str.charAt(0);
|
|
103
|
+
const s = isLowerCase(f) ? ['[', f, f.toUpperCase(), ']', str.substring(1)].join('') : str;
|
|
104
|
+
const r = new RegExp(`^${s}`);
|
|
105
|
+
//const r = new RegExp(`^(Given|When|Then|And)?( the )?( I('m)? (am )?)? ?${s}`);
|
|
106
|
+
return getMatch(curt, r, actionName, stepperName, step, vars);
|
|
107
|
+
}
|
|
108
|
+
else if (step.match) {
|
|
109
|
+
return getMatch(actionable, step.match, actionName, stepperName, step);
|
|
110
|
+
}
|
|
111
|
+
else if (step.exact === curt) {
|
|
112
|
+
return { actionName, stepperName, step };
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
static getPrelude = (path, line, featureLine) => `In '${path}', step '${featureLine}' using '${line}':`;
|
|
116
|
+
static getTypeValidationError = (prelude, fileType, name, typeValidationError) => `${prelude} Type '${fileType}' doesn't validate for '${name}': ${typeValidationError}`;
|
|
117
|
+
static getMoreThanOneInclusionError = (prelude, fileType, name) => `${prelude} more than one '${fileType}' inclusion for '${name}'`;
|
|
118
|
+
static getNoFileTypeInclusionError = (prelude, fileType, name) => `${prelude} no '${fileType}' inclusion for '${name}'`;
|
|
82
119
|
}
|
|
83
120
|
const comment = {
|
|
84
121
|
stepperName: 'Haibun',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resolver.js","sourceRoot":"","sources":["../../src/phases/Resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,EAAE,EAAU,UAAU,
|
|
1
|
+
{"version":3,"file":"Resolver.js","sourceRoot":"","sources":["../../src/phases/Resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
import { AStepper, OK } from '../lib/defs.js';
|
|
2
2
|
import { asExpandedFeatures, getDefaultWorld } from '../lib/test/lib.js';
|
|
3
|
+
import TestSteps from '../lib/test/TestSteps.js';
|
|
3
4
|
import { createSteppers } from '../lib/util/index.js';
|
|
4
5
|
import { Resolver } from './Resolver.js';
|
|
6
|
+
describe('resolve steps', () => {
|
|
7
|
+
it('resolves steps', async () => {
|
|
8
|
+
const features = asExpandedFeatures([{ path: 'l1', content: 'Then it passes' }]);
|
|
9
|
+
const steppers = await createSteppers([TestSteps]);
|
|
10
|
+
const resolver = new Resolver(steppers, {
|
|
11
|
+
...getDefaultWorld(0).world,
|
|
12
|
+
});
|
|
13
|
+
const res = await resolver.resolveStepsFromFeatures(features);
|
|
14
|
+
expect(res.length).toBe(1);
|
|
15
|
+
});
|
|
16
|
+
});
|
|
5
17
|
describe('validate map steps', () => {
|
|
6
18
|
class TestStepper extends AStepper {
|
|
7
19
|
steps = {
|
|
@@ -25,10 +37,10 @@ describe('validate map steps', () => {
|
|
|
25
37
|
}
|
|
26
38
|
const getResolvedSteps = async (features) => {
|
|
27
39
|
const steppers = await createSteppers([TestStepper]);
|
|
28
|
-
const resolver = new Resolver(steppers,
|
|
40
|
+
const resolver = new Resolver(steppers, {
|
|
29
41
|
...getDefaultWorld(0).world,
|
|
30
42
|
});
|
|
31
|
-
return await resolver.
|
|
43
|
+
return await resolver.resolveStepsFromFeatures(features);
|
|
32
44
|
};
|
|
33
45
|
describe('exact', () => {
|
|
34
46
|
test('exact', async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resolver.test.js","sourceRoot":"","sources":["../../src/phases/Resolver.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAsC,MAAM,gBAAgB,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,MAAM,WAAY,SAAQ,QAAQ;QAChC,KAAK,GAAG;YACN,KAAK,EAAE;gBACL,KAAK,EAAE,QAAQ;gBACf,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;aACvB;YACD,KAAK,EAAE;gBACL,KAAK,EAAE,gBAAgB;gBACvB,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;aACvB;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;aACvB;YACD,gBAAgB,EAAE;gBAChB,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;aACvB;SACF,CAAC;KACH;IAED,MAAM,gBAAgB,GAAG,KAAK,EAAE,QAA4B,EAAE,EAAE;QAC9D,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,QAAQ,EAAE
|
|
1
|
+
{"version":3,"file":"Resolver.test.js","sourceRoot":"","sources":["../../src/phases/Resolver.test.ts"],"names":[],"mappings":"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"}
|
package/build/steps/haibun.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import { TNamed, AStepper } from '../lib/defs.js';
|
|
1
|
+
import { TNamed, AStepper, TWorld, TVStep } from '../lib/defs.js';
|
|
2
|
+
import { Resolver } from '../phases/Resolver.js';
|
|
2
3
|
declare const Haibun: {
|
|
3
4
|
new (): {
|
|
5
|
+
steppers: AStepper[];
|
|
6
|
+
setWorld(world: TWorld, steppers: AStepper[]): void;
|
|
4
7
|
steps: {
|
|
5
8
|
prose: {
|
|
6
9
|
gwta: string;
|
|
@@ -30,7 +33,16 @@ declare const Haibun: {
|
|
|
30
33
|
gwta: string;
|
|
31
34
|
action: ({ which }: TNamed) => Promise<import("../lib/defs.js").TOKActionResult>;
|
|
32
35
|
};
|
|
33
|
-
|
|
36
|
+
afterEvery: {
|
|
37
|
+
gwta: string;
|
|
38
|
+
action: ({ domainID, action }: TNamed) => Promise<import("../lib/defs.js").TOKActionResult>;
|
|
39
|
+
build: ({ domainID, action }: TNamed, vstep: TVStep, workspace: any, resolver: Resolver, steppers: AStepper[]) => Promise<import("../lib/defs.js").TNotOKActionResult | {
|
|
40
|
+
workspace: any;
|
|
41
|
+
ok: true;
|
|
42
|
+
topics?: import("../lib/defs.js").TActionResultTopics;
|
|
43
|
+
}>;
|
|
44
|
+
};
|
|
45
|
+
until: {
|
|
34
46
|
gwta: string;
|
|
35
47
|
action: ({ what, value }: TNamed) => Promise<import("../lib/defs.js").TOKActionResult>;
|
|
36
48
|
};
|
|
@@ -43,12 +55,13 @@ declare const Haibun: {
|
|
|
43
55
|
action: ({ comment }: TNamed) => Promise<import("../lib/defs.js").TOKActionResult>;
|
|
44
56
|
};
|
|
45
57
|
};
|
|
46
|
-
|
|
58
|
+
findDomainAction: (domainID: string, action: string, resolver: any, steppers: any) => AStepper;
|
|
59
|
+
findAction: (action: string, resolver: Resolver, steppers: any) => AStepper;
|
|
60
|
+
world?: TWorld;
|
|
47
61
|
close?(): void;
|
|
48
62
|
endFeature?(): void;
|
|
49
63
|
onFailure?(result: import("../lib/defs.js").TStepResult): void;
|
|
50
|
-
|
|
51
|
-
getWorld(): import("../lib/defs.js").TWorld;
|
|
64
|
+
getWorld(): TWorld;
|
|
52
65
|
};
|
|
53
66
|
};
|
|
54
67
|
export default Haibun;
|
package/build/steps/haibun.js
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { OK, AStepper } from '../lib/defs.js';
|
|
2
|
-
import { actionNotOK, sleep } from '../lib/util/index.js';
|
|
2
|
+
import { actionNotOK, findStepper, sleep } from '../lib/util/index.js';
|
|
3
|
+
import { getStepperAsDomain } from '../lib/domain.js';
|
|
4
|
+
import { EVENT_AFTER } from '../phases/Builder.js';
|
|
3
5
|
const Haibun = class Haibun extends AStepper {
|
|
6
|
+
steppers;
|
|
7
|
+
setWorld(world, steppers) {
|
|
8
|
+
this.steppers = steppers;
|
|
9
|
+
this.world = world;
|
|
10
|
+
}
|
|
4
11
|
steps = {
|
|
5
12
|
prose: {
|
|
6
13
|
gwta: '.*[.?!]$',
|
|
@@ -53,7 +60,21 @@ const Haibun = class Haibun extends AStepper {
|
|
|
53
60
|
return OK;
|
|
54
61
|
},
|
|
55
62
|
},
|
|
56
|
-
|
|
63
|
+
afterEvery: {
|
|
64
|
+
gwta: 'after every {domainID}, {action}',
|
|
65
|
+
action: async ({ domainID, action }) => {
|
|
66
|
+
return OK;
|
|
67
|
+
},
|
|
68
|
+
build: async ({ domainID, action }, vstep, workspace, resolver, steppers) => {
|
|
69
|
+
const found = await this.findDomainAction(domainID, action, resolver, steppers);
|
|
70
|
+
if (found) {
|
|
71
|
+
workspace.set(`${EVENT_AFTER}:${domainID}`, { action, vstep });
|
|
72
|
+
return { ...OK, workspace };
|
|
73
|
+
}
|
|
74
|
+
return actionNotOK(`forEvery: action ${action} not found for ${domainID}`);
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
until: {
|
|
57
78
|
gwta: 'until {what} is {value}',
|
|
58
79
|
action: async ({ what, value }) => {
|
|
59
80
|
while (this.getWorld().shared.values[what] !== value) {
|
|
@@ -78,6 +99,23 @@ const Haibun = class Haibun extends AStepper {
|
|
|
78
99
|
},
|
|
79
100
|
},
|
|
80
101
|
};
|
|
102
|
+
findDomainAction = (domainID, action, resolver, steppers) => {
|
|
103
|
+
const stepper = this.findAction(action, resolver, steppers);
|
|
104
|
+
const withDomain = getStepperAsDomain(stepper);
|
|
105
|
+
if (withDomain) {
|
|
106
|
+
if (withDomain.domains.find(d => d.name === domainID)) {
|
|
107
|
+
return stepper;
|
|
108
|
+
}
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
findAction = (action, resolver, steppers) => {
|
|
113
|
+
const found = resolver.findActionableSteps(action);
|
|
114
|
+
if (found?.length === 1) {
|
|
115
|
+
return findStepper(steppers, found[0].stepperName);
|
|
116
|
+
}
|
|
117
|
+
return undefined;
|
|
118
|
+
};
|
|
81
119
|
};
|
|
82
120
|
export default Haibun;
|
|
83
121
|
//# sourceMappingURL=haibun.js.map
|