@auto-engineer/server-generator-apollo-emmett 0.11.8 → 0.11.10
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 +18 -0
- package/dist/src/codegen/extract/index.d.ts +1 -0
- package/dist/src/codegen/extract/index.d.ts.map +1 -1
- package/dist/src/codegen/extract/index.js +1 -0
- package/dist/src/codegen/extract/index.js.map +1 -1
- package/dist/src/codegen/extract/type-helpers.d.ts +13 -0
- package/dist/src/codegen/extract/type-helpers.d.ts.map +1 -0
- package/dist/src/codegen/extract/type-helpers.js +98 -0
- package/dist/src/codegen/extract/type-helpers.js.map +1 -0
- package/dist/src/codegen/scaffoldFromSchema.d.ts.map +1 -1
- package/dist/src/codegen/scaffoldFromSchema.js +202 -19
- package/dist/src/codegen/scaffoldFromSchema.js.map +1 -1
- package/dist/src/codegen/templates/command/commands.ts.ejs +14 -9
- package/dist/src/codegen/templates/command/decide.specs.specs.ts +47 -47
- package/dist/src/codegen/templates/command/decide.specs.ts +4 -0
- package/dist/src/codegen/templates/command/decide.ts.ejs +1 -0
- package/dist/src/codegen/templates/command/events.ts.ejs +16 -13
- package/dist/src/codegen/templates/command/mutation.resolver.specs.ts +1 -0
- package/dist/src/codegen/templates/command/mutation.resolver.ts.ejs +2 -23
- package/dist/src/codegen/templates/command/register.specs.ts +1 -1
- package/dist/src/codegen/templates/command/register.ts.ejs +1 -4
- package/dist/src/codegen/templates/command/state.specs.ts +51 -47
- package/dist/src/codegen/templates/command/state.ts.ejs +8 -4
- package/dist/src/codegen/templates/query/projection.specs.ts +19 -2
- package/dist/src/codegen/templates/query/projection.ts.ejs +64 -12
- package/dist/src/codegen/templates/query/query.resolver.specs.ts +6 -3
- package/dist/src/codegen/templates/query/query.resolver.ts.ejs +11 -49
- package/dist/src/codegen/templates/react/react.ts.ejs +0 -1
- package/dist/src/codegen/templates/react/register.ts.ejs +0 -1
- package/dist/src/commands/generate-server.d.ts +0 -1
- package/dist/src/commands/generate-server.d.ts.map +1 -1
- package/dist/src/commands/generate-server.js +42 -23
- package/dist/src/commands/generate-server.js.map +1 -1
- package/dist/src/domain/shared/graphql-types.d.ts +10 -0
- package/dist/src/domain/shared/graphql-types.d.ts.map +1 -0
- package/dist/src/domain/shared/graphql-types.js +40 -0
- package/dist/src/domain/shared/graphql-types.js.map +1 -0
- package/dist/src/domain/shared/graphql-types.ts +20 -0
- package/dist/src/domain/shared/index.d.ts +1 -0
- package/dist/src/domain/shared/index.d.ts.map +1 -1
- package/dist/src/domain/shared/index.js +1 -0
- package/dist/src/domain/shared/index.js.map +1 -1
- package/dist/src/domain/shared/index.ts +1 -0
- package/dist/src/domain/shared/sendCommand.d.ts +1 -1
- package/dist/src/domain/shared/sendCommand.d.ts.map +1 -1
- package/dist/src/domain/shared/sendCommand.ts +1 -1
- package/dist/src/domain/shared/types.d.ts +5 -7
- package/dist/src/domain/shared/types.d.ts.map +1 -1
- package/dist/src/domain/shared/types.js +11 -38
- package/dist/src/domain/shared/types.js.map +1 -1
- package/dist/src/domain/shared/types.ts +10 -16
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/src/codegen/extract/index.ts +1 -0
- package/src/codegen/extract/type-helpers.ts +102 -0
- package/src/codegen/scaffoldFromSchema.ts +273 -15
- package/src/codegen/templates/command/commands.ts.ejs +14 -9
- package/src/codegen/templates/command/decide.specs.specs.ts +47 -47
- package/src/codegen/templates/command/decide.specs.ts +4 -0
- package/src/codegen/templates/command/decide.ts.ejs +1 -0
- package/src/codegen/templates/command/events.ts.ejs +16 -13
- package/src/codegen/templates/command/mutation.resolver.specs.ts +1 -0
- package/src/codegen/templates/command/mutation.resolver.ts.ejs +2 -23
- package/src/codegen/templates/command/register.specs.ts +1 -1
- package/src/codegen/templates/command/register.ts.ejs +1 -4
- package/src/codegen/templates/command/state.specs.ts +51 -47
- package/src/codegen/templates/command/state.ts.ejs +8 -4
- package/src/codegen/templates/query/projection.specs.ts +19 -2
- package/src/codegen/templates/query/projection.ts.ejs +64 -12
- package/src/codegen/templates/query/query.resolver.specs.ts +6 -3
- package/src/codegen/templates/query/query.resolver.ts.ejs +11 -49
- package/src/codegen/templates/react/react.ts.ejs +0 -1
- package/src/codegen/templates/react/register.ts.ejs +0 -1
- package/src/commands/generate-server.ts +50 -25
- package/src/domain/shared/graphql-types.ts +20 -0
- package/src/domain/shared/index.ts +1 -0
- package/src/domain/shared/sendCommand.ts +1 -1
- package/src/domain/shared/types.ts +10 -16
- package/.turbo/turbo-build.log +0 -5
- package/.turbo/turbo-format.log +0 -4
- package/.turbo/turbo-lint.log +0 -4
- package/.turbo/turbo-test.log +0 -14
- package/.turbo/turbo-type-check.log +0 -4
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import 'reflect-metadata';
|
|
2
1
|
import fs from 'fs-extra';
|
|
3
2
|
import * as path from 'path';
|
|
4
3
|
import { readFile, writeFile } from 'fs/promises';
|
|
@@ -147,6 +146,33 @@ function logFlowDetails(spec: Model): void {
|
|
|
147
146
|
}
|
|
148
147
|
}
|
|
149
148
|
|
|
149
|
+
async function cleanStaleCompiledFiles(serverDir: string): Promise<void> {
|
|
150
|
+
const sharedTypesDir = join(serverDir, 'src', 'domain', 'shared');
|
|
151
|
+
debugScaffold('Cleaning stale compiled files from %s', sharedTypesDir);
|
|
152
|
+
|
|
153
|
+
if (!(await fs.pathExists(sharedTypesDir))) {
|
|
154
|
+
debugScaffold(' Shared types directory does not exist, skipping cleanup');
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
const files = await fs.readdir(sharedTypesDir);
|
|
159
|
+
const staleFiles = files.filter((file) => file.endsWith('.js') || file.endsWith('.d.ts') || file.endsWith('.js.map'));
|
|
160
|
+
|
|
161
|
+
if (staleFiles.length === 0) {
|
|
162
|
+
debugScaffold(' No stale compiled files found');
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
debugScaffold(' Found %d stale compiled files to remove', staleFiles.length);
|
|
167
|
+
for (const file of staleFiles) {
|
|
168
|
+
const filePath = join(sharedTypesDir, file);
|
|
169
|
+
await fs.remove(filePath);
|
|
170
|
+
debugScaffold(' Removed: %s', file);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
debugScaffold(' Cleanup completed');
|
|
174
|
+
}
|
|
175
|
+
|
|
150
176
|
async function generateAndWriteScaffold(spec: Model, serverDir: string): Promise<void> {
|
|
151
177
|
const domainFlowsPath = join(serverDir, 'src', 'domain', 'flows');
|
|
152
178
|
debugScaffold('Generating scaffold file plans');
|
|
@@ -165,6 +191,8 @@ async function generateAndWriteScaffold(spec: Model, serverDir: string): Promise
|
|
|
165
191
|
|
|
166
192
|
await writeScaffoldFilePlans(filePlans);
|
|
167
193
|
debugScaffold('Written all scaffold files');
|
|
194
|
+
|
|
195
|
+
await cleanStaleCompiledFiles(serverDir);
|
|
168
196
|
}
|
|
169
197
|
|
|
170
198
|
async function copyAllFiles(serverDir: string): Promise<void> {
|
|
@@ -260,6 +288,8 @@ export async function handleGenerateServerCommandInternal(
|
|
|
260
288
|
await ensureDirExists(serverDir);
|
|
261
289
|
debugFiles('Created server directory: %s', serverDir);
|
|
262
290
|
|
|
291
|
+
await copyAllFiles(serverDir);
|
|
292
|
+
|
|
263
293
|
await generateAndWriteScaffold(spec, serverDir);
|
|
264
294
|
|
|
265
295
|
if (Array.isArray(spec.flows) && spec.flows.length > 0) {
|
|
@@ -287,9 +317,6 @@ export async function handleGenerateServerCommandInternal(
|
|
|
287
317
|
}
|
|
288
318
|
}
|
|
289
319
|
|
|
290
|
-
// Copy files
|
|
291
|
-
await copyAllFiles(serverDir);
|
|
292
|
-
|
|
293
320
|
// Write configuration files
|
|
294
321
|
await writeConfigurationFiles(serverDir, absDest);
|
|
295
322
|
|
|
@@ -348,7 +375,16 @@ async function copySharedAndRootFiles(from: string, to: string): Promise<void> {
|
|
|
348
375
|
const sharedFrom = path.join(from, 'shared');
|
|
349
376
|
const sharedTo = path.join(to, 'shared');
|
|
350
377
|
if (await fs.pathExists(sharedFrom)) {
|
|
351
|
-
await fs.
|
|
378
|
+
await fs.ensureDir(sharedTo);
|
|
379
|
+
const sharedFiles = await fs.readdir(sharedFrom);
|
|
380
|
+
for (const file of sharedFiles) {
|
|
381
|
+
if (file.endsWith('.ts')) {
|
|
382
|
+
const srcFile = path.join(sharedFrom, file);
|
|
383
|
+
const destFile = path.join(sharedTo, file);
|
|
384
|
+
await fs.copy(srcFile, destFile);
|
|
385
|
+
debugFiles(' Copied shared file: %s', file);
|
|
386
|
+
}
|
|
387
|
+
}
|
|
352
388
|
}
|
|
353
389
|
await fs.ensureDir(to);
|
|
354
390
|
const rootFiles = await fs.readdir(from);
|
|
@@ -529,27 +565,16 @@ async function installDependenciesAndGenerateSchema(serverDir: string, workingDi
|
|
|
529
565
|
debugDeps('Starting dependency installation in %s', serverDir);
|
|
530
566
|
debugDeps('Hint: You can debug by manually running: cd server && pnpm install && npx tsx scripts/generate-schema.ts');
|
|
531
567
|
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
debugDeps('Dependencies installed successfully');
|
|
536
|
-
} catch (error) {
|
|
537
|
-
debugDeps('Failed to pnpm install: %s', error instanceof Error ? error.message : 'Unknown error');
|
|
538
|
-
}
|
|
568
|
+
debugDeps('Running pnpm install');
|
|
569
|
+
await execa('pnpm', ['install', '--ignore-workspace'], { cwd: serverDir });
|
|
570
|
+
debugDeps('Dependencies installed successfully');
|
|
539
571
|
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
} catch (error) {
|
|
547
|
-
debugDeps(
|
|
548
|
-
'Failed to run tsx scripts/generate-schema.ts: %s',
|
|
549
|
-
error instanceof Error ? error.message : 'Unknown error',
|
|
550
|
-
);
|
|
551
|
-
}
|
|
572
|
+
debugDeps('Generating GraphQL schema...');
|
|
573
|
+
debugDeps('Running: npx tsx scripts/generate-schema.ts');
|
|
574
|
+
const result = await execa('npx', ['tsx', 'scripts/generate-schema.ts'], { cwd: serverDir });
|
|
575
|
+
debugDeps('Schema generation output: %s', result.stdout);
|
|
576
|
+
const schemaPath = join(workingDir, '.context', 'schema.graphql');
|
|
577
|
+
debugDeps('GraphQL schema generated at: %s', schemaPath);
|
|
552
578
|
}
|
|
553
579
|
|
|
554
|
-
// Default export is the command handler
|
|
555
580
|
export default commandHandler;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { Field, ObjectType } from 'type-graphql';
|
|
3
|
+
|
|
4
|
+
@ObjectType()
|
|
5
|
+
export class MutationError {
|
|
6
|
+
@Field(() => String)
|
|
7
|
+
type!: string;
|
|
8
|
+
|
|
9
|
+
@Field(() => String, { nullable: true })
|
|
10
|
+
message?: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
@ObjectType()
|
|
14
|
+
export class MutationResponse {
|
|
15
|
+
@Field(() => Boolean)
|
|
16
|
+
success!: boolean;
|
|
17
|
+
|
|
18
|
+
@Field(() => MutationError, { nullable: true })
|
|
19
|
+
error?: MutationError;
|
|
20
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Command, CommandSender } from '@event-driven-io/emmett';
|
|
2
|
-
import type { MutationResponse } from './types';
|
|
2
|
+
import type { MutationResponse } from './graphql-types';
|
|
3
3
|
|
|
4
4
|
export async function sendCommand<T extends Command>(
|
|
5
5
|
commandSender: CommandSender,
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { registerEnumType } from 'type-graphql';
|
|
2
|
+
|
|
3
|
+
import 'reflect-metadata';
|
|
1
4
|
import { CommandSender, EventStore, type InMemoryDatabase } from '@event-driven-io/emmett';
|
|
2
|
-
import { Field, ObjectType } from 'type-graphql';
|
|
3
5
|
|
|
4
6
|
export interface ReactorContext {
|
|
5
7
|
eventStore: EventStore;
|
|
@@ -14,20 +16,12 @@ export interface GraphQLContext {
|
|
|
14
16
|
database: InMemoryDatabase;
|
|
15
17
|
}
|
|
16
18
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
@Field(() => String, { nullable: true })
|
|
23
|
-
message?: string;
|
|
19
|
+
export enum QuestionnaireProgressStatus {
|
|
20
|
+
IN_PROGRESS = 'in_progress',
|
|
21
|
+
READY_TO_SUBMIT = 'ready_to_submit',
|
|
22
|
+
SUBMITTED = 'submitted',
|
|
24
23
|
}
|
|
25
24
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
success!: boolean;
|
|
30
|
-
|
|
31
|
-
@Field(() => MutationError, { nullable: true })
|
|
32
|
-
error?: MutationError;
|
|
33
|
-
}
|
|
25
|
+
registerEnumType(QuestionnaireProgressStatus, {
|
|
26
|
+
name: 'QuestionnaireProgressStatus',
|
|
27
|
+
});
|
package/.turbo/turbo-build.log
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
> @auto-engineer/server-generator-apollo-emmett@0.11.7 build /Users/sam/WebstormProjects/top/auto-engineer-3/packages/server-generator-apollo-emmett
|
|
3
|
-
> 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
|
|
4
|
-
|
|
5
|
-
Fixed ESM imports in dist/
|
package/.turbo/turbo-format.log
DELETED
package/.turbo/turbo-lint.log
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
> @auto-engineer/server-generator-apollo-emmett@0.11.7 lint /Users/sam/WebstormProjects/top/auto-engineer-3/packages/server-generator-apollo-emmett
|
|
3
|
-
> eslint 'src/**/*.ts' --ignore-pattern '**/*.specs.ts' --ignore-pattern '**/.tmp/**' --max-warnings 0 --config ../../eslint.config.ts
|
|
4
|
-
|
package/.turbo/turbo-test.log
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
> @auto-engineer/server-generator-apollo-emmett@0.11.7 test /Users/sam/WebstormProjects/top/auto-engineer-3/packages/server-generator-apollo-emmett
|
|
3
|
-
> vitest run --reporter=dot
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
RUN v3.2.4 /Users/sam/WebstormProjects/top/auto-engineer-3/packages/server-generator-apollo-emmett
|
|
7
|
-
|
|
8
|
-
·······························-·
|
|
9
|
-
|
|
10
|
-
Test Files 16 passed | 1 skipped (17)
|
|
11
|
-
Tests 32 passed | 1 skipped (33)
|
|
12
|
-
Start at 12:44:02
|
|
13
|
-
Duration 1.43s (transform 515ms, setup 0ms, collect 3.88s, tests 4.93s, environment 1ms, prepare 2.08s)
|
|
14
|
-
|