@lynxwall/cucumber-tsflow 5.0.6 → 5.0.7
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 +8 -8
- package/lib/behave.js +5 -15
- package/lib/cli/argv-parser.js +97 -107
- package/lib/cli/index.js +81 -91
- package/lib/cli/load-configuration.js +78 -89
- package/lib/cli/run.js +37 -47
- package/lib/cucumber/binding-decorator.js +163 -173
- package/lib/cucumber/binding-registry.js +198 -208
- package/lib/cucumber/hook-decorators.js +99 -109
- package/lib/cucumber/managed-scenario-context.js +71 -81
- package/lib/cucumber/message-collector.js +115 -125
- package/lib/cucumber/step-definition-decorators.js +86 -96
- package/lib/cucumber/utils.js +73 -83
- package/lib/esnode.js +3 -4
- package/lib/esvue.js +35 -46
- package/lib/formatters/behave-json-formatter.js +47 -58
- package/lib/formatters/tsflow-snippet-syntax.js +89 -99
- package/lib/gherkin/configuration.js +26 -36
- package/lib/gherkin/gherkin-feature.js +285 -295
- package/lib/gherkin/gherkin-manager.js +93 -103
- package/lib/gherkin/models.js +2 -12
- package/lib/index.js +9 -19
- package/lib/snippet.js +5 -15
- package/lib/transpilers/esbuild-transpiler.js +19 -29
- package/lib/transpilers/esbuild.js +51 -62
- package/lib/transpilers/vue-sfc/compiler.js +20 -30
- package/lib/transpilers/vue-sfc/index.d.ts +0 -2
- package/lib/transpilers/vue-sfc/index.js +44 -61
- package/lib/transpilers/vue-sfc/main.js +223 -235
- package/lib/transpilers/vue-sfc/script.js +40 -51
- package/lib/transpilers/vue-sfc/template.js +94 -105
- package/lib/transpilers/vue-sfc/types.js +2 -12
- package/lib/transpilers/vue-sfc/utils/descriptorCache.d.ts +1 -1
- package/lib/transpilers/vue-sfc/utils/descriptorCache.js +52 -62
- package/lib/transpilers/vue-sfc/utils/error.js +22 -32
- package/lib/transpilers/vue-sfc/utils/query.js +32 -42
- package/lib/tsnode.js +3 -4
- package/lib/tsvue.js +34 -45
- package/lib/types/scenario-context.js +4 -14
- package/lib/types/scenario-info.js +18 -28
- package/lib/types/step-binding-flags.js +57 -67
- package/lib/types/step-binding.js +4 -14
- package/lib/types/types.js +2 -12
- package/lib/utils/helpers.js +17 -27
- package/lib/utils/logger.js +7 -17
- package/lib/utils/our-callsite.d.ts +1 -0
- package/lib/utils/our-callsite.js +43 -50
- package/lib/version.d.ts +1 -1
- package/lib/version.js +6 -16
- package/package.json +11 -13
|
@@ -1,113 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
2
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
3
4
|
};
|
|
4
|
-
(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
return (target, propertyKey, descriptor) => {
|
|
95
|
-
const stepBinding = {
|
|
96
|
-
stepPattern: '',
|
|
97
|
-
bindingType: flag,
|
|
98
|
-
targetPrototype: target,
|
|
99
|
-
targetPropertyKey: propertyKey,
|
|
100
|
-
argsLength: target[propertyKey].length,
|
|
101
|
-
timeout: timeout,
|
|
102
|
-
callsite: callSite,
|
|
103
|
-
cucumberKey: (0, short_uuid_1.default)().new()
|
|
104
|
-
};
|
|
105
|
-
if (tag) {
|
|
106
|
-
stepBinding.tags = checkTag(tag);
|
|
107
|
-
}
|
|
108
|
-
binding_registry_1.BindingRegistry.instance.registerStepBinding(stepBinding);
|
|
109
|
-
return descriptor;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.afterStep = exports.after = exports.afterAll = exports.beforeStep = exports.before = exports.beforeAll = void 0;
|
|
7
|
+
const binding_registry_1 = require("./binding-registry");
|
|
8
|
+
const our_callsite_1 = require("../utils/our-callsite");
|
|
9
|
+
const step_binding_1 = require("../types/step-binding");
|
|
10
|
+
const short_uuid_1 = __importDefault(require("short-uuid"));
|
|
11
|
+
/**
|
|
12
|
+
* A method decorator that marks the associated function as a 'Before All Scenario' step. The function is
|
|
13
|
+
* executed before all scenarios are executed.
|
|
14
|
+
*
|
|
15
|
+
* @param timeout Optional timeout in milliseconds
|
|
16
|
+
*/
|
|
17
|
+
function beforeAll(timeout) {
|
|
18
|
+
const callSite = our_callsite_1.Callsite.capture();
|
|
19
|
+
return createDecoratorFactory(step_binding_1.StepBindingFlags.beforeAll, callSite, undefined, timeout);
|
|
20
|
+
}
|
|
21
|
+
exports.beforeAll = beforeAll;
|
|
22
|
+
/**
|
|
23
|
+
* A method decorator that marks the associated function as a 'Before Scenario' step. The function is
|
|
24
|
+
* executed before each scenario.
|
|
25
|
+
*
|
|
26
|
+
* @param tags Optional tag or tags associated with a scenario.
|
|
27
|
+
* @param timeout Optional timeout in milliseconds
|
|
28
|
+
*/
|
|
29
|
+
function before(tags, timeout) {
|
|
30
|
+
const callSite = our_callsite_1.Callsite.capture();
|
|
31
|
+
return createDecoratorFactory(step_binding_1.StepBindingFlags.before, callSite, tags, timeout);
|
|
32
|
+
}
|
|
33
|
+
exports.before = before;
|
|
34
|
+
/**
|
|
35
|
+
* A method decorator that marks the associated function as a 'Before Step' step. The function is
|
|
36
|
+
* executed before each step.
|
|
37
|
+
*
|
|
38
|
+
* @param tags Optional tag or tags associated with a scenario.
|
|
39
|
+
* @param timeout Optional timeout in milliseconds
|
|
40
|
+
*/
|
|
41
|
+
function beforeStep(tags, timeout) {
|
|
42
|
+
const callSite = our_callsite_1.Callsite.capture();
|
|
43
|
+
return createDecoratorFactory(step_binding_1.StepBindingFlags.beforeStep, callSite, tags, timeout);
|
|
44
|
+
}
|
|
45
|
+
exports.beforeStep = beforeStep;
|
|
46
|
+
/**
|
|
47
|
+
* A method decorator that marks the associated function as an 'After All Scenario' step. The function is
|
|
48
|
+
* executed after all scenarios are executed.
|
|
49
|
+
*
|
|
50
|
+
* @param timeout Optional timeout in milliseconds
|
|
51
|
+
*/
|
|
52
|
+
function afterAll(timeout) {
|
|
53
|
+
const callSite = our_callsite_1.Callsite.capture();
|
|
54
|
+
return createDecoratorFactory(step_binding_1.StepBindingFlags.afterAll, callSite, undefined, timeout);
|
|
55
|
+
}
|
|
56
|
+
exports.afterAll = afterAll;
|
|
57
|
+
/**
|
|
58
|
+
* A method decorator that marks the associated function as an 'After Scenario' step. The function is
|
|
59
|
+
* executed after each scenario.
|
|
60
|
+
*
|
|
61
|
+
* @param tags Optional tag or tags associated with a scenario.
|
|
62
|
+
* @param timeout Optional timeout in milliseconds
|
|
63
|
+
*/
|
|
64
|
+
function after(tags, timeout) {
|
|
65
|
+
const callSite = our_callsite_1.Callsite.capture();
|
|
66
|
+
return createDecoratorFactory(step_binding_1.StepBindingFlags.after, callSite, tags, timeout);
|
|
67
|
+
}
|
|
68
|
+
exports.after = after;
|
|
69
|
+
/**
|
|
70
|
+
* A method decorator that marks the associated function as a 'After Step' step. The function is
|
|
71
|
+
* executed after each step.
|
|
72
|
+
*
|
|
73
|
+
* @param tags Optional tag or tags associated with a scenario.
|
|
74
|
+
* @param timeout Optional timeout in milliseconds
|
|
75
|
+
*/
|
|
76
|
+
function afterStep(tags, timeout) {
|
|
77
|
+
const callSite = our_callsite_1.Callsite.capture();
|
|
78
|
+
return createDecoratorFactory(step_binding_1.StepBindingFlags.afterStep, callSite, tags, timeout);
|
|
79
|
+
}
|
|
80
|
+
exports.afterStep = afterStep;
|
|
81
|
+
function checkTag(tag) {
|
|
82
|
+
return tag;
|
|
83
|
+
}
|
|
84
|
+
function createDecoratorFactory(flag, callSite, tag, timeout) {
|
|
85
|
+
return (target, propertyKey, descriptor) => {
|
|
86
|
+
const stepBinding = {
|
|
87
|
+
stepPattern: '',
|
|
88
|
+
bindingType: flag,
|
|
89
|
+
targetPrototype: target,
|
|
90
|
+
targetPropertyKey: propertyKey,
|
|
91
|
+
argsLength: target[propertyKey].length,
|
|
92
|
+
timeout: timeout,
|
|
93
|
+
callsite: callSite,
|
|
94
|
+
cucumberKey: (0, short_uuid_1.default)().new()
|
|
110
95
|
};
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
96
|
+
if (tag) {
|
|
97
|
+
stepBinding.tags = checkTag(tag);
|
|
98
|
+
}
|
|
99
|
+
binding_registry_1.BindingRegistry.instance.registerStepBinding(stepBinding);
|
|
100
|
+
return descriptor;
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9vay1kZWNvcmF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2N1Y3VtYmVyL2hvb2stZGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx5REFBcUQ7QUFDckQsd0RBQWlEO0FBQ2pELHdEQUFzRTtBQUN0RSw0REFBbUM7QUFFbkM7Ozs7O0dBS0c7QUFDSCxTQUFnQixTQUFTLENBQUMsT0FBZ0I7SUFDekMsTUFBTSxRQUFRLEdBQUcsdUJBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNwQyxPQUFPLHNCQUFzQixDQUFDLCtCQUFnQixDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3pGLENBQUM7QUFIRCw4QkFHQztBQUNEOzs7Ozs7R0FNRztBQUNILFNBQWdCLE1BQU0sQ0FBQyxJQUFhLEVBQUUsT0FBZ0I7SUFDckQsTUFBTSxRQUFRLEdBQUcsdUJBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNwQyxPQUFPLHNCQUFzQixDQUFDLCtCQUFnQixDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2pGLENBQUM7QUFIRCx3QkFHQztBQUNEOzs7Ozs7R0FNRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxJQUFhLEVBQUUsT0FBZ0I7SUFDekQsTUFBTSxRQUFRLEdBQUcsdUJBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNwQyxPQUFPLHNCQUFzQixDQUFDLCtCQUFnQixDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3JGLENBQUM7QUFIRCxnQ0FHQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsUUFBUSxDQUFDLE9BQWdCO0lBQ3hDLE1BQU0sUUFBUSxHQUFHLHVCQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEMsT0FBTyxzQkFBc0IsQ0FBQywrQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4RixDQUFDO0FBSEQsNEJBR0M7QUFDRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixLQUFLLENBQUMsSUFBYSxFQUFFLE9BQWdCO0lBQ3BELE1BQU0sUUFBUSxHQUFHLHVCQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEMsT0FBTyxzQkFBc0IsQ0FBQywrQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoRixDQUFDO0FBSEQsc0JBR0M7QUFDRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixTQUFTLENBQUMsSUFBYSxFQUFFLE9BQWdCO0lBQ3hELE1BQU0sUUFBUSxHQUFHLHVCQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEMsT0FBTyxzQkFBc0IsQ0FBQywrQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNwRixDQUFDO0FBSEQsOEJBR0M7QUFFRCxTQUFTLFFBQVEsQ0FBQyxHQUFXO0lBQzVCLE9BQU8sR0FBRyxDQUFDO0FBQ1osQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUMsSUFBc0IsRUFBRSxRQUFrQixFQUFFLEdBQVksRUFBRSxPQUFnQjtJQUN6RyxPQUFPLENBQUksTUFBVyxFQUFFLFdBQTRCLEVBQUUsVUFBc0MsRUFBRSxFQUFFO1FBQy9GLE1BQU0sV0FBVyxHQUFnQjtZQUNoQyxXQUFXLEVBQUUsRUFBRTtZQUNmLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGVBQWUsRUFBRSxNQUFNO1lBQ3ZCLGlCQUFpQixFQUFFLFdBQVc7WUFDOUIsVUFBVSxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNO1lBQ3RDLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLFdBQVcsRUFBRSxJQUFBLG9CQUFTLEdBQUUsQ0FBQyxHQUFHLEVBQUU7U0FDOUIsQ0FBQztRQUVGLElBQUksR0FBRyxFQUFFO1lBQ1IsV0FBVyxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDakM7UUFFRCxrQ0FBZSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUxRCxPQUFPLFVBQVUsQ0FBQztJQUNuQixDQUFDLENBQUM7QUFDSCxDQUFDIn0=
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
2
3
|
if (k2 === undefined) k2 = k;
|
|
3
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -15,91 +16,80 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
16
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
16
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
17
18
|
};
|
|
18
|
-
(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.ManagedScenarioContext = void 0;
|
|
21
|
+
const underscore_1 = __importDefault(require("underscore"));
|
|
22
|
+
const scenario_context_1 = require("../types/scenario-context");
|
|
23
|
+
/**
|
|
24
|
+
* Represents a [[ScenarioContext]] implementation that manages a collection of context objects that
|
|
25
|
+
* are created and used by binding classes during a running Cucumber scenario.
|
|
26
|
+
*/
|
|
27
|
+
class ManagedScenarioContext {
|
|
28
|
+
constructor(scenarioTitle, tags) {
|
|
29
|
+
this._activeObjects = new Map();
|
|
30
|
+
this._scenarioInfo = new scenario_context_1.ScenarioInfo(scenarioTitle, tags);
|
|
22
31
|
}
|
|
23
|
-
else if (typeof define === "function" && define.amd) {
|
|
24
|
-
define(["require", "exports", "underscore", "../types/scenario-context", "../types/scenario-context"], factory);
|
|
25
|
-
}
|
|
26
|
-
})(function (require, exports) {
|
|
27
|
-
"use strict";
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.ManagedScenarioContext = void 0;
|
|
30
|
-
const underscore_1 = __importDefault(require("underscore"));
|
|
31
|
-
const scenario_context_1 = require("../types/scenario-context");
|
|
32
32
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
33
|
+
* Gets information about the scenario.
|
|
34
|
+
*
|
|
35
35
|
*/
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
getOrActivateBindingClass(targetPrototype, contextTypes) {
|
|
49
|
-
return this.getOrActivateObject(targetPrototype, () => {
|
|
50
|
-
return this.activateBindingClass(targetPrototype, contextTypes);
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
dispose() {
|
|
54
|
-
this._activeObjects.forEach((value) => {
|
|
55
|
-
if (typeof value.dispose === 'function') {
|
|
56
|
-
value.dispose();
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
activateBindingClass(targetPrototype, contextTypes) {
|
|
61
|
-
const invokeBindingConstructor = (args) => {
|
|
62
|
-
switch (contextTypes.length) {
|
|
63
|
-
case 0:
|
|
64
|
-
return new targetPrototype.constructor();
|
|
65
|
-
case 1:
|
|
66
|
-
return new targetPrototype.constructor(args[0]);
|
|
67
|
-
case 2:
|
|
68
|
-
return new targetPrototype.constructor(args[0], args[1]);
|
|
69
|
-
case 3:
|
|
70
|
-
return new targetPrototype.constructor(args[0], args[1], args[2]);
|
|
71
|
-
case 4:
|
|
72
|
-
return new targetPrototype.constructor(args[0], args[1], args[2], args[3]);
|
|
73
|
-
case 5:
|
|
74
|
-
return new targetPrototype.constructor(args[0], args[1], args[2], args[3], args[4]);
|
|
75
|
-
case 6:
|
|
76
|
-
return new targetPrototype.constructor(args[0], args[1], args[2], args[3], args[4], args[5]);
|
|
77
|
-
case 7:
|
|
78
|
-
return new targetPrototype.constructor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
|
|
79
|
-
case 8:
|
|
80
|
-
return new targetPrototype.constructor(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]);
|
|
81
|
-
case 9:
|
|
82
|
-
return new targetPrototype.constructor(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8]);
|
|
83
|
-
case 10:
|
|
84
|
-
return new targetPrototype.constructor(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]);
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
const contextObjects = underscore_1.default.map(contextTypes, contextType => this.getOrActivateObject(contextType.prototype, () => {
|
|
88
|
-
return new contextType();
|
|
89
|
-
}));
|
|
90
|
-
return invokeBindingConstructor(contextObjects);
|
|
91
|
-
}
|
|
92
|
-
getOrActivateObject(targetPrototype, activatorFunc) {
|
|
93
|
-
let activeObject = this._activeObjects.get(targetPrototype);
|
|
94
|
-
if (activeObject) {
|
|
95
|
-
return activeObject;
|
|
36
|
+
get scenarioInfo() {
|
|
37
|
+
return this._scenarioInfo;
|
|
38
|
+
}
|
|
39
|
+
getOrActivateBindingClass(targetPrototype, contextTypes) {
|
|
40
|
+
return this.getOrActivateObject(targetPrototype, () => {
|
|
41
|
+
return this.activateBindingClass(targetPrototype, contextTypes);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
dispose() {
|
|
45
|
+
this._activeObjects.forEach((value) => {
|
|
46
|
+
if (typeof value.dispose === 'function') {
|
|
47
|
+
value.dispose();
|
|
96
48
|
}
|
|
97
|
-
|
|
98
|
-
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
activateBindingClass(targetPrototype, contextTypes) {
|
|
52
|
+
const invokeBindingConstructor = (args) => {
|
|
53
|
+
switch (contextTypes.length) {
|
|
54
|
+
case 0:
|
|
55
|
+
return new targetPrototype.constructor();
|
|
56
|
+
case 1:
|
|
57
|
+
return new targetPrototype.constructor(args[0]);
|
|
58
|
+
case 2:
|
|
59
|
+
return new targetPrototype.constructor(args[0], args[1]);
|
|
60
|
+
case 3:
|
|
61
|
+
return new targetPrototype.constructor(args[0], args[1], args[2]);
|
|
62
|
+
case 4:
|
|
63
|
+
return new targetPrototype.constructor(args[0], args[1], args[2], args[3]);
|
|
64
|
+
case 5:
|
|
65
|
+
return new targetPrototype.constructor(args[0], args[1], args[2], args[3], args[4]);
|
|
66
|
+
case 6:
|
|
67
|
+
return new targetPrototype.constructor(args[0], args[1], args[2], args[3], args[4], args[5]);
|
|
68
|
+
case 7:
|
|
69
|
+
return new targetPrototype.constructor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
|
|
70
|
+
case 8:
|
|
71
|
+
return new targetPrototype.constructor(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]);
|
|
72
|
+
case 9:
|
|
73
|
+
return new targetPrototype.constructor(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8]);
|
|
74
|
+
case 10:
|
|
75
|
+
return new targetPrototype.constructor(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
const contextObjects = underscore_1.default.map(contextTypes, contextType => this.getOrActivateObject(contextType.prototype, () => {
|
|
79
|
+
return new contextType();
|
|
80
|
+
}));
|
|
81
|
+
return invokeBindingConstructor(contextObjects);
|
|
82
|
+
}
|
|
83
|
+
getOrActivateObject(targetPrototype, activatorFunc) {
|
|
84
|
+
let activeObject = this._activeObjects.get(targetPrototype);
|
|
85
|
+
if (activeObject) {
|
|
99
86
|
return activeObject;
|
|
100
87
|
}
|
|
88
|
+
activeObject = activatorFunc();
|
|
89
|
+
this._activeObjects.set(targetPrototype, activeObject);
|
|
90
|
+
return activeObject;
|
|
101
91
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
}
|
|
93
|
+
exports.ManagedScenarioContext = ManagedScenarioContext;
|
|
94
|
+
__exportStar(require("../types/scenario-context"), exports);
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlZC1zY2VuYXJpby1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2N1Y3VtYmVyL21hbmFnZWQtc2NlbmFyaW8tY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDREQUEyQjtBQUUzQixnRUFBMEU7QUFHMUU7OztHQUdHO0FBQ0gsTUFBYSxzQkFBc0I7SUFJbEMsWUFBWSxhQUFxQixFQUFFLElBQWM7UUFGekMsbUJBQWMsR0FBRyxJQUFJLEdBQUcsRUFBWSxDQUFDO1FBRzVDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSwrQkFBWSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyxZQUFZO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUMzQixDQUFDO0lBRU0seUJBQXlCLENBQUMsZUFBb0IsRUFBRSxZQUEyQjtRQUNqRixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO1lBQ3JELE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNqRSxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTSxPQUFPO1FBQ2IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUMxQyxJQUFJLE9BQU8sS0FBSyxDQUFDLE9BQU8sS0FBSyxVQUFVLEVBQUU7Z0JBQ3hDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNoQjtRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVPLG9CQUFvQixDQUFDLGVBQW9CLEVBQUUsWUFBMkI7UUFDN0UsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLElBQVcsRUFBTyxFQUFFO1lBQ3JELFFBQVEsWUFBWSxDQUFDLE1BQU0sRUFBRTtnQkFDNUIsS0FBSyxDQUFDO29CQUNMLE9BQU8sSUFBSyxlQUFlLENBQUMsV0FBbUIsRUFBRSxDQUFDO2dCQUNuRCxLQUFLLENBQUM7b0JBQ0wsT0FBTyxJQUFLLGVBQWUsQ0FBQyxXQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxRCxLQUFLLENBQUM7b0JBQ0wsT0FBTyxJQUFLLGVBQWUsQ0FBQyxXQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkUsS0FBSyxDQUFDO29CQUNMLE9BQU8sSUFBSyxlQUFlLENBQUMsV0FBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM1RSxLQUFLLENBQUM7b0JBQ0wsT0FBTyxJQUFLLGVBQWUsQ0FBQyxXQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyRixLQUFLLENBQUM7b0JBQ0wsT0FBTyxJQUFLLGVBQWUsQ0FBQyxXQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDOUYsS0FBSyxDQUFDO29CQUNMLE9BQU8sSUFBSyxlQUFlLENBQUMsV0FBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2RyxLQUFLLENBQUM7b0JBQ0wsT0FBTyxJQUFLLGVBQWUsQ0FBQyxXQUFtQixDQUM5QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1AsQ0FBQztnQkFDSCxLQUFLLENBQUM7b0JBQ0wsT0FBTyxJQUFLLGVBQWUsQ0FBQyxXQUFtQixDQUM5QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNQLENBQUM7Z0JBQ0gsS0FBSyxDQUFDO29CQUNMLE9BQU8sSUFBSyxlQUFlLENBQUMsV0FBbUIsQ0FDOUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1AsQ0FBQztnQkFDSCxLQUFLLEVBQUU7b0JBQ04sT0FBTyxJQUFLLGVBQWUsQ0FBQyxXQUFtQixDQUM5QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1AsQ0FBQzthQUNIO1FBQ0YsQ0FBQyxDQUFDO1FBRUYsTUFBTSxjQUFjLEdBQUcsb0JBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQ3hELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRTtZQUNwRCxPQUFPLElBQUksV0FBVyxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQ0YsQ0FBQztRQUVGLE9BQU8sd0JBQXdCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVPLG1CQUFtQixDQUFDLGVBQW9CLEVBQUUsYUFBc0M7UUFDdkYsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFNUQsSUFBSSxZQUFZLEVBQUU7WUFDakIsT0FBTyxZQUFZLENBQUM7U0FDcEI7UUFFRCxZQUFZLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFFL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRXZELE9BQU8sWUFBWSxDQUFDO0lBQ3JCLENBQUM7Q0FDRDtBQXRIRCx3REFzSEM7QUFFRCw0REFBMEMifQ==
|