@autometa/coordinator 0.2.12 → 0.3.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/CHANGELOG.md +15 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.cts +5 -7
- package/dist/index.d.ts +5 -7
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @autometa/coordinator
|
|
2
2
|
|
|
3
|
+
## 0.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 98d911f: feat: replace tsyringe with custom DI solution
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [98d911f]
|
|
12
|
+
- @autometa/jest-executor@0.4.0
|
|
13
|
+
- @autometa/app@0.3.0
|
|
14
|
+
- @autometa/config@0.1.19
|
|
15
|
+
- @autometa/scopes@0.4.12
|
|
16
|
+
- @autometa/test-builder@0.1.41
|
|
17
|
+
|
|
3
18
|
## 0.2.12
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/coordinator.ts"],"sourcesContent":["import { Config } from \"@autometa/config\";\nimport { FeatureBridge, TestBuilder } from \"@autometa/test-builder\";\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/coordinator.ts"],"sourcesContent":["import { Config } from \"@autometa/config\";\nimport { FeatureBridge, TestBuilder } from \"@autometa/test-builder\";\nimport { App, World } from \"@autometa/app\";\nimport { TestEventEmitter } from \"@autometa/events\";\nimport { Class } from \"@autometa/types\";\nimport { FeatureScope, Files, GlobalScope } from \"@autometa/scopes\";\nimport { AutomationError } from \"@autometa/errors\";\nimport { AssertDefined } from \"@autometa/asserters\";\nimport { CoordinatorOpts } from \"./types\";\nimport { Feature } from \"@autometa/gherkin\";\nexport class Coordinator {\n #fs: Files;\n #builder: TestBuilder;\n #bridge: FeatureBridge;\n constructor(\n readonly global: GlobalScope,\n readonly configs: Config,\n readonly opts: Record<string, CoordinatorOpts>\n ) {\n AssertDefined(configs, \"Config\");\n }\n\n run(\n feature: FeatureScope,\n caller: string,\n events: TestEventEmitter,\n executor: (\n { app, world }: { app: Class<App>; world: Class<World> },\n global: GlobalScope,\n bridge: FeatureBridge,\n events: TestEventEmitter,\n config: Config\n ) => void\n ) {\n AssertDefined(executor, \"Executor\");\n\n const fs = this.fileSystem(caller);\n const path = fs.fromUrlPattern(feature.path);\n path.loadApps();\n\n const gherkin = path.getFeatureFile();\n if (!Array.isArray(gherkin)) {\n this.start(gherkin, feature, events, executor);\n } else {\n for (const featGherkin of gherkin) {\n this.start(featGherkin, feature, events, executor);\n }\n }\n }\n\n private start(\n gherkin: Feature,\n feature: FeatureScope,\n events: TestEventEmitter,\n executor: (\n { app, world }: { app: Class<App>; world: Class<World> },\n global: GlobalScope,\n bridge: FeatureBridge,\n events: TestEventEmitter,\n config: Config\n ) => void\n ) {\n this.global.unlock();\n this.loadParameterTypes();\n this.loadSteps();\n this.global.lock();\n this.#builder = new TestBuilder(gherkin);\n this.#bridge = this.#builder.onFeatureExecuted(feature);\n const { app, world } = this.opts[this.config.environment ?? \"default\"];\n executor({ app, world }, this.global, this.#bridge, events, this.configs);\n }\n\n get fs() {\n if (!this.#fs) {\n throw new AutomationError(\"File System not initialized\");\n }\n return this.#fs;\n }\n\n get config() {\n return this.configs.current;\n }\n\n fileSystem(caller: string) {\n const { roots } = this.config;\n const { steps, features, app, parameterTypes } = roots;\n\n this.#fs = new Files()\n .withFeatureRoot(features)\n .withCallerFile(caller)\n .withStepsRoot(steps)\n .withParameterTypes(parameterTypes)\n .withAppRoot(app);\n return this.fs;\n }\n\n loadSteps() {\n const { steps } = this.config.roots;\n if (typeof steps === \"string\") {\n this.fs.fromUrlPattern(steps).loadStepDefinitions();\n return;\n }\n for (const stepRoot of steps) {\n this.fs.fromUrlPattern(stepRoot).loadStepDefinitions();\n }\n }\n\n loadParameterTypes() {\n const { parameterTypes } = this.config.roots;\n if (parameterTypes === undefined) {\n return;\n }\n\n if (typeof parameterTypes === \"string\") {\n this.fs.fromUrlPattern(parameterTypes).loadParameterTypes();\n return;\n }\n\n for (const paramTypeRoot of parameterTypes) {\n this.fs.fromUrlPattern(paramTypeRoot).loadParameterTypes();\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AACA,SAAwB,mBAAmB;AAI3C,SAAuB,aAA0B;AACjD,SAAS,uBAAuB;AAChC,SAAS,qBAAqB;AAP9B;AAUO,IAAM,cAAN,MAAkB;AAAA,EAIvB,YACW,QACA,SACA,MACT;AAHS;AACA;AACA;AANX;AACA;AACA;AAME,kBAAc,SAAS,QAAQ;AAAA,EACjC;AAAA,EAEA,IACE,SACA,QACA,QACA,UAOA;AACA,kBAAc,UAAU,UAAU;AAElC,UAAM,KAAK,KAAK,WAAW,MAAM;AACjC,UAAM,OAAO,GAAG,eAAe,QAAQ,IAAI;AAC3C,SAAK,SAAS;AAEd,UAAM,UAAU,KAAK,eAAe;AACpC,QAAI,CAAC,MAAM,QAAQ,OAAO,GAAG;AAC3B,WAAK,MAAM,SAAS,SAAS,QAAQ,QAAQ;AAAA,IAC/C,OAAO;AACL,iBAAW,eAAe,SAAS;AACjC,aAAK,MAAM,aAAa,SAAS,QAAQ,QAAQ;AAAA,MACnD;AAAA,IACF;AAAA,EACF;AAAA,EAEQ,MACN,SACA,SACA,QACA,UAOA;AACA,SAAK,OAAO,OAAO;AACnB,SAAK,mBAAmB;AACxB,SAAK,UAAU;AACf,SAAK,OAAO,KAAK;AACjB,uBAAK,UAAW,IAAI,YAAY,OAAO;AACvC,uBAAK,SAAU,mBAAK,UAAS,kBAAkB,OAAO;AACtD,UAAM,EAAE,KAAK,MAAM,IAAI,KAAK,KAAK,KAAK,OAAO,eAAe,SAAS;AACrE,aAAS,EAAE,KAAK,MAAM,GAAG,KAAK,QAAQ,mBAAK,UAAS,QAAQ,KAAK,OAAO;AAAA,EAC1E;AAAA,EAEA,IAAI,KAAK;AACP,QAAI,CAAC,mBAAK,MAAK;AACb,YAAM,IAAI,gBAAgB,6BAA6B;AAAA,IACzD;AACA,WAAO,mBAAK;AAAA,EACd;AAAA,EAEA,IAAI,SAAS;AACX,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEA,WAAW,QAAgB;AACzB,UAAM,EAAE,MAAM,IAAI,KAAK;AACvB,UAAM,EAAE,OAAO,UAAU,KAAK,eAAe,IAAI;AAEjD,uBAAK,KAAM,IAAI,MAAM,EAClB,gBAAgB,QAAQ,EACxB,eAAe,MAAM,EACrB,cAAc,KAAK,EACnB,mBAAmB,cAAc,EACjC,YAAY,GAAG;AAClB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,YAAY;AACV,UAAM,EAAE,MAAM,IAAI,KAAK,OAAO;AAC9B,QAAI,OAAO,UAAU,UAAU;AAC7B,WAAK,GAAG,eAAe,KAAK,EAAE,oBAAoB;AAClD;AAAA,IACF;AACA,eAAW,YAAY,OAAO;AAC5B,WAAK,GAAG,eAAe,QAAQ,EAAE,oBAAoB;AAAA,IACvD;AAAA,EACF;AAAA,EAEA,qBAAqB;AACnB,UAAM,EAAE,eAAe,IAAI,KAAK,OAAO;AACvC,QAAI,mBAAmB,QAAW;AAChC;AAAA,IACF;AAEA,QAAI,OAAO,mBAAmB,UAAU;AACtC,WAAK,GAAG,eAAe,cAAc,EAAE,mBAAmB;AAC1D;AAAA,IACF;AAEA,eAAW,iBAAiB,gBAAgB;AAC1C,WAAK,GAAG,eAAe,aAAa,EAAE,mBAAmB;AAAA,IAC3D;AAAA,EACF;AACF;AA/GE;AACA;AACA;","names":[]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { Config } from '@autometa/config';
|
|
2
2
|
import { FeatureBridge } from '@autometa/test-builder';
|
|
3
|
-
import {
|
|
3
|
+
import { App, World } from '@autometa/app';
|
|
4
4
|
import { TestEventEmitter } from '@autometa/events';
|
|
5
5
|
import { Class } from '@autometa/types';
|
|
6
6
|
import { GlobalScope, FeatureScope, Files } from '@autometa/scopes';
|
|
7
|
-
import { DependencyContainer } from 'tsyringe';
|
|
8
7
|
|
|
9
8
|
type CoordinatorOpts = {
|
|
10
|
-
app: Class<
|
|
11
|
-
world: Class<
|
|
12
|
-
container: DependencyContainer;
|
|
9
|
+
app: Class<App>;
|
|
10
|
+
world: Class<World>;
|
|
13
11
|
};
|
|
14
12
|
|
|
15
13
|
declare class Coordinator {
|
|
@@ -19,8 +17,8 @@ declare class Coordinator {
|
|
|
19
17
|
readonly opts: Record<string, CoordinatorOpts>;
|
|
20
18
|
constructor(global: GlobalScope, configs: Config, opts: Record<string, CoordinatorOpts>);
|
|
21
19
|
run(feature: FeatureScope, caller: string, events: TestEventEmitter, executor: ({ app, world }: {
|
|
22
|
-
app: Class<
|
|
23
|
-
world: Class<
|
|
20
|
+
app: Class<App>;
|
|
21
|
+
world: Class<World>;
|
|
24
22
|
}, global: GlobalScope, bridge: FeatureBridge, events: TestEventEmitter, config: Config) => void): void;
|
|
25
23
|
private start;
|
|
26
24
|
get fs(): Files;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { Config } from '@autometa/config';
|
|
2
2
|
import { FeatureBridge } from '@autometa/test-builder';
|
|
3
|
-
import {
|
|
3
|
+
import { App, World } from '@autometa/app';
|
|
4
4
|
import { TestEventEmitter } from '@autometa/events';
|
|
5
5
|
import { Class } from '@autometa/types';
|
|
6
6
|
import { GlobalScope, FeatureScope, Files } from '@autometa/scopes';
|
|
7
|
-
import { DependencyContainer } from 'tsyringe';
|
|
8
7
|
|
|
9
8
|
type CoordinatorOpts = {
|
|
10
|
-
app: Class<
|
|
11
|
-
world: Class<
|
|
12
|
-
container: DependencyContainer;
|
|
9
|
+
app: Class<App>;
|
|
10
|
+
world: Class<World>;
|
|
13
11
|
};
|
|
14
12
|
|
|
15
13
|
declare class Coordinator {
|
|
@@ -19,8 +17,8 @@ declare class Coordinator {
|
|
|
19
17
|
readonly opts: Record<string, CoordinatorOpts>;
|
|
20
18
|
constructor(global: GlobalScope, configs: Config, opts: Record<string, CoordinatorOpts>);
|
|
21
19
|
run(feature: FeatureScope, caller: string, events: TestEventEmitter, executor: ({ app, world }: {
|
|
22
|
-
app: Class<
|
|
23
|
-
world: Class<
|
|
20
|
+
app: Class<App>;
|
|
21
|
+
world: Class<World>;
|
|
24
22
|
}, global: GlobalScope, bridge: FeatureBridge, events: TestEventEmitter, config: Config) => void): void;
|
|
25
23
|
private start;
|
|
26
24
|
get fs(): Files;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/coordinator.ts"],"sourcesContent":["export * from \"./coordinator\";\nexport * from \"./types\";\n","import { Config } from \"@autometa/config\";\nimport { FeatureBridge, TestBuilder } from \"@autometa/test-builder\";\nimport {
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/coordinator.ts"],"sourcesContent":["export * from \"./coordinator\";\nexport * from \"./types\";\n","import { Config } from \"@autometa/config\";\nimport { FeatureBridge, TestBuilder } from \"@autometa/test-builder\";\nimport { App, World } from \"@autometa/app\";\nimport { TestEventEmitter } from \"@autometa/events\";\nimport { Class } from \"@autometa/types\";\nimport { FeatureScope, Files, GlobalScope } from \"@autometa/scopes\";\nimport { AutomationError } from \"@autometa/errors\";\nimport { AssertDefined } from \"@autometa/asserters\";\nimport { CoordinatorOpts } from \"./types\";\nimport { Feature } from \"@autometa/gherkin\";\nexport class Coordinator {\n #fs: Files;\n #builder: TestBuilder;\n #bridge: FeatureBridge;\n constructor(\n readonly global: GlobalScope,\n readonly configs: Config,\n readonly opts: Record<string, CoordinatorOpts>\n ) {\n AssertDefined(configs, \"Config\");\n }\n\n run(\n feature: FeatureScope,\n caller: string,\n events: TestEventEmitter,\n executor: (\n { app, world }: { app: Class<App>; world: Class<World> },\n global: GlobalScope,\n bridge: FeatureBridge,\n events: TestEventEmitter,\n config: Config\n ) => void\n ) {\n AssertDefined(executor, \"Executor\");\n\n const fs = this.fileSystem(caller);\n const path = fs.fromUrlPattern(feature.path);\n path.loadApps();\n\n const gherkin = path.getFeatureFile();\n if (!Array.isArray(gherkin)) {\n this.start(gherkin, feature, events, executor);\n } else {\n for (const featGherkin of gherkin) {\n this.start(featGherkin, feature, events, executor);\n }\n }\n }\n\n private start(\n gherkin: Feature,\n feature: FeatureScope,\n events: TestEventEmitter,\n executor: (\n { app, world }: { app: Class<App>; world: Class<World> },\n global: GlobalScope,\n bridge: FeatureBridge,\n events: TestEventEmitter,\n config: Config\n ) => void\n ) {\n this.global.unlock();\n this.loadParameterTypes();\n this.loadSteps();\n this.global.lock();\n this.#builder = new TestBuilder(gherkin);\n this.#bridge = this.#builder.onFeatureExecuted(feature);\n const { app, world } = this.opts[this.config.environment ?? \"default\"];\n executor({ app, world }, this.global, this.#bridge, events, this.configs);\n }\n\n get fs() {\n if (!this.#fs) {\n throw new AutomationError(\"File System not initialized\");\n }\n return this.#fs;\n }\n\n get config() {\n return this.configs.current;\n }\n\n fileSystem(caller: string) {\n const { roots } = this.config;\n const { steps, features, app, parameterTypes } = roots;\n\n this.#fs = new Files()\n .withFeatureRoot(features)\n .withCallerFile(caller)\n .withStepsRoot(steps)\n .withParameterTypes(parameterTypes)\n .withAppRoot(app);\n return this.fs;\n }\n\n loadSteps() {\n const { steps } = this.config.roots;\n if (typeof steps === \"string\") {\n this.fs.fromUrlPattern(steps).loadStepDefinitions();\n return;\n }\n for (const stepRoot of steps) {\n this.fs.fromUrlPattern(stepRoot).loadStepDefinitions();\n }\n }\n\n loadParameterTypes() {\n const { parameterTypes } = this.config.roots;\n if (parameterTypes === undefined) {\n return;\n }\n\n if (typeof parameterTypes === \"string\") {\n this.fs.fromUrlPattern(parameterTypes).loadParameterTypes();\n return;\n }\n\n for (const paramTypeRoot of parameterTypes) {\n this.fs.fromUrlPattern(paramTypeRoot).loadParameterTypes();\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCA,0BAA2C;AAI3C,oBAAiD;AACjD,oBAAgC;AAChC,uBAA8B;AAP9B;AAUO,IAAM,cAAN,MAAkB;AAAA,EAIvB,YACW,QACA,SACA,MACT;AAHS;AACA;AACA;AANX;AACA;AACA;AAME,wCAAc,SAAS,QAAQ;AAAA,EACjC;AAAA,EAEA,IACE,SACA,QACA,QACA,UAOA;AACA,wCAAc,UAAU,UAAU;AAElC,UAAM,KAAK,KAAK,WAAW,MAAM;AACjC,UAAM,OAAO,GAAG,eAAe,QAAQ,IAAI;AAC3C,SAAK,SAAS;AAEd,UAAM,UAAU,KAAK,eAAe;AACpC,QAAI,CAAC,MAAM,QAAQ,OAAO,GAAG;AAC3B,WAAK,MAAM,SAAS,SAAS,QAAQ,QAAQ;AAAA,IAC/C,OAAO;AACL,iBAAW,eAAe,SAAS;AACjC,aAAK,MAAM,aAAa,SAAS,QAAQ,QAAQ;AAAA,MACnD;AAAA,IACF;AAAA,EACF;AAAA,EAEQ,MACN,SACA,SACA,QACA,UAOA;AACA,SAAK,OAAO,OAAO;AACnB,SAAK,mBAAmB;AACxB,SAAK,UAAU;AACf,SAAK,OAAO,KAAK;AACjB,uBAAK,UAAW,IAAI,gCAAY,OAAO;AACvC,uBAAK,SAAU,mBAAK,UAAS,kBAAkB,OAAO;AACtD,UAAM,EAAE,KAAK,MAAM,IAAI,KAAK,KAAK,KAAK,OAAO,eAAe,SAAS;AACrE,aAAS,EAAE,KAAK,MAAM,GAAG,KAAK,QAAQ,mBAAK,UAAS,QAAQ,KAAK,OAAO;AAAA,EAC1E;AAAA,EAEA,IAAI,KAAK;AACP,QAAI,CAAC,mBAAK,MAAK;AACb,YAAM,IAAI,8BAAgB,6BAA6B;AAAA,IACzD;AACA,WAAO,mBAAK;AAAA,EACd;AAAA,EAEA,IAAI,SAAS;AACX,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEA,WAAW,QAAgB;AACzB,UAAM,EAAE,MAAM,IAAI,KAAK;AACvB,UAAM,EAAE,OAAO,UAAU,KAAK,eAAe,IAAI;AAEjD,uBAAK,KAAM,IAAI,oBAAM,EAClB,gBAAgB,QAAQ,EACxB,eAAe,MAAM,EACrB,cAAc,KAAK,EACnB,mBAAmB,cAAc,EACjC,YAAY,GAAG;AAClB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,YAAY;AACV,UAAM,EAAE,MAAM,IAAI,KAAK,OAAO;AAC9B,QAAI,OAAO,UAAU,UAAU;AAC7B,WAAK,GAAG,eAAe,KAAK,EAAE,oBAAoB;AAClD;AAAA,IACF;AACA,eAAW,YAAY,OAAO;AAC5B,WAAK,GAAG,eAAe,QAAQ,EAAE,oBAAoB;AAAA,IACvD;AAAA,EACF;AAAA,EAEA,qBAAqB;AACnB,UAAM,EAAE,eAAe,IAAI,KAAK,OAAO;AACvC,QAAI,mBAAmB,QAAW;AAChC;AAAA,IACF;AAEA,QAAI,OAAO,mBAAmB,UAAU;AACtC,WAAK,GAAG,eAAe,cAAc,EAAE,mBAAmB;AAC1D;AAAA,IACF;AAEA,eAAW,iBAAiB,gBAAgB;AAC1C,WAAK,GAAG,eAAe,aAAa,EAAE,mBAAmB;AAAA,IAC3D;AAAA,EACF;AACF;AA/GE;AACA;AACA;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@autometa/coordinator",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -30,15 +30,15 @@
|
|
|
30
30
|
"vitest": "0.34.6"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@autometa/app": "^0.
|
|
33
|
+
"@autometa/app": "^0.3.0",
|
|
34
34
|
"@autometa/asserters": "^0.1.8",
|
|
35
|
-
"@autometa/config": "^0.1.
|
|
35
|
+
"@autometa/config": "^0.1.19",
|
|
36
36
|
"@autometa/errors": "^0.2.2",
|
|
37
37
|
"@autometa/events": "^0.2.10",
|
|
38
38
|
"@autometa/gherkin": "^0.5.7",
|
|
39
|
-
"@autometa/jest-executor": "^0.
|
|
40
|
-
"@autometa/scopes": "^0.4.
|
|
41
|
-
"@autometa/test-builder": "^0.1.
|
|
39
|
+
"@autometa/jest-executor": "^0.4.0",
|
|
40
|
+
"@autometa/scopes": "^0.4.12",
|
|
41
|
+
"@autometa/test-builder": "^0.1.41",
|
|
42
42
|
"@autometa/types": "^0.4.1",
|
|
43
43
|
"tsyringe": "^4.8.0"
|
|
44
44
|
},
|