@auto-engineer/narrative 1.5.1 → 1.5.3
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/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-test.log +5 -5
- package/.turbo/turbo-type-check.log +1 -1
- package/CHANGELOG.md +29 -0
- package/dist/src/transformers/model-to-narrative/ast/emit-helpers.d.ts.map +1 -1
- package/dist/src/transformers/model-to-narrative/ast/emit-helpers.js +79 -46
- package/dist/src/transformers/model-to-narrative/ast/emit-helpers.js.map +1 -1
- package/dist/src/transformers/model-to-narrative/cross-module-imports.d.ts +12 -0
- package/dist/src/transformers/model-to-narrative/cross-module-imports.d.ts.map +1 -1
- package/dist/src/transformers/model-to-narrative/cross-module-imports.js +69 -21
- package/dist/src/transformers/model-to-narrative/cross-module-imports.js.map +1 -1
- package/dist/src/transformers/model-to-narrative/generators/module-code.d.ts.map +1 -1
- package/dist/src/transformers/model-to-narrative/generators/module-code.js +10 -7
- package/dist/src/transformers/model-to-narrative/generators/module-code.js.map +1 -1
- package/dist/src/transformers/model-to-narrative/generators/types.d.ts +1 -1
- package/dist/src/transformers/model-to-narrative/generators/types.d.ts.map +1 -1
- package/dist/src/transformers/model-to-narrative/generators/types.js +4 -3
- package/dist/src/transformers/model-to-narrative/generators/types.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/src/transformers/model-to-narrative/ast/emit-helpers.ts +116 -57
- package/src/transformers/model-to-narrative/cross-module-imports.specs.ts +191 -13
- package/src/transformers/model-to-narrative/cross-module-imports.ts +87 -24
- package/src/transformers/model-to-narrative/generators/module-code.ts +11 -4
- package/src/transformers/model-to-narrative/generators/types.ts +5 -7
- package/src/transformers/model-to-narrative/modules.specs.ts +3 -2
package/.turbo/turbo-build.log
CHANGED
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
|
|
2
|
-
> @auto-engineer/narrative@1.5.
|
|
2
|
+
> @auto-engineer/narrative@1.5.3 test /home/runner/work/auto-engineer/auto-engineer/packages/narrative
|
|
3
3
|
> vitest run --reporter=dot
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
[1m[46m RUN [49m[22m [36mv3.2.4 [39m[90m/home/runner/work/auto-engineer/auto-engineer/packages/narrative[39m
|
|
7
7
|
|
|
8
|
-
[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m
|
|
8
|
+
[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m
|
|
9
9
|
|
|
10
10
|
[2m Test Files [22m [1m[32m15 passed[39m[22m[90m (15)[39m
|
|
11
|
-
[2m Tests [22m [1m[
|
|
12
|
-
[2m Start at [22m
|
|
13
|
-
[2m Duration [22m
|
|
11
|
+
[2m Tests [22m [1m[32m224 passed[39m[22m[90m (224)[39m
|
|
12
|
+
[2m Start at [22m 14:59:43
|
|
13
|
+
[2m Duration [22m 12.78s[2m (transform 2.80s, setup 0ms, collect 15.73s, tests 11.01s, environment 4ms, prepare 4.50s)[22m
|
|
14
14
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,34 @@
|
|
|
1
1
|
# @auto-engineer/flow
|
|
2
2
|
|
|
3
|
+
## 1.5.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`6a7fa7f`](https://github.com/BeOnAuto/auto-engineer/commit/6a7fa7f848f45bad2b2e97e39404155d8987623d) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - Fixed Date fields not being properly converted when nested inside objects and arrays
|
|
8
|
+
|
|
9
|
+
- [`d7f22bb`](https://github.com/BeOnAuto/auto-engineer/commit/d7f22bbe745dc14ebd273d4ffa24ffe62adb95c0) Thanks [@github-actions[bot]](https://github.com/github-actions%5Bbot%5D)! - - **narrative**: export cross-module types and improve Date field handling
|
|
10
|
+
- **global**: version packages
|
|
11
|
+
- **global**: add changeset
|
|
12
|
+
- Updated dependencies [[`6a7fa7f`](https://github.com/BeOnAuto/auto-engineer/commit/6a7fa7f848f45bad2b2e97e39404155d8987623d), [`d7f22bb`](https://github.com/BeOnAuto/auto-engineer/commit/d7f22bbe745dc14ebd273d4ffa24ffe62adb95c0)]:
|
|
13
|
+
- @auto-engineer/file-store@1.5.3
|
|
14
|
+
- @auto-engineer/id@1.5.3
|
|
15
|
+
- @auto-engineer/message-bus@1.5.3
|
|
16
|
+
|
|
17
|
+
## 1.5.2
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- [`02f70b8`](https://github.com/BeOnAuto/auto-engineer/commit/02f70b8e3be0655ab340c53e2ac2082a3ddc10ef) Thanks [@github-actions[bot]](https://github.com/github-actions%5Bbot%5D)! - - **narrative**: use browser-compatible path utilities in cross-module-imports
|
|
22
|
+
- **global**: version packages
|
|
23
|
+
- **global**: add changeset
|
|
24
|
+
|
|
25
|
+
- [`e5883d0`](https://github.com/BeOnAuto/auto-engineer/commit/e5883d0db038d1f95645a46ce528cbd153bde277) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - Exported cross-module types for better integration between modules
|
|
26
|
+
- Improved Date field handling in the narrative package
|
|
27
|
+
- Updated dependencies [[`02f70b8`](https://github.com/BeOnAuto/auto-engineer/commit/02f70b8e3be0655ab340c53e2ac2082a3ddc10ef), [`e5883d0`](https://github.com/BeOnAuto/auto-engineer/commit/e5883d0db038d1f95645a46ce528cbd153bde277)]:
|
|
28
|
+
- @auto-engineer/file-store@1.5.2
|
|
29
|
+
- @auto-engineer/id@1.5.2
|
|
30
|
+
- @auto-engineer/message-bus@1.5.2
|
|
31
|
+
|
|
3
32
|
## 1.5.1
|
|
4
33
|
|
|
5
34
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit-helpers.d.ts","sourceRoot":"","sources":["../../../../../src/transformers/model-to-narrative/ast/emit-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAEnC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"emit-helpers.d.ts","sourceRoot":"","sources":["../../../../../src/transformers/model-to-narrative/ast/emit-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAEnC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAsGD;;GAEG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,cAAc,YAAY,CAAC,EAC/B,CAAC,EAAE,IAAI,CAAC,WAAW,EACnB,CAAC,EAAE,OAAO,EACV,QAAQ,CAAC,EAAE,aAAa,GACvB,IAAI,CAAC,UAAU,CAiCjB;AAiED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,cAAc,YAAY,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,QAAQ,CAiB7G"}
|
|
@@ -1,9 +1,76 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
const ARRAY_TYPE_REGEX = /^Array<(.+)>$/;
|
|
2
|
+
const VALID_IDENTIFIER_REGEX = /^[A-Za-z_]\w*$/;
|
|
3
|
+
function createDateNewExpr(f, dateStr) {
|
|
4
|
+
return f.createNewExpression(f.createIdentifier('Date'), undefined, [f.createStringLiteral(dateStr)]);
|
|
5
|
+
}
|
|
6
|
+
function parseObjectTypeFields(typeStr) {
|
|
7
|
+
const trimmed = typeStr.trim();
|
|
8
|
+
if (!trimmed.startsWith('{') || !trimmed.endsWith('}')) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
const inner = trimmed.slice(1, -1).trim();
|
|
12
|
+
if (inner.length === 0) {
|
|
13
|
+
return [];
|
|
14
|
+
}
|
|
15
|
+
const result = [];
|
|
16
|
+
const parts = splitTopLevel(inner, ',');
|
|
17
|
+
for (const p of parts) {
|
|
18
|
+
const colonIdx = p.indexOf(':');
|
|
19
|
+
if (colonIdx === -1)
|
|
20
|
+
continue;
|
|
21
|
+
const name = p.slice(0, colonIdx).trim();
|
|
22
|
+
const type = p.slice(colonIdx + 1).trim();
|
|
23
|
+
if (name.length === 0 || type.length === 0)
|
|
24
|
+
continue;
|
|
25
|
+
result.push({ name, type });
|
|
26
|
+
}
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
function parseObjectTypeInfo(typeStr) {
|
|
30
|
+
const fields = parseObjectTypeFields(typeStr);
|
|
31
|
+
if (!fields)
|
|
32
|
+
return undefined;
|
|
33
|
+
const result = {};
|
|
34
|
+
for (const { name, type } of fields) {
|
|
35
|
+
result[name] = type;
|
|
36
|
+
}
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
function parseArrayElementType(typeStr) {
|
|
40
|
+
const match = ARRAY_TYPE_REGEX.exec(typeStr.trim());
|
|
41
|
+
return match ? match[1] : undefined;
|
|
42
|
+
}
|
|
43
|
+
function convertDateValue(f, x) {
|
|
44
|
+
if (typeof x === 'string')
|
|
45
|
+
return createDateNewExpr(f, x);
|
|
46
|
+
if (x instanceof Date)
|
|
47
|
+
return createDateNewExpr(f, x.toISOString());
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
function convertArrayField(ts, f, arr, fieldType) {
|
|
51
|
+
const elementType = parseArrayElementType(fieldType);
|
|
52
|
+
if (elementType === 'Date') {
|
|
53
|
+
return f.createArrayLiteralExpression(arr.map((elem) => convertDateValue(f, elem) ?? jsonToExpr(ts, f, elem)));
|
|
54
|
+
}
|
|
55
|
+
const elementTypeInfo = elementType ? parseObjectTypeInfo(elementType) : undefined;
|
|
56
|
+
return f.createArrayLiteralExpression(arr.map((elem) => jsonToExpr(ts, f, elem, elementTypeInfo)));
|
|
57
|
+
}
|
|
58
|
+
function convertObjectField(ts, f, obj, fieldType) {
|
|
59
|
+
const nestedTypeInfo = parseObjectTypeInfo(fieldType);
|
|
60
|
+
return jsonToExpr(ts, f, obj, nestedTypeInfo);
|
|
61
|
+
}
|
|
62
|
+
function computeFieldExpr(ts, f, x, fieldType, typeInfo) {
|
|
63
|
+
if (fieldType === 'Date') {
|
|
64
|
+
const dateExpr = convertDateValue(f, x);
|
|
65
|
+
if (dateExpr)
|
|
66
|
+
return dateExpr;
|
|
67
|
+
}
|
|
68
|
+
if (fieldType && typeof x === 'object' && x !== null) {
|
|
69
|
+
if (Array.isArray(x))
|
|
70
|
+
return convertArrayField(ts, f, x, fieldType);
|
|
71
|
+
return convertObjectField(ts, f, x, fieldType);
|
|
72
|
+
}
|
|
73
|
+
return jsonToExpr(ts, f, x, typeInfo);
|
|
7
74
|
}
|
|
8
75
|
/**
|
|
9
76
|
* Emit a TS expression from a plain JSON-like value with optional type information for Date handling.
|
|
@@ -23,34 +90,13 @@ export function jsonToExpr(ts, f, v, typeInfo) {
|
|
|
23
90
|
return v ? f.createTrue() : f.createFalse();
|
|
24
91
|
case 'object': {
|
|
25
92
|
if (v instanceof Date) {
|
|
26
|
-
|
|
27
|
-
return f.createNewExpression(f.createIdentifier('Date'), undefined, [f.createStringLiteral(v.toISOString())]);
|
|
93
|
+
return createDateNewExpr(f, v.toISOString());
|
|
28
94
|
}
|
|
29
95
|
if (Array.isArray(v)) {
|
|
30
96
|
return f.createArrayLiteralExpression(v.map((x) => jsonToExpr(ts, f, x, typeInfo)));
|
|
31
97
|
}
|
|
32
98
|
const entries = Object.entries(v);
|
|
33
|
-
return f.createObjectLiteralExpression(entries.map(([k, x]) =>
|
|
34
|
-
// Check if this field should be a Date
|
|
35
|
-
const fieldType = typeInfo?.[k];
|
|
36
|
-
let valueExpr;
|
|
37
|
-
if (fieldType === 'Date' && typeof x === 'string' && isISODateString(x)) {
|
|
38
|
-
// Generate new Date('...') for Date fields
|
|
39
|
-
valueExpr = f.createNewExpression(f.createIdentifier('Date'), undefined, [f.createStringLiteral(x)]);
|
|
40
|
-
}
|
|
41
|
-
else if (fieldType === 'Date' && x instanceof Date) {
|
|
42
|
-
// Generate new Date('...') for Date objects
|
|
43
|
-
valueExpr = f.createNewExpression(f.createIdentifier('Date'), undefined, [
|
|
44
|
-
f.createStringLiteral(x.toISOString()),
|
|
45
|
-
]);
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
valueExpr = jsonToExpr(ts, f, x, typeInfo);
|
|
49
|
-
}
|
|
50
|
-
return f.createPropertyAssignment(
|
|
51
|
-
// use identifier if safe, else quoted string
|
|
52
|
-
/^[A-Za-z_]\w*$/.test(k) ? f.createIdentifier(k) : f.createStringLiteral(k), valueExpr);
|
|
53
|
-
}), false);
|
|
99
|
+
return f.createObjectLiteralExpression(entries.map(([k, x]) => f.createPropertyAssignment(VALID_IDENTIFIER_REGEX.test(k) ? f.createIdentifier(k) : f.createStringLiteral(k), computeFieldExpr(ts, f, x, typeInfo?.[k], typeInfo))), false);
|
|
54
100
|
}
|
|
55
101
|
default:
|
|
56
102
|
return f.createIdentifier('undefined');
|
|
@@ -79,7 +125,7 @@ function createPrimitiveTypeNode(ts, f, trimmed) {
|
|
|
79
125
|
* Creates array type node if the type is Array<...>
|
|
80
126
|
*/
|
|
81
127
|
function createArrayTypeNode(ts, f, trimmed) {
|
|
82
|
-
const arrayMatch =
|
|
128
|
+
const arrayMatch = ARRAY_TYPE_REGEX.exec(trimmed);
|
|
83
129
|
if (arrayMatch) {
|
|
84
130
|
const inner = typeFromString(ts, f, arrayMatch[1]);
|
|
85
131
|
return f.createArrayTypeNode(inner);
|
|
@@ -90,23 +136,10 @@ function createArrayTypeNode(ts, f, trimmed) {
|
|
|
90
136
|
* Creates object literal type node for {prop: type, ...} syntax
|
|
91
137
|
*/
|
|
92
138
|
function createObjectLiteralTypeNode(ts, f, trimmed) {
|
|
93
|
-
|
|
139
|
+
const fields = parseObjectTypeFields(trimmed);
|
|
140
|
+
if (!fields)
|
|
94
141
|
return null;
|
|
95
|
-
}
|
|
96
|
-
const inner = trimmed.slice(1, -1).trim();
|
|
97
|
-
const members = [];
|
|
98
|
-
if (inner.length > 0) {
|
|
99
|
-
const parts = splitTopLevel(inner, ',');
|
|
100
|
-
for (const p of parts) {
|
|
101
|
-
const [rawName, ...rest] = p.split(':');
|
|
102
|
-
const name = rawName.trim();
|
|
103
|
-
const rhs = rest.join(':').trim();
|
|
104
|
-
if (name.length === 0 || rhs.length === 0)
|
|
105
|
-
continue;
|
|
106
|
-
const typeNode = typeFromString(ts, f, rhs);
|
|
107
|
-
members.push(f.createPropertySignature(undefined, /^[A-Za-z_]\w*$/.test(name) ? f.createIdentifier(name) : f.createStringLiteral(name), undefined, typeNode));
|
|
108
|
-
}
|
|
109
|
-
}
|
|
142
|
+
const members = fields.map(({ name, type }) => f.createPropertySignature(undefined, VALID_IDENTIFIER_REGEX.test(name) ? f.createIdentifier(name) : f.createStringLiteral(name), undefined, typeFromString(ts, f, type)));
|
|
110
143
|
return f.createTypeLiteralNode(members);
|
|
111
144
|
}
|
|
112
145
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit-helpers.js","sourceRoot":"","sources":["../../../../../src/transformers/model-to-narrative/ast/emit-helpers.ts"],"names":[],"mappings":"AASA
|
|
1
|
+
{"version":3,"file":"emit-helpers.js","sourceRoot":"","sources":["../../../../../src/transformers/model-to-narrative/ast/emit-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import type { Model, Module } from '../../index';
|
|
2
2
|
import type { CrossModuleImport } from './types';
|
|
3
3
|
export type { CrossModuleImport };
|
|
4
|
+
/**
|
|
5
|
+
* Computes cross-module imports for a single module.
|
|
6
|
+
* Returns the list of imports needed (with relative paths).
|
|
7
|
+
*/
|
|
4
8
|
export declare function computeCrossModuleImports(module: Module, allModules: Module[], model: Model): CrossModuleImport[];
|
|
9
|
+
/**
|
|
10
|
+
* Computes cross-module imports for all modules and derives which types need to be exported.
|
|
11
|
+
* Returns both the imports per module and the exports per module in a single pass.
|
|
12
|
+
*/
|
|
13
|
+
export declare function computeAllCrossModuleDependencies(modules: Module[], model: Model): {
|
|
14
|
+
importsPerModule: Map<string, CrossModuleImport[]>;
|
|
15
|
+
exportsPerModule: Map<string, Set<string>>;
|
|
16
|
+
};
|
|
5
17
|
export declare function resolveRelativeImport(fromPath: string, toPath: string): string;
|
|
6
18
|
//# sourceMappingURL=cross-module-imports.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cross-module-imports.d.ts","sourceRoot":"","sources":["../../../../src/transformers/model-to-narrative/cross-module-imports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElC,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"cross-module-imports.d.ts","sourceRoot":"","sources":["../../../../src/transformers/model-to-narrative/cross-module-imports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElC;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,iBAAiB,EAAE,CAMjH;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,MAAM,EAAE,EACjB,KAAK,EAAE,KAAK,GACX;IACD,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACnD,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CAC5C,CA2BA;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAc9E"}
|
|
@@ -1,48 +1,96 @@
|
|
|
1
1
|
import { basename, dirname, extname, join, relative } from '../../loader/fs-path.js';
|
|
2
2
|
import { parseMessageKey, sortImportsBySource, toMessageKey } from './ordering.js';
|
|
3
3
|
import { collectMessageKeysFromNarratives } from './spec-traversal.js';
|
|
4
|
+
/**
|
|
5
|
+
* Computes cross-module imports for a single module.
|
|
6
|
+
* Returns the list of imports needed (with relative paths).
|
|
7
|
+
*/
|
|
4
8
|
export function computeCrossModuleImports(module, allModules, model) {
|
|
5
|
-
|
|
9
|
+
const dependencyMap = computeModuleDependencies(module, allModules, model);
|
|
10
|
+
if (!dependencyMap) {
|
|
6
11
|
return [];
|
|
7
12
|
}
|
|
13
|
+
return convertToImports(module.sourceFile, dependencyMap);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Computes cross-module imports for all modules and derives which types need to be exported.
|
|
17
|
+
* Returns both the imports per module and the exports per module in a single pass.
|
|
18
|
+
*/
|
|
19
|
+
export function computeAllCrossModuleDependencies(modules, model) {
|
|
20
|
+
const importsPerModule = new Map();
|
|
21
|
+
const exportsPerModule = new Map();
|
|
22
|
+
for (const module of modules) {
|
|
23
|
+
const dependencyMap = computeModuleDependencies(module, modules, model);
|
|
24
|
+
if (!dependencyMap) {
|
|
25
|
+
importsPerModule.set(module.sourceFile, []);
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
// Convert to imports with relative paths
|
|
29
|
+
importsPerModule.set(module.sourceFile, convertToImports(module.sourceFile, dependencyMap));
|
|
30
|
+
// Track which types need to be exported from each declaring module
|
|
31
|
+
for (const [declaringSourceFile, typeNames] of dependencyMap) {
|
|
32
|
+
if (!exportsPerModule.has(declaringSourceFile)) {
|
|
33
|
+
exportsPerModule.set(declaringSourceFile, new Set());
|
|
34
|
+
}
|
|
35
|
+
for (const typeName of typeNames) {
|
|
36
|
+
exportsPerModule.get(declaringSourceFile).add(typeName);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return { importsPerModule, exportsPerModule };
|
|
41
|
+
}
|
|
42
|
+
export function resolveRelativeImport(fromPath, toPath) {
|
|
43
|
+
const fromDir = dirname(fromPath);
|
|
44
|
+
const toDir = dirname(toPath);
|
|
45
|
+
const toFile = basename(toPath, extname(toPath));
|
|
46
|
+
const relativePath = relative(fromDir, toDir);
|
|
47
|
+
if (relativePath === '') {
|
|
48
|
+
return `./${toFile}`;
|
|
49
|
+
}
|
|
50
|
+
if (!relativePath.startsWith('.')) {
|
|
51
|
+
return `./${relativePath}/${toFile}`;
|
|
52
|
+
}
|
|
53
|
+
return join(relativePath, toFile);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Core logic: computes which types a module needs from other modules.
|
|
57
|
+
* Returns a map of declaringModuleSourceFile -> typeNames[], or null if no dependencies.
|
|
58
|
+
*/
|
|
59
|
+
function computeModuleDependencies(module, allModules, model) {
|
|
60
|
+
if (module.isDerived) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
8
63
|
const declaredKeys = new Set(module.declares.messages.map((m) => toMessageKey(m.kind, m.name)));
|
|
9
64
|
const usedKeys = collectUsedMessageKeysForModule(module, model);
|
|
10
65
|
const neededKeys = new Set([...usedKeys].filter((k) => !declaredKeys.has(k)));
|
|
11
66
|
if (neededKeys.size === 0) {
|
|
12
|
-
return
|
|
67
|
+
return null;
|
|
13
68
|
}
|
|
14
|
-
const
|
|
69
|
+
const dependencyMap = new Map();
|
|
15
70
|
for (const msgKey of neededKeys) {
|
|
16
71
|
const { name } = parseMessageKey(msgKey);
|
|
17
72
|
const declaringModule = findDeclaringModule(msgKey, allModules, module);
|
|
18
73
|
if (declaringModule) {
|
|
19
74
|
const modulePath = declaringModule.sourceFile;
|
|
20
|
-
if (!
|
|
21
|
-
|
|
75
|
+
if (!dependencyMap.has(modulePath)) {
|
|
76
|
+
dependencyMap.set(modulePath, []);
|
|
22
77
|
}
|
|
23
|
-
|
|
78
|
+
dependencyMap.get(modulePath).push(name);
|
|
24
79
|
}
|
|
25
80
|
}
|
|
81
|
+
return dependencyMap.size > 0 ? dependencyMap : null;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Converts a dependency map (absolute paths) to CrossModuleImport[] (relative paths).
|
|
85
|
+
*/
|
|
86
|
+
function convertToImports(fromSourceFile, dependencyMap) {
|
|
26
87
|
const imports = [];
|
|
27
|
-
for (const [modulePath, typeNames] of
|
|
28
|
-
const relativePath = resolveRelativeImport(
|
|
88
|
+
for (const [modulePath, typeNames] of dependencyMap) {
|
|
89
|
+
const relativePath = resolveRelativeImport(fromSourceFile, modulePath);
|
|
29
90
|
imports.push({ fromPath: relativePath, typeNames });
|
|
30
91
|
}
|
|
31
92
|
return sortImportsBySource(imports);
|
|
32
93
|
}
|
|
33
|
-
export function resolveRelativeImport(fromPath, toPath) {
|
|
34
|
-
const fromDir = dirname(fromPath);
|
|
35
|
-
const toDir = dirname(toPath);
|
|
36
|
-
const toFile = basename(toPath, extname(toPath));
|
|
37
|
-
const relativePath = relative(fromDir, toDir);
|
|
38
|
-
if (relativePath === '') {
|
|
39
|
-
return `./${toFile}`;
|
|
40
|
-
}
|
|
41
|
-
if (!relativePath.startsWith('.')) {
|
|
42
|
-
return `./${relativePath}/${toFile}`;
|
|
43
|
-
}
|
|
44
|
-
return join(relativePath, toFile);
|
|
45
|
-
}
|
|
46
94
|
function collectUsedMessageKeysForModule(module, model) {
|
|
47
95
|
const narrativeIds = new Set(module.contains.narrativeIds);
|
|
48
96
|
const narratives = model.narratives.filter((n) => n.id && narrativeIds.has(n.id));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cross-module-imports.js","sourceRoot":"","sources":["../../../../src/transformers/model-to-narrative/cross-module-imports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EAAE,gCAAgC,EAAE,MAAM,kBAAkB,CAAC;AAKpE,MAAM,UAAU,yBAAyB,CAAC,MAAc,EAAE,UAAoB,EAAE,KAAY;IAC1F,
|
|
1
|
+
{"version":3,"file":"cross-module-imports.js","sourceRoot":"","sources":["../../../../src/transformers/model-to-narrative/cross-module-imports.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-code.d.ts","sourceRoot":"","sources":["../../../../../src/transformers/model-to-narrative/generators/module-code.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAU,MAAM,gBAAgB,CAAC;AAKpD,OAAO,KAAK,EAAqB,aAAa,EAAE,MAAM,UAAU,CAAC;AAOjE,UAAU,yBAAyB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,yBAAyB,GAAG,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"module-code.d.ts","sourceRoot":"","sources":["../../../../../src/transformers/model-to-narrative/generators/module-code.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAU,MAAM,gBAAgB,CAAC;AAKpD,OAAO,KAAK,EAAqB,aAAa,EAAE,MAAM,UAAU,CAAC;AAOjE,UAAU,yBAAyB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,yBAAyB,GAAG,aAAa,EAAE,CAoBrG"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import ts from 'typescript';
|
|
2
2
|
import { deriveModules } from '../../narrative-to-model/derive-modules.js';
|
|
3
3
|
import { analyzeCodeUsage } from '../analysis/usage.js';
|
|
4
|
-
import {
|
|
4
|
+
import { computeAllCrossModuleDependencies } from '../cross-module-imports.js';
|
|
5
5
|
import { sortFilesByPath } from '../ordering.js';
|
|
6
6
|
import { extractTypeIntegrationNames } from '../utils/integration-extractor.js';
|
|
7
7
|
import { integrationNameToPascalCase } from '../utils/strings.js';
|
|
@@ -10,10 +10,13 @@ import { ALL_FLOW_FUNCTION_NAMES, buildImports } from './imports.js';
|
|
|
10
10
|
import { buildTypeAliases } from './types.js';
|
|
11
11
|
export function generateAllModulesCode(model, opts) {
|
|
12
12
|
const modules = model.modules && model.modules.length > 0 ? model.modules : deriveModules(model.narratives, model.messages);
|
|
13
|
+
// Compute all cross-module dependencies in a single pass
|
|
14
|
+
const { importsPerModule, exportsPerModule } = computeAllCrossModuleDependencies(modules, model);
|
|
13
15
|
const files = [];
|
|
14
16
|
for (const module of modules) {
|
|
15
|
-
const crossModuleImports =
|
|
16
|
-
const
|
|
17
|
+
const crossModuleImports = importsPerModule.get(module.sourceFile) ?? [];
|
|
18
|
+
const exportedTypes = exportsPerModule.get(module.sourceFile);
|
|
19
|
+
const code = generateModuleCode(module, model, opts, crossModuleImports, exportedTypes);
|
|
17
20
|
files.push({
|
|
18
21
|
path: module.sourceFile,
|
|
19
22
|
code,
|
|
@@ -31,7 +34,7 @@ function getNarrativesForModule(module, model) {
|
|
|
31
34
|
const narrativeIds = new Set(module.contains.narrativeIds);
|
|
32
35
|
return model.narratives.filter((n) => n.id && narrativeIds.has(n.id));
|
|
33
36
|
}
|
|
34
|
-
function generateModuleCode(module, model, opts, crossModuleImports) {
|
|
37
|
+
function generateModuleCode(module, model, opts, crossModuleImports, exportedTypes) {
|
|
35
38
|
const f = ts.factory;
|
|
36
39
|
const narratives = getNarrativesForModule(module, model);
|
|
37
40
|
const declaredMessageKeys = new Set(module.declares.messages.map((m) => `${m.kind}:${m.name}`));
|
|
@@ -70,11 +73,11 @@ function generateModuleCode(module, model, opts, crossModuleImports) {
|
|
|
70
73
|
const hasEmptyFlowSlices = narratives.length === 0 || narratives.every((flow) => flow.slices.length === 0);
|
|
71
74
|
return isUsedInFlow || hasEmptyFlowSlices;
|
|
72
75
|
});
|
|
73
|
-
const statements = buildStatements(ts, opts, usedMessages, usedTypeIntegrationNames, usedValueIntegrationNames, usedFlowFunctionNames, narratives, crossModuleImports);
|
|
76
|
+
const statements = buildStatements(ts, opts, usedMessages, usedTypeIntegrationNames, usedValueIntegrationNames, usedFlowFunctionNames, narratives, crossModuleImports, exportedTypes);
|
|
74
77
|
const file = f.createSourceFile(statements, f.createToken(ts.SyntaxKind.EndOfFileToken), ts.NodeFlags.None);
|
|
75
78
|
return printer.printFile(file);
|
|
76
79
|
}
|
|
77
|
-
function buildStatements(tsModule, opts, messages, typeIntegrationNames, valueIntegrationNames, usedFlowFunctionNames, flows, crossModuleImports) {
|
|
80
|
+
function buildStatements(tsModule, opts, messages, typeIntegrationNames, valueIntegrationNames, usedFlowFunctionNames, flows, crossModuleImports, exportedTypes) {
|
|
78
81
|
const f = tsModule.factory;
|
|
79
82
|
const statements = [];
|
|
80
83
|
const imports = buildImports(tsModule, opts, messages, typeIntegrationNames, valueIntegrationNames, usedFlowFunctionNames);
|
|
@@ -101,7 +104,7 @@ function buildStatements(tsModule, opts, messages, typeIntegrationNames, valueIn
|
|
|
101
104
|
required: field.required,
|
|
102
105
|
})),
|
|
103
106
|
}));
|
|
104
|
-
statements.push(...buildTypeAliases(tsModule, adaptedMessages));
|
|
107
|
+
statements.push(...buildTypeAliases(tsModule, adaptedMessages, exportedTypes));
|
|
105
108
|
for (const flow of flows) {
|
|
106
109
|
statements.push(...buildFlowStatements(tsModule, flow, messages));
|
|
107
110
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-code.js","sourceRoot":"","sources":["../../../../../src/transformers/model-to-narrative/generators/module-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"module-code.js","sourceRoot":"","sources":["../../../../../src/transformers/model-to-narrative/generators/module-code.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,6 @@ type Message = {
|
|
|
8
8
|
required: boolean;
|
|
9
9
|
}[];
|
|
10
10
|
};
|
|
11
|
-
export declare function buildTypeAliases(ts: typeof tsNS, messages: Message[]): tsNS.Statement[];
|
|
11
|
+
export declare function buildTypeAliases(ts: typeof tsNS, messages: Message[], exportedTypes?: Set<string>): tsNS.Statement[];
|
|
12
12
|
export {};
|
|
13
13
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/transformers/model-to-narrative/generators/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAGnC,KAAK,OAAO,GAAG;IACb,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;CAC7D,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,OAAO,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/transformers/model-to-narrative/generators/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAGnC,KAAK,OAAO,GAAG;IACb,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;CAC7D,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,OAAO,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAmCpH"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { typeFromString } from '../ast/emit-helpers.js';
|
|
2
|
-
export function buildTypeAliases(ts, messages) {
|
|
2
|
+
export function buildTypeAliases(ts, messages, exportedTypes) {
|
|
3
3
|
const f = ts.factory;
|
|
4
4
|
const mkK = (s) => f.createLiteralTypeNode(f.createStringLiteral(s, true));
|
|
5
5
|
return messages.map((m) => {
|
|
@@ -16,8 +16,9 @@ export function buildTypeAliases(ts, messages) {
|
|
|
16
16
|
const name = f.createIdentifier(m.name);
|
|
17
17
|
const baseTypeName = m.type === 'event' ? 'Event' : m.type === 'command' ? 'Command' : m.type === 'query' ? 'Query' : 'State';
|
|
18
18
|
const rhs = f.createTypeReferenceNode(baseTypeName, typeArgs);
|
|
19
|
-
|
|
20
|
-
name
|
|
19
|
+
// Add export modifier if this type is imported by other modules
|
|
20
|
+
const modifiers = exportedTypes?.has(m.name) ? [f.createModifier(ts.SyntaxKind.ExportKeyword)] : undefined;
|
|
21
|
+
return f.createTypeAliasDeclaration(modifiers, name, [], rhs);
|
|
21
22
|
});
|
|
22
23
|
}
|
|
23
24
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/transformers/model-to-narrative/generators/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAQrD,MAAM,UAAU,gBAAgB,CAAC,EAAe,EAAE,QAAmB;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/transformers/model-to-narrative/generators/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAQrD,MAAM,UAAU,gBAAgB,CAAC,EAAe,EAAE,QAAmB,EAAE,aAA2B;IAChG,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;IAErB,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAEnF,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACxB,MAAM,QAAQ,GAAoB;YAChC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YACX,sBAAsB;YACtB,CAAC,GAAG,EAAE;gBACJ,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACnC,CAAC,CAAC,uBAAuB,CACvB,SAAS,EACT,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,EACtG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EACrE,cAAc,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAChC,CACF,CAAC;gBACF,MAAM,GAAG,GAAG,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;gBAC7C,6BAA6B;gBAC7B,OAAO,GAAG,CAAC;YACb,CAAC,CAAC,EAAE;SACL,CAAC;QAEF,MAAM,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAExC,MAAM,YAAY,GAChB,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC3G,MAAM,GAAG,GAAG,CAAC,CAAC,uBAAuB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAE9D,gEAAgE;QAChE,MAAM,SAAS,GAAG,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE3G,OAAO,CAAC,CAAC,0BAA0B,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC"}
|