create-auto-app 0.9.7 → 0.9.9
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/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { on, dispatch, fold } from '@auto-engineer/cli';
|
|
1
|
+
import { autoConfig, on, dispatch, fold } from '@auto-engineer/cli';
|
|
2
2
|
import type { Command, Event } from '@auto-engineer/message-bus';
|
|
3
3
|
import { type ExportSchemaCommand, type SchemaExportedEvent, type SchemaExportFailedEvent } from '@auto-engineer/flow';
|
|
4
4
|
import {
|
|
@@ -31,8 +31,7 @@ import {
|
|
|
31
31
|
} from '@auto-engineer/frontend-implementer';
|
|
32
32
|
import { type GenerateClientCommand } from '@auto-engineer/frontend-generator-react-graphql';
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
export default {
|
|
34
|
+
export default autoConfig({
|
|
36
35
|
plugins: [
|
|
37
36
|
'@auto-engineer/server-checks',
|
|
38
37
|
'@auto-engineer/design-system-importer',
|
|
@@ -44,144 +43,90 @@ export default {
|
|
|
44
43
|
'@auto-engineer/frontend-generator-react-graphql',
|
|
45
44
|
'@auto-engineer/server-implementer',
|
|
46
45
|
],
|
|
47
|
-
|
|
48
46
|
aliases: {
|
|
49
47
|
// Resolve command name conflicts between packages
|
|
50
48
|
// 'test:types': checkTypesCommandHandler,
|
|
51
49
|
},
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
},
|
|
79
|
-
);
|
|
80
|
-
|
|
81
|
-
// State: Track last error
|
|
82
|
-
const lastError = fold<any, Event>('*', (state = null, event) => {
|
|
83
|
-
if (event.type.endsWith('Failed') || event.type.endsWith('Error')) {
|
|
84
|
-
return {
|
|
85
|
-
type: event.type,
|
|
86
|
-
data: event.data,
|
|
87
|
-
timestamp: new Date().toISOString(),
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
return state;
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
// State: Track completed operations
|
|
94
|
-
const completedOperations = fold<string[], Event>('*', (state = [], event) => {
|
|
95
|
-
if (event.type.endsWith('Passed') || event.type.endsWith('Generated') || event.type.endsWith('Implemented')) {
|
|
96
|
-
return [...state, event.type];
|
|
97
|
-
}
|
|
98
|
-
return state;
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
on<SchemaExportedEvent>('SchemaExported', (event) =>
|
|
102
|
-
dispatch<GenerateServerCommand>({
|
|
103
|
-
type: 'GenerateServer',
|
|
104
|
-
data: {
|
|
105
|
-
schemaPath: event.data.outputPath,
|
|
106
|
-
destination: event.data.outputPath.replace('/.context/schema.json', '/server'),
|
|
107
|
-
},
|
|
108
|
-
}),
|
|
109
|
-
);
|
|
110
|
-
|
|
111
|
-
on<ServerGeneratedEvent>('ServerGenerated', (event) =>
|
|
112
|
-
dispatch.parallel<ImplementServerCommand | GenerateIACommand>([
|
|
113
|
-
{ type: 'ImplementServer', data: { serverDirectory: event.data.serverDir } },
|
|
114
|
-
{
|
|
115
|
-
type: 'GenerateIA',
|
|
116
|
-
data: { outputDir: event.data.destination + '/.context', flowFiles: [event.data.schemaPath] },
|
|
117
|
-
},
|
|
118
|
-
]),
|
|
119
|
-
);
|
|
120
|
-
|
|
121
|
-
// on<ServerImplementedEvent>('ServerImplemented', (event) =>
|
|
122
|
-
// dispatch.parallel<CheckTypesCommand | CheckTestsCommand | CheckLintCommand>([
|
|
123
|
-
// { type: 'CheckTypes', data: { targetDirectory: event.data.serverDirectory, scope: 'project' } },
|
|
124
|
-
// { type: 'CheckTests', data: { targetDirectory: event.data.serverDirectory, scope: 'project' } },
|
|
125
|
-
// { type: 'CheckLint', data: { targetDirectory: event.data.serverDirectory, scope: 'project' } },
|
|
126
|
-
// ]),
|
|
127
|
-
// );
|
|
50
|
+
pipeline: () => {
|
|
51
|
+
// State management: Track pipeline status
|
|
52
|
+
const pipelineStatus = fold<string, Event>(
|
|
53
|
+
'*', // Listen to all events
|
|
54
|
+
(state = 'idle', event) => {
|
|
55
|
+
switch (event.type) {
|
|
56
|
+
case 'SchemaExported':
|
|
57
|
+
return 'schema-exported';
|
|
58
|
+
case 'ServerGenerated':
|
|
59
|
+
return 'server-generated';
|
|
60
|
+
case 'ServerImplemented':
|
|
61
|
+
return 'server-implemented';
|
|
62
|
+
case 'TypeCheckPassed':
|
|
63
|
+
return 'checks-passed';
|
|
64
|
+
case 'TypeCheckFailed':
|
|
65
|
+
return 'checks-failed';
|
|
66
|
+
case 'IAGenerated':
|
|
67
|
+
return 'ia-generated';
|
|
68
|
+
case 'ClientImplemented':
|
|
69
|
+
return 'client-implemented';
|
|
70
|
+
default:
|
|
71
|
+
return state;
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
);
|
|
128
75
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
},
|
|
141
|
-
}),
|
|
142
|
-
);
|
|
76
|
+
// State: Track last error
|
|
77
|
+
const lastError = fold<any, Event>('*', (state = null, event) => {
|
|
78
|
+
if (event.type.endsWith('Failed') || event.type.endsWith('Error')) {
|
|
79
|
+
return {
|
|
80
|
+
type: event.type,
|
|
81
|
+
data: event.data,
|
|
82
|
+
timestamp: new Date().toISOString(),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
return state;
|
|
86
|
+
});
|
|
143
87
|
|
|
144
|
-
//
|
|
145
|
-
|
|
146
|
-
|
|
88
|
+
// State: Track completed operations
|
|
89
|
+
const completedOperations = fold<string[], Event>('*', (state = [], event) => {
|
|
90
|
+
if (event.type.endsWith('Passed') || event.type.endsWith('Generated') || event.type.endsWith('Implemented')) {
|
|
91
|
+
return [...state, event.type];
|
|
92
|
+
}
|
|
93
|
+
return state;
|
|
94
|
+
});
|
|
147
95
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
// );
|
|
96
|
+
on<SchemaExportedEvent>('SchemaExported', (event) =>
|
|
97
|
+
dispatch<GenerateServerCommand>({
|
|
98
|
+
type: 'GenerateServer',
|
|
99
|
+
data: {
|
|
100
|
+
schemaPath: event.data.outputPath,
|
|
101
|
+
destination: event.data.outputPath.replace('/.context/schema.json', '/server'),
|
|
102
|
+
},
|
|
103
|
+
}),
|
|
104
|
+
);
|
|
158
105
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
106
|
+
on<ServerGeneratedEvent>('ServerGenerated', (event) =>
|
|
107
|
+
dispatch.parallel<ImplementServerCommand | GenerateIACommand>([
|
|
108
|
+
{ type: 'ImplementServer', data: { serverDirectory: event.data.serverDir } },
|
|
109
|
+
{
|
|
110
|
+
type: 'GenerateIA',
|
|
111
|
+
data: { outputDir: event.data.destination + '/.context', flowFiles: [event.data.schemaPath] },
|
|
112
|
+
},
|
|
113
|
+
]),
|
|
114
|
+
);
|
|
167
115
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
// on<TypeCheckPassedEvent>('TypeCheckPassed', () => {
|
|
186
|
-
// retryCount = 0;
|
|
187
|
-
// });
|
|
116
|
+
on<SchemaExportedEvent>('SchemaExported', (event) =>
|
|
117
|
+
dispatch<GenerateClientCommand>({
|
|
118
|
+
type: 'GenerateClient',
|
|
119
|
+
data: {
|
|
120
|
+
starterDir:
|
|
121
|
+
'/Users/sam/WebstormProjects/top/auto-engineer/packages/frontend-generator-react-graphql/shadcn-starter',
|
|
122
|
+
targetDir: '/Users/sam/WebstormProjects/top/auto-engineer/examples/shopping-app/client',
|
|
123
|
+
iaSchemaPath:
|
|
124
|
+
'/Users/sam/WebstormProjects/top/auto-engineer/examples/shopping-app/.context/auto-ia-scheme.json',
|
|
125
|
+
gqlSchemaPath: '/Users/sam/WebstormProjects/top/auto-engineer/examples/shopping-app/.context/schema.graphql',
|
|
126
|
+
figmaVariablesPath:
|
|
127
|
+
'/Users/sam/WebstormProjects/top/auto-engineer/examples/shopping-app/.context/figma-variables.json',
|
|
128
|
+
},
|
|
129
|
+
}),
|
|
130
|
+
);
|
|
131
|
+
},
|
|
132
|
+
});
|