@auto-engineer/server-generator-nestjs 0.19.0 → 0.20.0
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 +5 -0
- package/.turbo/turbo-test.log +13 -0
- package/.turbo/turbo-type-check.log +4 -0
- package/CHANGELOG.md +7 -0
- package/dist/src/codegen/entity-consolidation.d.ts +19 -0
- package/dist/src/codegen/entity-consolidation.d.ts.map +1 -0
- package/dist/src/codegen/entity-consolidation.js +134 -0
- package/dist/src/codegen/entity-consolidation.js.map +1 -0
- package/dist/src/codegen/extract/commands.d.ts +25 -0
- package/dist/src/codegen/extract/commands.d.ts.map +1 -0
- package/dist/src/codegen/extract/commands.js +67 -0
- package/dist/src/codegen/extract/commands.js.map +1 -0
- package/dist/src/codegen/extract/data-sink.d.ts +6 -0
- package/dist/src/codegen/extract/data-sink.d.ts.map +1 -0
- package/dist/src/codegen/extract/data-sink.js +78 -0
- package/dist/src/codegen/extract/data-sink.js.map +1 -0
- package/dist/src/codegen/extract/events.d.ts +10 -0
- package/dist/src/codegen/extract/events.d.ts.map +1 -0
- package/dist/src/codegen/extract/events.js +42 -0
- package/dist/src/codegen/extract/events.js.map +1 -0
- package/dist/src/codegen/extract/fields.d.ts +3 -0
- package/dist/src/codegen/extract/fields.d.ts.map +1 -0
- package/dist/src/codegen/extract/fields.js +9 -0
- package/dist/src/codegen/extract/fields.js.map +1 -0
- package/dist/src/codegen/extract/graphql.d.ts +14 -0
- package/dist/src/codegen/extract/graphql.d.ts.map +1 -0
- package/dist/src/codegen/extract/graphql.js +81 -0
- package/dist/src/codegen/extract/graphql.js.map +1 -0
- package/dist/src/codegen/extract/gwt.d.ts +6 -0
- package/dist/src/codegen/extract/gwt.d.ts.map +1 -0
- package/dist/src/codegen/extract/gwt.js +64 -0
- package/dist/src/codegen/extract/gwt.js.map +1 -0
- package/dist/src/codegen/extract/imports.d.ts +29 -0
- package/dist/src/codegen/extract/imports.d.ts.map +1 -0
- package/dist/src/codegen/extract/imports.js +55 -0
- package/dist/src/codegen/extract/imports.js.map +1 -0
- package/dist/src/codegen/extract/index.d.ts +10 -0
- package/dist/src/codegen/extract/index.d.ts.map +1 -0
- package/dist/src/codegen/extract/index.js +10 -0
- package/dist/src/codegen/extract/index.js.map +1 -0
- package/dist/src/codegen/extract/messages.d.ts +17 -0
- package/dist/src/codegen/extract/messages.d.ts.map +1 -0
- package/dist/src/codegen/extract/messages.js +172 -0
- package/dist/src/codegen/extract/messages.js.map +1 -0
- package/dist/src/codegen/extract/projection.d.ts +5 -0
- package/dist/src/codegen/extract/projection.d.ts.map +1 -0
- package/dist/src/codegen/extract/projection.js +44 -0
- package/dist/src/codegen/extract/projection.js.map +1 -0
- package/dist/src/codegen/extract/query.d.ts +14 -0
- package/dist/src/codegen/extract/query.d.ts.map +1 -0
- package/dist/src/codegen/extract/query.js +17 -0
- package/dist/src/codegen/extract/query.js.map +1 -0
- package/dist/src/codegen/extract/states.d.ts +5 -0
- package/dist/src/codegen/extract/states.d.ts.map +1 -0
- package/dist/src/codegen/extract/states.js +48 -0
- package/dist/src/codegen/extract/states.js.map +1 -0
- package/dist/src/codegen/extract/step-converter.d.ts +17 -0
- package/dist/src/codegen/extract/step-converter.d.ts.map +1 -0
- package/dist/src/codegen/extract/step-converter.js +82 -0
- package/dist/src/codegen/extract/step-converter.js.map +1 -0
- package/dist/src/codegen/extract/step-types.d.ts +29 -0
- package/dist/src/codegen/extract/step-types.d.ts.map +1 -0
- package/dist/src/codegen/extract/step-types.js +16 -0
- package/dist/src/codegen/extract/step-types.js.map +1 -0
- 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 +9 -0
- package/dist/src/codegen/scaffoldFromSchema.d.ts.map +1 -0
- package/dist/src/codegen/scaffoldFromSchema.js +389 -0
- package/dist/src/codegen/scaffoldFromSchema.js.map +1 -0
- package/dist/src/codegen/templates/command/command.ts.ejs +16 -0
- package/dist/src/codegen/templates/command/handler.specs.ts.ejs +50 -0
- package/dist/src/codegen/templates/command/handler.ts.ejs +30 -0
- package/dist/src/codegen/templates/command/input.ts.ejs +23 -0
- package/dist/src/codegen/templates/command/resolver.ts.ejs +56 -0
- package/dist/src/codegen/templates/entity/entity.ts.ejs +35 -0
- package/dist/src/codegen/templates/entity/index.ts.ejs +6 -0
- package/dist/src/codegen/templates/module/app-module.ts.ejs +65 -0
- package/dist/src/codegen/templates/module/domain-module.ts.ejs +46 -0
- package/dist/src/codegen/templates/query/handler.ts.ejs +25 -0
- package/dist/src/codegen/templates/query/query.ts.ejs +1 -0
- package/dist/src/codegen/templates/query/resolver.ts.ejs +20 -0
- package/dist/src/codegen/templates/query/type.ts.ejs +24 -0
- package/dist/src/codegen/types.d.ts +38 -0
- package/dist/src/codegen/types.d.ts.map +1 -0
- package/dist/src/codegen/types.js +2 -0
- package/dist/src/codegen/types.js.map +1 -0
- package/dist/src/codegen/utils/path.d.ts +4 -0
- package/dist/src/codegen/utils/path.d.ts.map +1 -0
- package/dist/src/codegen/utils/path.js +18 -0
- package/dist/src/codegen/utils/path.js.map +1 -0
- package/dist/src/commands/generate-server.d.ts +28 -0
- package/dist/src/commands/generate-server.d.ts.map +1 -0
- package/dist/src/commands/generate-server.js +421 -0
- package/dist/src/commands/generate-server.js.map +1 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +3 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/shared/graphql-types.ts +19 -0
- package/dist/src/shared/main.ts +27 -0
- package/dist/src/shared/mikro-orm.config.ts +18 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { getSliceType, isStepWithDocString, isStepWithError, resolveMajorKeyword, } from './step-types.js';
|
|
2
|
+
export { getSliceType };
|
|
3
|
+
function parseSteps(example) {
|
|
4
|
+
const given = [];
|
|
5
|
+
const whenItems = [];
|
|
6
|
+
const thenItems = [];
|
|
7
|
+
const thenErrors = [];
|
|
8
|
+
let effectiveKeyword = 'Given';
|
|
9
|
+
for (const step of example.steps) {
|
|
10
|
+
if (isStepWithError(step)) {
|
|
11
|
+
thenErrors.push({ errorType: step.error.type, message: step.error.message });
|
|
12
|
+
continue;
|
|
13
|
+
}
|
|
14
|
+
if (!isStepWithDocString(step))
|
|
15
|
+
continue;
|
|
16
|
+
effectiveKeyword = resolveMajorKeyword(step.keyword, effectiveKeyword);
|
|
17
|
+
const exampleData = step.docString ?? {};
|
|
18
|
+
if (effectiveKeyword === 'Given') {
|
|
19
|
+
given.push({ eventRef: step.text, exampleData });
|
|
20
|
+
}
|
|
21
|
+
else if (effectiveKeyword === 'When') {
|
|
22
|
+
whenItems.push({ text: step.text, exampleData });
|
|
23
|
+
}
|
|
24
|
+
else if (effectiveKeyword === 'Then') {
|
|
25
|
+
thenItems.push({ text: step.text, exampleData });
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return { given, whenItems, thenItems, thenErrors };
|
|
29
|
+
}
|
|
30
|
+
function buildGwtResult(sliceType, parsed, description) {
|
|
31
|
+
const { given, whenItems, thenItems, thenErrors } = parsed;
|
|
32
|
+
if (sliceType === 'command') {
|
|
33
|
+
return {
|
|
34
|
+
given,
|
|
35
|
+
when: { commandRef: whenItems[0]?.text ?? '', exampleData: whenItems[0]?.exampleData ?? {} },
|
|
36
|
+
then: [...thenItems.map((t) => ({ eventRef: t.text, exampleData: t.exampleData })), ...thenErrors],
|
|
37
|
+
description,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
if (sliceType === 'react') {
|
|
41
|
+
return {
|
|
42
|
+
given,
|
|
43
|
+
when: whenItems.map((w) => ({ eventRef: w.text, exampleData: w.exampleData })),
|
|
44
|
+
then: [...thenItems.map((t) => ({ commandRef: t.text, exampleData: t.exampleData })), ...thenErrors],
|
|
45
|
+
description,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
given,
|
|
50
|
+
when: whenItems.map((w) => ({ eventRef: w.text, exampleData: w.exampleData })),
|
|
51
|
+
then: [...thenItems.map((t) => ({ stateRef: t.text, exampleData: t.exampleData })), ...thenErrors],
|
|
52
|
+
description,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export function stepsToGwt(example, sliceType) {
|
|
56
|
+
const parsed = parseSteps(example);
|
|
57
|
+
return buildGwtResult(sliceType, parsed, example.name);
|
|
58
|
+
}
|
|
59
|
+
export function extractGwtFromSpecs(specs, sliceType) {
|
|
60
|
+
const results = [];
|
|
61
|
+
for (const spec of specs) {
|
|
62
|
+
for (const rule of spec.rules) {
|
|
63
|
+
for (const example of rule.examples) {
|
|
64
|
+
const gwt = stepsToGwt(example, sliceType);
|
|
65
|
+
results.push({
|
|
66
|
+
...gwt,
|
|
67
|
+
ruleDescription: rule.name,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return results;
|
|
73
|
+
}
|
|
74
|
+
export function extractGwtSpecsFromSlice(slice) {
|
|
75
|
+
if (!('server' in slice))
|
|
76
|
+
return [];
|
|
77
|
+
const specs = slice.server?.specs;
|
|
78
|
+
if (!Array.isArray(specs) || specs.length === 0)
|
|
79
|
+
return [];
|
|
80
|
+
return extractGwtFromSpecs(specs, getSliceType(slice));
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=step-converter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-converter.js","sourceRoot":"","sources":["../../../../src/codegen/extract/step-converter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Slice, Step, StepWithDocStringSchema, StepWithErrorSchema } from '@auto-engineer/narrative';
|
|
2
|
+
import type { z } from 'zod';
|
|
3
|
+
export type StepWithDocString = z.infer<typeof StepWithDocStringSchema>;
|
|
4
|
+
export type StepWithError = z.infer<typeof StepWithErrorSchema>;
|
|
5
|
+
export type StepKeyword = StepWithDocString['keyword'];
|
|
6
|
+
export type MajorKeyword = Exclude<StepKeyword, 'And'>;
|
|
7
|
+
export type ErrorType = StepWithError['error']['type'];
|
|
8
|
+
export type SliceType = Extract<Slice['type'], 'command' | 'query' | 'react'>;
|
|
9
|
+
export declare function getSliceType(slice: Slice): SliceType;
|
|
10
|
+
export declare function isStepWithDocString(step: Step): step is StepWithDocString;
|
|
11
|
+
export declare function isStepWithError(step: Step): step is StepWithError;
|
|
12
|
+
export declare function resolveMajorKeyword(keyword: StepKeyword, current: MajorKeyword): MajorKeyword;
|
|
13
|
+
export interface CommandExample {
|
|
14
|
+
commandRef: string;
|
|
15
|
+
exampleData: Record<string, unknown>;
|
|
16
|
+
}
|
|
17
|
+
export interface EventExample {
|
|
18
|
+
eventRef: string;
|
|
19
|
+
exampleData: Record<string, unknown>;
|
|
20
|
+
}
|
|
21
|
+
export interface StateExample {
|
|
22
|
+
stateRef: string;
|
|
23
|
+
exampleData: Record<string, unknown>;
|
|
24
|
+
}
|
|
25
|
+
export interface ErrorRef {
|
|
26
|
+
errorType: ErrorType;
|
|
27
|
+
message?: string;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=step-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-types.d.ts","sourceRoot":"","sources":["../../../../src/codegen/extract/step-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC1G,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,MAAM,MAAM,WAAW,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;AACvD,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAEvD,MAAM,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC;AAE9E,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,CAKpD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,iBAAiB,CAEzE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,aAAa,CAEjE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY,CAE7F;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export function getSliceType(slice) {
|
|
2
|
+
if (slice.type === 'command' || slice.type === 'query' || slice.type === 'react') {
|
|
3
|
+
return slice.type;
|
|
4
|
+
}
|
|
5
|
+
return 'command';
|
|
6
|
+
}
|
|
7
|
+
export function isStepWithDocString(step) {
|
|
8
|
+
return 'text' in step;
|
|
9
|
+
}
|
|
10
|
+
export function isStepWithError(step) {
|
|
11
|
+
return 'error' in step;
|
|
12
|
+
}
|
|
13
|
+
export function resolveMajorKeyword(keyword, current) {
|
|
14
|
+
return keyword === 'And' ? current : keyword;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=step-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-types.js","sourceRoot":"","sources":["../../../../src/codegen/extract/step-types.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,YAAY,CAAC,KAAY;IACvC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACjF,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAU;IAC5C,OAAO,MAAM,IAAI,IAAI,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAU;IACxC,OAAO,OAAO,IAAI,IAAI,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAoB,EAAE,OAAqB;IAC7E,OAAO,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare function isInlineObject(ts: string): boolean;
|
|
2
|
+
export declare function isInlineObjectArray(ts: string): boolean;
|
|
3
|
+
export declare function baseTs(ts: string): string;
|
|
4
|
+
export declare function createIsEnumType(toTsFieldType: (ts: string) => string): (tsType: string) => boolean;
|
|
5
|
+
export declare function createFieldUsesDate(graphqlType: (ts: string) => string): (ts: string) => boolean;
|
|
6
|
+
export declare function createFieldUsesJSON(graphqlType: (ts: string) => string): (ts: string) => boolean;
|
|
7
|
+
export declare function createFieldUsesFloat(graphqlType: (ts: string) => string): (ts: string) => boolean;
|
|
8
|
+
export declare function extractEnumName(tsType: string, toTsFieldType: (ts: string) => string): string;
|
|
9
|
+
export declare function createCollectEnumNames(isEnumType: (tsType: string) => boolean, toTsFieldType: (ts: string) => string): (fields: Array<{
|
|
10
|
+
type?: string;
|
|
11
|
+
tsType?: string;
|
|
12
|
+
}>) => string[];
|
|
13
|
+
//# sourceMappingURL=type-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-helpers.d.ts","sourceRoot":"","sources":["../../../../src/codegen/extract/type-helpers.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,IAC5D,QAAQ,MAAM,KAAG,OAAO,CAsBjC;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,IAC7D,IAAI,MAAM,KAAG,OAAO,CAO7B;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,IAC7D,IAAI,MAAM,KAAG,OAAO,CAO7B;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,IAC9D,IAAI,MAAM,KAAG,OAAO,CAsB7B;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAK7F;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,IAC3G,QAAQ,KAAK,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,KAAG,MAAM,EAAE,CAUrE"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
export function isInlineObject(ts) {
|
|
2
|
+
return /^\{[\s\S]*\}$/.test((ts ?? '').trim());
|
|
3
|
+
}
|
|
4
|
+
export function isInlineObjectArray(ts) {
|
|
5
|
+
const t = (ts ?? '').trim();
|
|
6
|
+
return /^Array<\{[\s\S]*\}>$/.test(t) || /^\{[\s\S]*\}\[\]$/.test(t);
|
|
7
|
+
}
|
|
8
|
+
export function baseTs(ts) {
|
|
9
|
+
return (ts ?? 'string').replace(/\s*\|\s*null\b/g, '').trim();
|
|
10
|
+
}
|
|
11
|
+
export function createIsEnumType(toTsFieldType) {
|
|
12
|
+
return (tsType) => {
|
|
13
|
+
const converted = toTsFieldType(tsType);
|
|
14
|
+
const base = converted
|
|
15
|
+
.replace(/\s*\|\s*null\b/g, '')
|
|
16
|
+
.replace(/\[\]$/, '')
|
|
17
|
+
.trim();
|
|
18
|
+
return (/^[A-Z][a-zA-Z0-9]*$/.test(base) &&
|
|
19
|
+
![
|
|
20
|
+
'String',
|
|
21
|
+
'Number',
|
|
22
|
+
'Boolean',
|
|
23
|
+
'Date',
|
|
24
|
+
'ID',
|
|
25
|
+
'Int',
|
|
26
|
+
'Float',
|
|
27
|
+
'GraphQLISODateTime',
|
|
28
|
+
'GraphQLJSON',
|
|
29
|
+
'JSON',
|
|
30
|
+
].includes(base));
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export function createFieldUsesDate(graphqlType) {
|
|
34
|
+
return (ts) => {
|
|
35
|
+
const b = baseTs(ts);
|
|
36
|
+
const gqlType = graphqlType(b);
|
|
37
|
+
if (gqlType.includes('GraphQLISODateTime'))
|
|
38
|
+
return true;
|
|
39
|
+
if (isInlineObject(b) || isInlineObjectArray(b))
|
|
40
|
+
return /:\s*Date\b/.test(b);
|
|
41
|
+
return false;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export function createFieldUsesJSON(graphqlType) {
|
|
45
|
+
return (ts) => {
|
|
46
|
+
const b = baseTs(ts);
|
|
47
|
+
const gqlType = graphqlType(b);
|
|
48
|
+
if (gqlType.includes('GraphQLJSON') || gqlType.includes('JSON'))
|
|
49
|
+
return true;
|
|
50
|
+
if (isInlineObject(b) || isInlineObjectArray(b))
|
|
51
|
+
return /:\s*(unknown|any|object)\b/.test(b);
|
|
52
|
+
return false;
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export function createFieldUsesFloat(graphqlType) {
|
|
56
|
+
return (ts) => {
|
|
57
|
+
const b = baseTs(ts);
|
|
58
|
+
const gqlType = graphqlType(b);
|
|
59
|
+
if (gqlType.includes('Float'))
|
|
60
|
+
return true;
|
|
61
|
+
if (isInlineObject(b) || isInlineObjectArray(b)) {
|
|
62
|
+
const inner = b.trim().startsWith('Array<')
|
|
63
|
+
? b
|
|
64
|
+
.trim()
|
|
65
|
+
.replace(/^Array<\{/, '{')
|
|
66
|
+
.replace(/}>$/, '}')
|
|
67
|
+
: b.trim().replace(/\[\]$/, '');
|
|
68
|
+
const match = inner.match(/^\{([\s\S]*)\}$/);
|
|
69
|
+
const body = match ? match[1] : '';
|
|
70
|
+
const rawFields = body.split(/[,;]\s*/).filter(Boolean);
|
|
71
|
+
return rawFields.some((f) => {
|
|
72
|
+
const parts = f.split(':');
|
|
73
|
+
const type = parts.slice(1).join(':').trim();
|
|
74
|
+
return type.length > 0 && graphqlType(type).includes('Float');
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return false;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
export function extractEnumName(tsType, toTsFieldType) {
|
|
81
|
+
return toTsFieldType(tsType)
|
|
82
|
+
.replace(/\s*\|\s*null\b/g, '')
|
|
83
|
+
.replace(/\[\]$/, '')
|
|
84
|
+
.trim();
|
|
85
|
+
}
|
|
86
|
+
export function createCollectEnumNames(isEnumType, toTsFieldType) {
|
|
87
|
+
return (fields) => {
|
|
88
|
+
const enumNames = new Set();
|
|
89
|
+
for (const field of fields) {
|
|
90
|
+
const fieldType = field.type ?? field.tsType;
|
|
91
|
+
if (fieldType !== undefined && fieldType !== null && fieldType.length > 0 && isEnumType(fieldType)) {
|
|
92
|
+
enumNames.add(extractEnumName(fieldType, toTsFieldType));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return Array.from(enumNames).sort();
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=type-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-helpers.js","sourceRoot":"","sources":["../../../../src/codegen/extract/type-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Model, Narrative } from '@auto-engineer/narrative';
|
|
2
|
+
export interface FilePlan {
|
|
3
|
+
outputPath: string;
|
|
4
|
+
contents: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function generateScaffoldFilePlans(flows: Narrative[], messages: Model['messages'], integrations?: Model['integrations'], baseDir?: string): Promise<FilePlan[]>;
|
|
7
|
+
export declare function writeScaffoldFilePlans(plans: FilePlan[]): Promise<void>;
|
|
8
|
+
export declare function scaffoldFromSchema(flows: Narrative[], messages: Model['messages'], baseDir?: string): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=scaffoldFromSchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffoldFromSchema.d.ts","sourceRoot":"","sources":["../../../src/codegen/scaffoldFromSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAS,MAAM,0BAA0B,CAAC;AAsLxE,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AA0TD,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,SAAS,EAAE,EAClB,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,EAC3B,YAAY,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,EACpC,OAAO,SAAe,GACrB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAqCrB;AAED,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAM7E;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,SAAS,EAAE,EAClB,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,EAC3B,OAAO,SAAe,GACrB,OAAO,CAAC,IAAI,CAAC,CAGf"}
|