@serenity-js/core 3.14.2 → 3.15.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/CHANGELOG.md +26 -0
- package/README.md +1 -1
- package/lib/Serenity.d.ts +2 -0
- package/lib/Serenity.d.ts.map +1 -1
- package/lib/Serenity.js +8 -1
- package/lib/Serenity.js.map +1 -1
- package/lib/io/FileSystem.d.ts +1 -0
- package/lib/io/FileSystem.d.ts.map +1 -1
- package/lib/io/FileSystem.js +10 -7
- package/lib/io/FileSystem.js.map +1 -1
- package/lib/io/loader/ClassLoader.d.ts +1 -0
- package/lib/io/loader/ClassLoader.d.ts.map +1 -1
- package/lib/io/loader/ClassLoader.js +29 -7
- package/lib/io/loader/ClassLoader.js.map +1 -1
- package/lib/screenplay/time/models/Timestamp.d.ts +1 -0
- package/lib/screenplay/time/models/Timestamp.d.ts.map +1 -1
- package/lib/screenplay/time/models/Timestamp.js +4 -1
- package/lib/screenplay/time/models/Timestamp.js.map +1 -1
- package/lib/stage/StageCrewMemberBuilderDependencies.d.ts +2 -0
- package/lib/stage/StageCrewMemberBuilderDependencies.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/Serenity.ts +10 -2
- package/src/io/FileSystem.ts +11 -7
- package/src/io/loader/ClassLoader.ts +38 -7
- package/src/screenplay/time/models/Timestamp.ts +5 -1
- package/src/stage/StageCrewMemberBuilderDependencies.ts +2 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,32 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [3.15.1](https://github.com/serenity-js/serenity-js/compare/v3.15.0...v3.15.1) (2024-01-19)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @serenity-js/core
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [3.15.0](https://github.com/serenity-js/serenity-js/compare/v3.14.2...v3.15.0) (2024-01-12)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* **deps:** update dependency moment to v2.30.1 ([42ec5c3](https://github.com/serenity-js/serenity-js/commit/42ec5c3b0052a0f939eec761a06ad83c632c7eb8))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Features
|
|
23
|
+
|
|
24
|
+
* **core:** enabled ClassLoader to instantiate StageCrewMembers using their factory functions ([f98bd42](https://github.com/serenity-js/serenity-js/commit/f98bd4206e768d5840d6e7952c61f7a2da1b144e)), closes [#1147](https://github.com/serenity-js/serenity-js/issues/1147)
|
|
25
|
+
* **core:** timestamps can be represented as ISO8601-compatible strings ([b19e064](https://github.com/serenity-js/serenity-js/commit/b19e064abdbf5073bc701dd238098aa31ba7fc5a))
|
|
26
|
+
* **serenity-bdd:** support for Serenity BDD 4 ([c15c366](https://github.com/serenity-js/serenity-js/commit/c15c3660f957c21c367f8f27218a05d3fbca78de)), closes [#1147](https://github.com/serenity-js/serenity-js/issues/1147)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
6
32
|
## [3.14.2](https://github.com/serenity-js/serenity-js/compare/v3.14.1...v3.14.2) (2023-12-12)
|
|
7
33
|
|
|
8
34
|
**Note:** Version bump only for package @serenity-js/core
|
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ of complex software systems faster, more collaborative and easier to scale.
|
|
|
12
12
|
- [Serenity/JS web testing tutorial](https://serenity-js.org/handbook/web-testing/your-first-web-scenario)
|
|
13
13
|
- [Serenity/JS Handbook](https://serenity-js.org/handbook) and [Getting Started guides](https://serenity-js.org/handbook/getting-started/)
|
|
14
14
|
- [API documentation](https://serenity-js.org/api/core)
|
|
15
|
-
- [Serenity/JS Project Templates on GitHub](https://serenity-js.org/handbook/getting-started
|
|
15
|
+
- [Serenity/JS Project Templates on GitHub](https://serenity-js.org/handbook/getting-started/project-templates/)
|
|
16
16
|
|
|
17
17
|
👋 Join the Serenity/JS Community!
|
|
18
18
|
- Meet other Serenity/JS developers and maintainers on the [Serenity/JS Community chat channel](https://matrix.to/#/#serenity-js:gitter.im),
|
package/lib/Serenity.d.ts
CHANGED
|
@@ -15,11 +15,13 @@ export declare class Serenity implements EmitsDomainEvents {
|
|
|
15
15
|
private static defaultInteractionTimeout;
|
|
16
16
|
private static defaultActors;
|
|
17
17
|
private stage;
|
|
18
|
+
private readonly fileSystem;
|
|
18
19
|
private outputStream;
|
|
19
20
|
private readonly classLoader;
|
|
20
21
|
private readonly workingDirectory;
|
|
21
22
|
/**
|
|
22
23
|
* @param clock
|
|
24
|
+
* @param cwd
|
|
23
25
|
*/
|
|
24
26
|
constructor(clock?: Clock, cwd?: string);
|
|
25
27
|
/**
|
package/lib/Serenity.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Serenity.d.ts","sourceRoot":"","sources":["../src/Serenity.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"Serenity.d.ts","sourceRoot":"","sources":["../src/Serenity.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAyE,IAAI,EAAE,MAAM,MAAM,CAAC;AACnG,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,KAAK,EAAY,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAKzC;;GAEG;AACH,qBAAa,QAAS,YAAW,iBAAiB;IAiB1C,OAAO,CAAC,QAAQ,CAAC,KAAK;IAhB1B,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAoC;IACpE,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAA4B;IACpE,OAAO,CAAC,MAAM,CAAC,aAAa,CAA+B;IAE3D,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,YAAY,CAAiC;IAErD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAO;IAExC;;;OAGG;gBAEkB,KAAK,GAAE,KAAmB,EAC3C,GAAG,GAAE,MAAsB;IAoB/B;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAwDvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkEG;IACH,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;IAM1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyDG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAInC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,sBAAsB,IAAI,KAAK;IAI/B,QAAQ,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI;IAI7C,WAAW,IAAI,SAAS;IAIxB,gBAAgB,IAAI,aAAa;IAIjC,cAAc,IAAI,aAAa;IAI/B,mBAAmB,CAAC,eAAe,EAAE,eAAe,GAAG,aAAa;IAIpE,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,SAAS,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,EAAE;IAItG;;OAEG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,GAAG,IAAI,IAAI;CAGd"}
|
package/lib/Serenity.js
CHANGED
|
@@ -17,17 +17,20 @@ class Serenity {
|
|
|
17
17
|
static defaultInteractionTimeout = screenplay_1.Duration.ofSeconds(5);
|
|
18
18
|
static defaultActors = new Extras_1.Extras();
|
|
19
19
|
stage;
|
|
20
|
+
fileSystem;
|
|
20
21
|
outputStream = process.stdout;
|
|
21
22
|
classLoader;
|
|
22
23
|
workingDirectory;
|
|
23
24
|
/**
|
|
24
25
|
* @param clock
|
|
26
|
+
* @param cwd
|
|
25
27
|
*/
|
|
26
28
|
constructor(clock = new screenplay_1.Clock(), cwd = process.cwd()) {
|
|
27
29
|
this.clock = clock;
|
|
28
30
|
this.stage = new Stage_1.Stage(Serenity.defaultActors, new StageManager_1.StageManager(Serenity.defaultCueTimeout, clock), new errors_1.ErrorFactory(), clock, Serenity.defaultInteractionTimeout);
|
|
29
31
|
this.classLoader = new io_1.ClassLoader(new io_1.ModuleLoader(cwd), new io_1.ClassDescriptionParser());
|
|
30
32
|
this.workingDirectory = new io_1.Path(cwd);
|
|
33
|
+
this.fileSystem = new io_1.FileSystem(this.workingDirectory);
|
|
31
34
|
}
|
|
32
35
|
/**
|
|
33
36
|
* Configures Serenity/JS. Every call to this function
|
|
@@ -59,7 +62,11 @@ class Serenity {
|
|
|
59
62
|
? this.classLoader.instantiate(stageCrewMemberDescription)
|
|
60
63
|
: stageCrewMemberDescription;
|
|
61
64
|
if (looksLikeBuilder(stageCrewMember)) {
|
|
62
|
-
return stageCrewMember.build({
|
|
65
|
+
return stageCrewMember.build({
|
|
66
|
+
stage: this.stage,
|
|
67
|
+
fileSystem: this.fileSystem,
|
|
68
|
+
outputStream: this.outputStream,
|
|
69
|
+
});
|
|
63
70
|
}
|
|
64
71
|
if (looksLikeStageCrewMember(stageCrewMember)) {
|
|
65
72
|
return stageCrewMember.assignedTo(this.stage);
|
package/lib/Serenity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Serenity.js","sourceRoot":"","sources":["../src/Serenity.ts"],"names":[],"mappings":";;;AAAA,2CAAuE;AAKvE,qCAA+E;AAE/E,
|
|
1
|
+
{"version":3,"file":"Serenity.js","sourceRoot":"","sources":["../src/Serenity.ts"],"names":[],"mappings":"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"}
|
package/lib/io/FileSystem.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export declare class FileSystem {
|
|
|
11
11
|
private readonly os;
|
|
12
12
|
private readonly directoryMode;
|
|
13
13
|
constructor(root: Path, fs?: typeof nodeFS, os?: typeof nodeOS, directoryMode?: number);
|
|
14
|
+
resolve(relativeOrAbsolutePath: Path): Path;
|
|
14
15
|
store(relativeOrAbsolutePathToFile: Path, data: string | NodeJS.ArrayBufferView, encoding?: WriteFileOptions): Promise<Path>;
|
|
15
16
|
createReadStream(relativeOrAbsolutePathToFile: Path): nodeFS.ReadStream;
|
|
16
17
|
createWriteStreamTo(relativeOrAbsolutePathToFile: Path): nodeFS.WriteStream;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileSystem.d.ts","sourceRoot":"","sources":["../../src/io/FileSystem.ts"],"names":[],"mappings":";;;AACA,OAAO,KAAK,KAAK,MAAM,MAAM,IAAI,CAAC;AAClC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAC;AAE3C,OAAO,KAAK,MAAM,MAAM,IAAI,CAAC;AAG7B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBAAa,UAAU;IAGf,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAHb,IAAI,EAAE,IAAI,EACV,EAAE,GAAE,OAAO,MAAmB,EAC9B,EAAE,GAAE,OAAO,MAAe,EAC1B,aAAa,SAAkD;IAI7E,KAAK,CAAC,4BAA4B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5H,gBAAgB,CAAC,4BAA4B,EAAE,IAAI,GAAG,MAAM,CAAC,UAAU;IAIvE,mBAAmB,CAAC,4BAA4B,EAAE,IAAI,GAAG,MAAM,CAAC,WAAW;IAI3E,IAAI,CAAC,4BAA4B,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IAM/D,MAAM,CAAC,4BAA4B,EAAE,IAAI,GAAG,OAAO;IAInD,MAAM,CAAC,uCAAuC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BpE,uBAAuB,CAAC,iCAAiC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B/E,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtD,YAAY,CAAC,MAAM,SAAK,EAAE,MAAM,SAAS,GAAG,IAAI;IAIvD,OAAO,CAAC,KAAK;CAYhB"}
|
|
1
|
+
{"version":3,"file":"FileSystem.d.ts","sourceRoot":"","sources":["../../src/io/FileSystem.ts"],"names":[],"mappings":";;;AACA,OAAO,KAAK,KAAK,MAAM,MAAM,IAAI,CAAC;AAClC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAC;AAE3C,OAAO,KAAK,MAAM,MAAM,IAAI,CAAC;AAG7B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBAAa,UAAU;IAGf,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAHb,IAAI,EAAE,IAAI,EACV,EAAE,GAAE,OAAO,MAAmB,EAC9B,EAAE,GAAE,OAAO,MAAe,EAC1B,aAAa,SAAkD;IAI7E,OAAO,CAAC,sBAAsB,EAAE,IAAI,GAAG,IAAI;IAI3C,KAAK,CAAC,4BAA4B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5H,gBAAgB,CAAC,4BAA4B,EAAE,IAAI,GAAG,MAAM,CAAC,UAAU;IAIvE,mBAAmB,CAAC,4BAA4B,EAAE,IAAI,GAAG,MAAM,CAAC,WAAW;IAI3E,IAAI,CAAC,4BAA4B,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IAM/D,MAAM,CAAC,4BAA4B,EAAE,IAAI,GAAG,OAAO;IAInD,MAAM,CAAC,uCAAuC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BpE,uBAAuB,CAAC,iCAAiC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B/E,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtD,YAAY,CAAC,MAAM,SAAK,EAAE,MAAM,SAAS,GAAG,IAAI;IAIvD,OAAO,CAAC,KAAK;CAYhB"}
|
package/lib/io/FileSystem.js
CHANGED
|
@@ -40,27 +40,30 @@ class FileSystem {
|
|
|
40
40
|
this.os = os;
|
|
41
41
|
this.directoryMode = directoryMode;
|
|
42
42
|
}
|
|
43
|
+
resolve(relativeOrAbsolutePath) {
|
|
44
|
+
return this.root.resolve(relativeOrAbsolutePath);
|
|
45
|
+
}
|
|
43
46
|
store(relativeOrAbsolutePathToFile, data, encoding) {
|
|
44
47
|
return Promise.resolve()
|
|
45
48
|
.then(() => this.ensureDirectoryExistsAt(relativeOrAbsolutePathToFile.directory()))
|
|
46
|
-
.then(() => this.write(this.
|
|
49
|
+
.then(() => this.write(this.resolve(relativeOrAbsolutePathToFile), data, encoding));
|
|
47
50
|
}
|
|
48
51
|
createReadStream(relativeOrAbsolutePathToFile) {
|
|
49
|
-
return this.fs.createReadStream(this.
|
|
52
|
+
return this.fs.createReadStream(this.resolve(relativeOrAbsolutePathToFile).value);
|
|
50
53
|
}
|
|
51
54
|
createWriteStreamTo(relativeOrAbsolutePathToFile) {
|
|
52
|
-
return this.fs.createWriteStream(this.
|
|
55
|
+
return this.fs.createWriteStream(this.resolve(relativeOrAbsolutePathToFile).value);
|
|
53
56
|
}
|
|
54
57
|
stat(relativeOrAbsolutePathToFile) {
|
|
55
58
|
const stat = (0, util_1.promisify)(this.fs.stat);
|
|
56
|
-
return stat(this.
|
|
59
|
+
return stat(this.resolve(relativeOrAbsolutePathToFile).value);
|
|
57
60
|
}
|
|
58
61
|
exists(relativeOrAbsolutePathToFile) {
|
|
59
|
-
return this.fs.existsSync(this.
|
|
62
|
+
return this.fs.existsSync(this.resolve(relativeOrAbsolutePathToFile).value);
|
|
60
63
|
}
|
|
61
64
|
remove(relativeOrAbsolutePathToFileOrDirectory) {
|
|
62
65
|
const stat = (0, util_1.promisify)(this.fs.stat), unlink = (0, util_1.promisify)(this.fs.unlink), readdir = (0, util_1.promisify)(this.fs.readdir), rmdir = (0, util_1.promisify)(this.fs.rmdir);
|
|
63
|
-
const absolutePath = this.
|
|
66
|
+
const absolutePath = this.resolve(relativeOrAbsolutePathToFileOrDirectory);
|
|
64
67
|
return stat(absolutePath.value)
|
|
65
68
|
.then(result => result.isFile()
|
|
66
69
|
? unlink(absolutePath.value)
|
|
@@ -75,7 +78,7 @@ class FileSystem {
|
|
|
75
78
|
});
|
|
76
79
|
}
|
|
77
80
|
ensureDirectoryExistsAt(relativeOrAbsolutePathToDirectory) {
|
|
78
|
-
const absolutePath = this.
|
|
81
|
+
const absolutePath = this.resolve(relativeOrAbsolutePathToDirectory);
|
|
79
82
|
return absolutePath.split().reduce((promisedParent, child) => {
|
|
80
83
|
return promisedParent.then(parent => new Promise((resolve, reject) => {
|
|
81
84
|
const current = parent.resolve(new Path_1.Path(child));
|
package/lib/io/FileSystem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileSystem.js","sourceRoot":"","sources":["../../src/io/FileSystem.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAgD;AAGhD,wDAA0C;AAC1C,2CAA6B;AAC7B,+BAAiC;AAEjC,iCAA8B;AAE9B,MAAa,UAAU;IAGE;IACA;IACA;IACA;IAJrB,YACqB,IAAU,EACV,KAAoB,UAAU,EAC9B,KAAoB,MAAM,EAC1B,gBAAgB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAH/D,SAAI,GAAJ,IAAI,CAAM;QACV,OAAE,GAAF,EAAE,CAA4B;QAC9B,OAAE,GAAF,EAAE,CAAwB;QAC1B,kBAAa,GAAb,aAAa,CAAkD;IAEpF,CAAC;IAEM,KAAK,CAAC,4BAAkC,EAAE,IAAqC,EAAE,QAA2B;QAC/G,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,4BAA4B,CAAC,SAAS,EAAE,CAAC,CAAC;aAClF,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"FileSystem.js","sourceRoot":"","sources":["../../src/io/FileSystem.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,5 +7,6 @@ export declare class ClassLoader {
|
|
|
7
7
|
constructor(loader: ModuleLoader, parser: ClassDescriptionParser);
|
|
8
8
|
looksLoadable(description: unknown): description is ClassDescription;
|
|
9
9
|
instantiate<T>(description: ClassDescription): T;
|
|
10
|
+
private ensureDefined;
|
|
10
11
|
}
|
|
11
12
|
//# sourceMappingURL=ClassLoader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClassLoader.d.ts","sourceRoot":"","sources":["../../../src/io/loader/ClassLoader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,qBAAa,WAAW;IAEhB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,sBAAsB;IAInD,aAAa,CAAC,WAAW,EAAE,OAAO,GAAG,WAAW,IAAI,gBAAgB;IAIpE,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,gBAAgB,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"ClassLoader.d.ts","sourceRoot":"","sources":["../../../src/io/loader/ClassLoader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,qBAAa,WAAW;IAEhB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,sBAAsB;IAInD,aAAa,CAAC,WAAW,EAAE,OAAO,GAAG,WAAW,IAAI,gBAAgB;IAIpE,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,gBAAgB,GAAG,CAAC;IAgDhD,OAAO,CAAC,aAAa;CAOxB"}
|
|
@@ -20,16 +20,38 @@ class ClassLoader {
|
|
|
20
20
|
if (typeof requiredType !== 'function') {
|
|
21
21
|
throw new errors_1.ConfigurationError((0, format_1.d) `Module ${descriptor.moduleId} doesn't seem to export ${descriptor.className}. Exported members include: ${Object.keys(requiredModule).join(', ')}`);
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
const needsParameter = Boolean(descriptor.parameter);
|
|
24
|
+
if (needsParameter && typeof requiredType.fromJSON === 'function') {
|
|
25
|
+
return this.ensureDefined(requiredType.fromJSON(descriptor.parameter), `${requiredType}.fromJSON(${descriptor.parameter})`);
|
|
26
|
+
}
|
|
27
|
+
if (needsParameter && requiredType.length > 1) {
|
|
28
|
+
throw new errors_1.ConfigurationError((0, format_1.d) `${descriptor.className} exported by ${descriptor.moduleId} must be a class with a static fromJSON(config) method or a function that accepts a single config parameter: ${descriptor.parameter}`);
|
|
29
|
+
}
|
|
30
|
+
if (!needsParameter && requiredType.length > 0) {
|
|
31
|
+
throw new errors_1.ConfigurationError((0, format_1.d) `${descriptor.className} exported by ${descriptor.moduleId} must be a parameterless function since no config parameter is specified`);
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
return this.ensureDefined(requiredType(descriptor.parameter), `${requiredType}(${descriptor.parameter})`);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
if (error instanceof TypeError && error.message.includes('constructor')) {
|
|
38
|
+
return new requiredType(descriptor.parameter);
|
|
26
39
|
}
|
|
27
|
-
|
|
40
|
+
const errorMessage = [
|
|
41
|
+
(0, format_1.d) `${descriptor.className} exported by ${descriptor.moduleId} must be either:`,
|
|
42
|
+
descriptor.parameter && (0, format_1.d) `- a class with a static fromJSON(config) method`,
|
|
43
|
+
descriptor.parameter ? '- a no-arg constructor function' : '- a constructor function accepting config',
|
|
44
|
+
descriptor.parameter ? '- a no-arg function' : '- a function accepting config',
|
|
45
|
+
descriptor.parameter && (0, format_1.d) `where config is: ${descriptor.parameter}`,
|
|
46
|
+
].filter(Boolean).join('\n');
|
|
47
|
+
throw new errors_1.ConfigurationError(errorMessage);
|
|
28
48
|
}
|
|
29
|
-
|
|
30
|
-
|
|
49
|
+
}
|
|
50
|
+
ensureDefined(value, operation) {
|
|
51
|
+
if (value === undefined || value === null) {
|
|
52
|
+
throw new errors_1.ConfigurationError(`Calling ${operation} produced ${value}, which might indicate a configuration or programming error`);
|
|
31
53
|
}
|
|
32
|
-
return
|
|
54
|
+
return value;
|
|
33
55
|
}
|
|
34
56
|
}
|
|
35
57
|
exports.ClassLoader = ClassLoader;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClassLoader.js","sourceRoot":"","sources":["../../../src/io/loader/ClassLoader.ts"],"names":[],"mappings":";;;AACA,yCAAkD;AAClD,sCAA8B;AAI9B,MAAa,WAAW;IAEC;IACA;IAFrB,YACqB,MAAoB,EACpB,MAA8B;QAD9B,WAAM,GAAN,MAAM,CAAc;QACpB,WAAM,GAAN,MAAM,CAAwB;IAEnD,CAAC;IAED,aAAa,CAAC,WAAoB;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC;IAED,WAAW,CAAI,WAA6B;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAElD,MAAM,cAAc,GAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACnE,MAAM,YAAY,GAAQ,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAE/D,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE;YACpC,MAAM,IAAI,2BAAkB,CAAC,IAAA,UAAC,EAAC,UAAW,UAAU,CAAC,QAAS,2BAA4B,UAAU,CAAC,SAAU,+BAAgC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAE,EAAE,CAAC,CAAA;SAC5L;QAED,
|
|
1
|
+
{"version":3,"file":"ClassLoader.js","sourceRoot":"","sources":["../../../src/io/loader/ClassLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Timestamp.d.ts","sourceRoot":"","sources":["../../../../src/screenplay/time/models/Timestamp.ts"],"names":[],"mappings":";AACA,OAAO,EAA8C,QAAQ,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;;;;;;;;GAUG;AACH,qBAAa,SAAU,SAAQ,QAAQ;aAiBP,KAAK,EAAE,IAAI;IAhBvC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS;IAIrC,MAAM,CAAC,sBAAsB,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS;IAInD,MAAM,CAAC,2BAA2B,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS;IAIxD,MAAM,CAAC,GAAG,IAAI,SAAS;gBAIK,KAAK,GAAE,IAAiB;IAKpD,IAAI,CAAC,OAAO,EAAE,SAAS,GAAG,QAAQ;IAKlC,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS;IAKnC,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS;IAKnC,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO;IAKrC,eAAe,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO;IAK5C,OAAO,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO;IAKpC,cAAc,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO;IAK3C,cAAc,IAAI,MAAM;IAIxB,SAAS,IAAI,MAAM;IAInB,MAAM,IAAI,MAAM;IAIhB,QAAQ,IAAI,MAAM;IAIlB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM;CAG7B"}
|
|
1
|
+
{"version":3,"file":"Timestamp.d.ts","sourceRoot":"","sources":["../../../../src/screenplay/time/models/Timestamp.ts"],"names":[],"mappings":";AACA,OAAO,EAA8C,QAAQ,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;;;;;;;;GAUG;AACH,qBAAa,SAAU,SAAQ,QAAQ;aAiBP,KAAK,EAAE,IAAI;IAhBvC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS;IAIrC,MAAM,CAAC,sBAAsB,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS;IAInD,MAAM,CAAC,2BAA2B,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS;IAIxD,MAAM,CAAC,GAAG,IAAI,SAAS;gBAIK,KAAK,GAAE,IAAiB;IAKpD,IAAI,CAAC,OAAO,EAAE,SAAS,GAAG,QAAQ;IAKlC,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS;IAKnC,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS;IAKnC,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO;IAKrC,eAAe,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO;IAK5C,OAAO,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO;IAKpC,cAAc,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO;IAK3C,cAAc,IAAI,MAAM;IAIxB,SAAS,IAAI,MAAM;IAInB,MAAM,IAAI,MAAM;IAIhB,WAAW,IAAI,MAAM;IAIrB,QAAQ,IAAI,MAAM;IAIlB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM;CAG7B"}
|
|
@@ -75,9 +75,12 @@ class Timestamp extends tiny_types_1.TinyType {
|
|
|
75
75
|
toJSON() {
|
|
76
76
|
return this.value.toJSON();
|
|
77
77
|
}
|
|
78
|
-
|
|
78
|
+
toISOString() {
|
|
79
79
|
return this.value.toISOString();
|
|
80
80
|
}
|
|
81
|
+
toString() {
|
|
82
|
+
return this.toISOString();
|
|
83
|
+
}
|
|
81
84
|
[util_1.inspect.custom]() {
|
|
82
85
|
return `Timestamp(${this.value.toISOString()})`;
|
|
83
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Timestamp.js","sourceRoot":"","sources":["../../../../src/screenplay/time/models/Timestamp.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Timestamp.js","sourceRoot":"","sources":["../../../../src/screenplay/time/models/Timestamp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { OutputStream } from '../adapter';
|
|
2
|
+
import type { FileSystem } from '../io';
|
|
2
3
|
import type { Stage } from './Stage';
|
|
3
4
|
/**
|
|
4
5
|
* Dependencies injected by {@apilink Serenity.configure} into {@apilink StageCrewMemberBuilder.build}
|
|
@@ -10,6 +11,7 @@ import type { Stage } from './Stage';
|
|
|
10
11
|
*/
|
|
11
12
|
export interface StageCrewMemberBuilderDependencies {
|
|
12
13
|
stage: Stage;
|
|
14
|
+
fileSystem: FileSystem;
|
|
13
15
|
outputStream: OutputStream;
|
|
14
16
|
}
|
|
15
17
|
//# sourceMappingURL=StageCrewMemberBuilderDependencies.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StageCrewMemberBuilderDependencies.d.ts","sourceRoot":"","sources":["../../src/stage/StageCrewMemberBuilderDependencies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;;;;;;GAOG;AACH,MAAM,WAAW,kCAAkC;IAC/C,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;CAC9B"}
|
|
1
|
+
{"version":3,"file":"StageCrewMemberBuilderDependencies.d.ts","sourceRoot":"","sources":["../../src/stage/StageCrewMemberBuilderDependencies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;;;;;;GAOG;AACH,MAAM,WAAW,kCAAkC;IAC/C,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;CAC9B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@serenity-js/core",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.15.1",
|
|
4
4
|
"description": "Serenity/JS Screenplay, reporting engine and core interfaces.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Jan Molak",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"fast-glob": "3.3.2",
|
|
41
41
|
"filenamify": "4.3.0",
|
|
42
42
|
"graceful-fs": "4.2.11",
|
|
43
|
-
"moment": "2.
|
|
43
|
+
"moment": "2.30.1",
|
|
44
44
|
"semver": "7.5.4",
|
|
45
45
|
"tiny-types": "1.21.0",
|
|
46
46
|
"upath": "2.0.1",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"@types/semver": "7.5.6",
|
|
55
55
|
"@types/validate-npm-package-name": "4.0.2",
|
|
56
56
|
"assertion-error-formatter": "3.0.0",
|
|
57
|
-
"c8": "
|
|
57
|
+
"c8": "9.1.0",
|
|
58
58
|
"memfs": "4.6.0",
|
|
59
59
|
"mocha": "10.2.0",
|
|
60
60
|
"mocha-multi": "1.1.7",
|
|
@@ -72,5 +72,5 @@
|
|
|
72
72
|
"engines": {
|
|
73
73
|
"node": "^16.13 || ^18.12 || ^20"
|
|
74
74
|
},
|
|
75
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "4df79de3820acd9fb18d76843feb0468c55c8e7f"
|
|
76
76
|
}
|
package/src/Serenity.ts
CHANGED
|
@@ -5,7 +5,7 @@ import type { SerenityConfig } from './config';
|
|
|
5
5
|
import type { ErrorOptions, RuntimeError } from './errors';
|
|
6
6
|
import { ConfigurationError, ErrorFactory, NoOpDiffFormatter } from './errors';
|
|
7
7
|
import type { DomainEvent, EmitsDomainEvents } from './events';
|
|
8
|
-
import { ClassDescriptionParser, ClassLoader, d, has, ModuleLoader, Path } from './io';
|
|
8
|
+
import { ClassDescriptionParser, ClassLoader, d, FileSystem, has, ModuleLoader, Path } from './io';
|
|
9
9
|
import type { ActivityDetails, CorrelationId } from './model';
|
|
10
10
|
import type { Actor, Timestamp } from './screenplay';
|
|
11
11
|
import { Clock, Duration } from './screenplay';
|
|
@@ -24,6 +24,7 @@ export class Serenity implements EmitsDomainEvents {
|
|
|
24
24
|
private static defaultActors = new Extras();
|
|
25
25
|
|
|
26
26
|
private stage: Stage;
|
|
27
|
+
private readonly fileSystem: FileSystem;
|
|
27
28
|
private outputStream: OutputStream = process.stdout;
|
|
28
29
|
|
|
29
30
|
private readonly classLoader: ClassLoader;
|
|
@@ -31,6 +32,7 @@ export class Serenity implements EmitsDomainEvents {
|
|
|
31
32
|
|
|
32
33
|
/**
|
|
33
34
|
* @param clock
|
|
35
|
+
* @param cwd
|
|
34
36
|
*/
|
|
35
37
|
constructor(
|
|
36
38
|
private readonly clock: Clock = new Clock(),
|
|
@@ -50,6 +52,8 @@ export class Serenity implements EmitsDomainEvents {
|
|
|
50
52
|
);
|
|
51
53
|
|
|
52
54
|
this.workingDirectory = new Path(cwd);
|
|
55
|
+
|
|
56
|
+
this.fileSystem = new FileSystem(this.workingDirectory);
|
|
53
57
|
}
|
|
54
58
|
|
|
55
59
|
/**
|
|
@@ -97,7 +101,11 @@ export class Serenity implements EmitsDomainEvents {
|
|
|
97
101
|
: stageCrewMemberDescription;
|
|
98
102
|
|
|
99
103
|
if (looksLikeBuilder(stageCrewMember)) {
|
|
100
|
-
return stageCrewMember.build({
|
|
104
|
+
return stageCrewMember.build({
|
|
105
|
+
stage: this.stage,
|
|
106
|
+
fileSystem: this.fileSystem,
|
|
107
|
+
outputStream: this.outputStream,
|
|
108
|
+
});
|
|
101
109
|
}
|
|
102
110
|
|
|
103
111
|
if (looksLikeStageCrewMember(stageCrewMember)) {
|
package/src/io/FileSystem.ts
CHANGED
|
@@ -17,28 +17,32 @@ export class FileSystem {
|
|
|
17
17
|
) {
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
public resolve(relativeOrAbsolutePath: Path): Path {
|
|
21
|
+
return this.root.resolve(relativeOrAbsolutePath);
|
|
22
|
+
}
|
|
23
|
+
|
|
20
24
|
public store(relativeOrAbsolutePathToFile: Path, data: string | NodeJS.ArrayBufferView, encoding?: WriteFileOptions): Promise<Path> {
|
|
21
25
|
return Promise.resolve()
|
|
22
26
|
.then(() => this.ensureDirectoryExistsAt(relativeOrAbsolutePathToFile.directory()))
|
|
23
|
-
.then(() => this.write(this.
|
|
27
|
+
.then(() => this.write(this.resolve(relativeOrAbsolutePathToFile), data, encoding));
|
|
24
28
|
}
|
|
25
29
|
|
|
26
30
|
public createReadStream(relativeOrAbsolutePathToFile: Path): nodeFS.ReadStream {
|
|
27
|
-
return this.fs.createReadStream(this.
|
|
31
|
+
return this.fs.createReadStream(this.resolve(relativeOrAbsolutePathToFile).value);
|
|
28
32
|
}
|
|
29
33
|
|
|
30
34
|
public createWriteStreamTo(relativeOrAbsolutePathToFile: Path): nodeFS.WriteStream {
|
|
31
|
-
return this.fs.createWriteStream(this.
|
|
35
|
+
return this.fs.createWriteStream(this.resolve(relativeOrAbsolutePathToFile).value);
|
|
32
36
|
}
|
|
33
37
|
|
|
34
38
|
public stat(relativeOrAbsolutePathToFile: Path): Promise<nodeFS.Stats> {
|
|
35
39
|
const stat = promisify(this.fs.stat);
|
|
36
40
|
|
|
37
|
-
return stat(this.
|
|
41
|
+
return stat(this.resolve(relativeOrAbsolutePathToFile).value);
|
|
38
42
|
}
|
|
39
43
|
|
|
40
44
|
public exists(relativeOrAbsolutePathToFile: Path): boolean {
|
|
41
|
-
return this.fs.existsSync(this.
|
|
45
|
+
return this.fs.existsSync(this.resolve(relativeOrAbsolutePathToFile).value);
|
|
42
46
|
}
|
|
43
47
|
|
|
44
48
|
public remove(relativeOrAbsolutePathToFileOrDirectory: Path): Promise<void> {
|
|
@@ -48,7 +52,7 @@ export class FileSystem {
|
|
|
48
52
|
readdir = promisify(this.fs.readdir),
|
|
49
53
|
rmdir = promisify(this.fs.rmdir);
|
|
50
54
|
|
|
51
|
-
const absolutePath = this.
|
|
55
|
+
const absolutePath = this.resolve(relativeOrAbsolutePathToFileOrDirectory);
|
|
52
56
|
|
|
53
57
|
return stat(absolutePath.value)
|
|
54
58
|
.then(result =>
|
|
@@ -72,7 +76,7 @@ export class FileSystem {
|
|
|
72
76
|
|
|
73
77
|
public ensureDirectoryExistsAt(relativeOrAbsolutePathToDirectory: Path): Promise<Path> {
|
|
74
78
|
|
|
75
|
-
const absolutePath = this.
|
|
79
|
+
const absolutePath = this.resolve(relativeOrAbsolutePathToDirectory);
|
|
76
80
|
|
|
77
81
|
return absolutePath.split().reduce((promisedParent, child) => {
|
|
78
82
|
return promisedParent.then(parent => new Promise((resolve, reject) => {
|
|
@@ -25,18 +25,49 @@ export class ClassLoader {
|
|
|
25
25
|
throw new ConfigurationError(d `Module ${ descriptor.moduleId } doesn't seem to export ${ descriptor.className }. Exported members include: ${ Object.keys(requiredModule).join(', ') }`)
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
const needsParameter = Boolean(descriptor.parameter);
|
|
29
|
+
|
|
30
|
+
if (needsParameter && typeof requiredType.fromJSON === 'function') {
|
|
31
|
+
return this.ensureDefined(requiredType.fromJSON(descriptor.parameter), `${ requiredType }.fromJSON(${ descriptor.parameter })`);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
if (needsParameter && requiredType.length > 1) {
|
|
35
|
+
throw new ConfigurationError(d`${ descriptor.className } exported by ${ descriptor.moduleId } must be a class with a static fromJSON(config) method or a function that accepts a single config parameter: ${ descriptor.parameter }`);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if (! needsParameter && requiredType.length > 0) {
|
|
39
|
+
throw new ConfigurationError(d`${ descriptor.className } exported by ${ descriptor.moduleId } must be a parameterless function since no config parameter is specified`);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
try {
|
|
43
|
+
return this.ensureDefined(
|
|
44
|
+
requiredType(descriptor.parameter),
|
|
45
|
+
`${ requiredType }(${ descriptor.parameter })`
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
|
|
50
|
+
if (error instanceof TypeError && error.message.includes('constructor')) {
|
|
51
|
+
return new requiredType(descriptor.parameter);
|
|
31
52
|
}
|
|
32
53
|
|
|
33
|
-
|
|
54
|
+
const errorMessage = [
|
|
55
|
+
d`${ descriptor.className } exported by ${ descriptor.moduleId } must be either:`,
|
|
56
|
+
descriptor.parameter && d`- a class with a static fromJSON(config) method`,
|
|
57
|
+
descriptor.parameter ? '- a no-arg constructor function' : '- a constructor function accepting config',
|
|
58
|
+
descriptor.parameter ? '- a no-arg function' : '- a function accepting config',
|
|
59
|
+
descriptor.parameter && d`where config is: ${ descriptor.parameter }`,
|
|
60
|
+
].filter(Boolean).join('\n');
|
|
61
|
+
|
|
62
|
+
throw new ConfigurationError(errorMessage);
|
|
34
63
|
}
|
|
64
|
+
}
|
|
35
65
|
|
|
36
|
-
|
|
37
|
-
|
|
66
|
+
private ensureDefined<T>(value: T | undefined, operation: string): T {
|
|
67
|
+
if (value === undefined || value === null) {
|
|
68
|
+
throw new ConfigurationError(`Calling ${ operation } produced ${ value }, which might indicate a configuration or programming error`);
|
|
38
69
|
}
|
|
39
70
|
|
|
40
|
-
return
|
|
71
|
+
return value;
|
|
41
72
|
}
|
|
42
73
|
}
|
|
@@ -84,10 +84,14 @@ export class Timestamp extends TinyType {
|
|
|
84
84
|
return this.value.toJSON();
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
toISOString(): string {
|
|
88
88
|
return this.value.toISOString();
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
+
toString(): string {
|
|
92
|
+
return this.toISOString();
|
|
93
|
+
}
|
|
94
|
+
|
|
91
95
|
[inspect.custom](): string {
|
|
92
96
|
return `Timestamp(${ this.value.toISOString() })`;
|
|
93
97
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { OutputStream } from '../adapter';
|
|
2
|
+
import type { FileSystem } from '../io';
|
|
2
3
|
import type { Stage } from './Stage';
|
|
3
4
|
|
|
4
5
|
/**
|
|
@@ -11,5 +12,6 @@ import type { Stage } from './Stage';
|
|
|
11
12
|
*/
|
|
12
13
|
export interface StageCrewMemberBuilderDependencies {
|
|
13
14
|
stage: Stage;
|
|
15
|
+
fileSystem: FileSystem;
|
|
14
16
|
outputStream: OutputStream;
|
|
15
17
|
}
|