@auto-engineer/server-generator-apollo-emmett 0.9.3 → 0.9.5
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 +16 -0
- package/dist/src/codegen/extract/data-sink.d.ts.map +1 -1
- package/dist/src/codegen/extract/data-sink.js +2 -2
- package/dist/src/codegen/extract/data-sink.js.map +1 -1
- package/dist/src/codegen/extract/states.d.ts.map +1 -1
- package/dist/src/codegen/extract/states.js +15 -5
- package/dist/src/codegen/extract/states.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/src/codegen/extract/data-sink.ts +2 -3
- package/src/codegen/extract/states.ts +25 -5
package/package.json
CHANGED
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"graphql-type-json": "^0.3.2",
|
|
29
29
|
"uuid": "^10.0.0",
|
|
30
30
|
"web-streams-polyfill": "^4.1.0",
|
|
31
|
-
"@auto-engineer/
|
|
32
|
-
"@auto-engineer/
|
|
31
|
+
"@auto-engineer/message-bus": "0.9.5",
|
|
32
|
+
"@auto-engineer/flow": "0.9.5"
|
|
33
33
|
},
|
|
34
34
|
"publishConfig": {
|
|
35
35
|
"access": "public"
|
|
@@ -37,9 +37,9 @@
|
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@types/ejs": "^3.1.5",
|
|
39
39
|
"@types/fs-extra": "^11.0.4",
|
|
40
|
-
"@auto-engineer/cli": "0.9.
|
|
40
|
+
"@auto-engineer/cli": "0.9.5"
|
|
41
41
|
},
|
|
42
|
-
"version": "0.9.
|
|
42
|
+
"version": "0.9.5",
|
|
43
43
|
"scripts": {
|
|
44
44
|
"generate:server": "tsx src/cli/index.ts",
|
|
45
45
|
"build": "tsc && tsx ../../scripts/fix-esm-imports.ts && rm -rf dist/src/codegen/templates && mkdir -p dist/src/codegen && cp -r src/codegen/templates dist/src/codegen/templates && cp src/server.ts dist/src && cp -r src/utils dist/src && cp -r src/domain dist/src",
|
|
@@ -93,11 +93,10 @@ export function getStreamFromSink(slice: Slice): { streamPattern?: string; strea
|
|
|
93
93
|
if (!('server' in slice)) return {};
|
|
94
94
|
const gwtSpecs = extractGwtSpecs(slice);
|
|
95
95
|
const exampleData = extractExampleDataFromSpecs(slice, gwtSpecs);
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
if (!Array.isArray(serverData)) {
|
|
96
|
+
if (!('server' in slice) || slice.server == null || !('data' in slice.server) || !Array.isArray(slice.server.data)) {
|
|
99
97
|
return {};
|
|
100
98
|
}
|
|
99
|
+
const serverData = slice.server.data;
|
|
101
100
|
|
|
102
101
|
for (const item of serverData) {
|
|
103
102
|
const result = processStreamSink(item, exampleData);
|
|
@@ -2,6 +2,13 @@ import { Slice } from '@auto-engineer/flow';
|
|
|
2
2
|
import { Message, MessageDefinition } from '../types';
|
|
3
3
|
import { extractFieldsFromMessage } from './fields';
|
|
4
4
|
|
|
5
|
+
interface DataItem {
|
|
6
|
+
origin?: unknown;
|
|
7
|
+
target?: {
|
|
8
|
+
name?: string;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
|
|
5
12
|
function createStateMessage(stateName: string, allMessages: MessageDefinition[]): Message {
|
|
6
13
|
return {
|
|
7
14
|
type: stateName,
|
|
@@ -9,19 +16,31 @@ function createStateMessage(stateName: string, allMessages: MessageDefinition[])
|
|
|
9
16
|
};
|
|
10
17
|
}
|
|
11
18
|
|
|
19
|
+
function hasServerData(slice: Slice): slice is Slice & { server: { data: unknown[] } } {
|
|
20
|
+
return (
|
|
21
|
+
'server' in slice &&
|
|
22
|
+
Boolean(slice.server) &&
|
|
23
|
+
'data' in slice.server &&
|
|
24
|
+
Array.isArray(slice.server.data) &&
|
|
25
|
+
slice.server.data.length > 0
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
|
|
12
29
|
export function extractStatesFromTarget(slice: Slice, allMessages: MessageDefinition[]): Message[] {
|
|
13
|
-
if (!(
|
|
30
|
+
if (!hasServerData(slice)) {
|
|
14
31
|
return [];
|
|
15
32
|
}
|
|
16
33
|
|
|
17
|
-
const targets = slice.server.data
|
|
34
|
+
const targets = slice.server.data
|
|
35
|
+
.map((d) => (d as DataItem).target?.name)
|
|
36
|
+
.filter((name): name is string => typeof name === 'string');
|
|
18
37
|
const uniqueTargets = Array.from(new Set(targets));
|
|
19
38
|
|
|
20
39
|
return uniqueTargets.map((name) => createStateMessage(name, allMessages));
|
|
21
40
|
}
|
|
22
41
|
|
|
23
42
|
export function extractStatesFromData(slice: Slice, allMessages: MessageDefinition[]): Message[] {
|
|
24
|
-
if (!(
|
|
43
|
+
if (!hasServerData(slice)) {
|
|
25
44
|
return [];
|
|
26
45
|
}
|
|
27
46
|
|
|
@@ -29,11 +48,12 @@ export function extractStatesFromData(slice: Slice, allMessages: MessageDefiniti
|
|
|
29
48
|
const seenStates = new Set<string>();
|
|
30
49
|
|
|
31
50
|
for (const dataItem of slice.server.data) {
|
|
32
|
-
|
|
51
|
+
const item = dataItem as DataItem;
|
|
52
|
+
if (!('origin' in item) || typeof item.target?.name !== 'string') {
|
|
33
53
|
continue;
|
|
34
54
|
}
|
|
35
55
|
|
|
36
|
-
const stateName =
|
|
56
|
+
const stateName = item.target.name;
|
|
37
57
|
if (seenStates.has(stateName)) {
|
|
38
58
|
continue;
|
|
39
59
|
}
|