@luvio/compiler 0.85.0 → 0.88.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.
Files changed (45) hide show
  1. package/dist/codegen/graphql/interface/index.d.ts +5 -0
  2. package/dist/codegen/graphql/interface/index.js +19 -0
  3. package/dist/codegen/graphql/interface/index.js.map +1 -0
  4. package/dist/codegen/graphql/interface/ingest.d.ts +6 -0
  5. package/dist/codegen/graphql/interface/ingest.js +45 -0
  6. package/dist/codegen/graphql/interface/ingest.js.map +1 -0
  7. package/dist/codegen/graphql/interface/interface.d.ts +11 -0
  8. package/dist/codegen/graphql/interface/interface.js +94 -0
  9. package/dist/codegen/graphql/interface/interface.js.map +1 -0
  10. package/dist/codegen/graphql/source-printer/graphql-type-source-printer.js +6 -2
  11. package/dist/codegen/graphql/source-printer/graphql-type-source-printer.js.map +1 -1
  12. package/dist/codegen/graphql/type/constants.d.ts +7 -0
  13. package/dist/codegen/graphql/type/constants.js +8 -1
  14. package/dist/codegen/graphql/type/constants.js.map +1 -1
  15. package/dist/codegen/graphql/type/generateTypeUtil.d.ts +3 -0
  16. package/dist/codegen/graphql/type/generateTypeUtil.js +94 -0
  17. package/dist/codegen/graphql/type/generateTypeUtil.js.map +1 -0
  18. package/dist/codegen/graphql/type/index.d.ts +2 -4
  19. package/dist/codegen/graphql/type/index.js +1 -29
  20. package/dist/codegen/graphql/type/index.js.map +1 -1
  21. package/dist/codegen/graphql/type/ingest.d.ts +3 -3
  22. package/dist/codegen/graphql/type/ingest.js +66 -45
  23. package/dist/codegen/graphql/type/ingest.js.map +1 -1
  24. package/dist/codegen/graphql/type/interface.d.ts +2 -2
  25. package/dist/codegen/graphql/type/interface.js +2 -2
  26. package/dist/codegen/graphql/type/interface.js.map +1 -1
  27. package/dist/codegen/graphql/type/ttl.d.ts +1 -1
  28. package/dist/codegen/graphql/type/ttl.js +4 -4
  29. package/dist/codegen/graphql/type/ttl.js.map +1 -1
  30. package/dist/codegen/shape/graphql/shape-type-definition.js +2 -2
  31. package/dist/codegen/shape/graphql/shape-type-definition.js.map +1 -1
  32. package/dist/codegen/shape/shape-ingest-paginated.js +5 -5
  33. package/dist/codegen/shape/shape-ingest-paginated.js.map +1 -1
  34. package/dist/codegen/shape/shape-utils-ingest.js +4 -2
  35. package/dist/codegen/shape/shape-utils-ingest.js.map +1 -1
  36. package/dist/codegen/shared/constants.d.ts +2 -0
  37. package/dist/codegen/shared/constants.js +3 -1
  38. package/dist/codegen/shared/constants.js.map +1 -1
  39. package/dist/intermediate/graphql-annotation.d.ts +1 -1
  40. package/dist/intermediate/graphql.d.ts +6 -1
  41. package/dist/parser/annotation-graphql.js +95 -31
  42. package/dist/parser/annotation-graphql.js.map +1 -1
  43. package/dist/parser/resource.js +1 -1
  44. package/dist/parser/resource.js.map +1 -1
  45. package/package.json +4 -4
@@ -0,0 +1,5 @@
1
+ import type { ImportContext } from '../../../utils/imports';
2
+ import type { InterfaceTypeDefinitionNode } from '@luvio/graphql-parser';
3
+ import type { LuvioGraphQLDSL } from '../../../intermediate/graphql';
4
+ import type { GraphQLCodegenMetadata } from '../source-printer';
5
+ export declare function generateInterfaceType(graphqlDsl: LuvioGraphQLDSL, typeName: string, def: InterfaceTypeDefinitionNode, importContext: ImportContext, metadata: GraphQLCodegenMetadata): string;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generateInterfaceType = void 0;
7
+ const deindent_1 = __importDefault(require("../../../utils/deindent"));
8
+ const interface_1 = require("./interface");
9
+ const ingest_1 = require("./ingest");
10
+ const imports_1 = require("../../../utils/imports");
11
+ function generateInterfaceType(graphqlDsl, typeName, def, importContext, metadata) {
12
+ return (0, imports_1.resolveImports)((0, deindent_1.default) `
13
+ export const name = '${typeName}';
14
+ ${(0, interface_1.generateInterface)(typeName, def, importContext, metadata)}
15
+ ${(0, ingest_1.generateIngest)(graphqlDsl, typeName, def, importContext, metadata)}
16
+ `);
17
+ }
18
+ exports.generateInterfaceType = generateInterfaceType;
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/interface/index.ts"],"names":[],"mappings":";;;;;;AAAA,uEAA+C;AAC/C,2CAAgD;AAChD,qCAA0C;AAC1C,oDAAwD;AAMxD,SAAgB,qBAAqB,CACjC,UAA2B,EAC3B,QAAgB,EAChB,GAAgC,EAChC,aAA4B,EAC5B,QAAgC;IAEhC,OAAO,IAAA,wBAAc,EAAC,IAAA,kBAAQ,EAAA;+BACH,QAAQ;UAC7B,IAAA,6BAAiB,EAAC,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UACzD,IAAA,uBAAc,EAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;KACvE,CAAC,CAAC;AACP,CAAC;AAZD,sDAYC"}
@@ -0,0 +1,6 @@
1
+ import type { InterfaceTypeDefinitionNode } from '@luvio/graphql-parser';
2
+ import type { ImportContext } from '../../../utils/imports';
3
+ import type { LuvioGraphQLDSL } from '../../../intermediate/graphql';
4
+ import type { GraphQLCodegenMetadata } from '../source-printer';
5
+ export declare function generateIngestFromDef(graphqlDsl: LuvioGraphQLDSL, def: InterfaceTypeDefinitionNode, importContext: ImportContext): string;
6
+ export declare function generateIngest(graphqlDsl: LuvioGraphQLDSL, typeName: string, def: InterfaceTypeDefinitionNode, importContext: ImportContext, _metadata: GraphQLCodegenMetadata): string;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generateIngest = exports.generateIngestFromDef = void 0;
7
+ const deindent_1 = __importDefault(require("../../../utils/deindent"));
8
+ const constants_1 = require("../../shared/constants");
9
+ const interface_1 = require("./interface");
10
+ const constants_2 = require("../type/constants");
11
+ function generateIngestFromDef(graphqlDsl, def, importContext) {
12
+ const { schema } = graphqlDsl;
13
+ const type = schema.getType(def.name.value);
14
+ if (type) {
15
+ const ingestStatements = schema.getImplementations(type).objects.map((object) => {
16
+ return (0, deindent_1.default) `
17
+ if(typename === '${object.name}') {
18
+ return ${importContext.importGraphQLArtifact(object.name, 'ingest')}(astNode, state)
19
+ }
20
+ `;
21
+ });
22
+ return ingestStatements.join('\n');
23
+ }
24
+ return '';
25
+ }
26
+ exports.generateIngestFromDef = generateIngestFromDef;
27
+ function generateIngest(graphqlDsl, typeName, def, importContext, _metadata) {
28
+ var _a;
29
+ const { schema } = graphqlDsl;
30
+ const { importGraphQLArtifact } = importContext;
31
+ const graphqlStateInterface = importGraphQLArtifact(constants_2.TYPE_UTIL_IDENTIFIER, constants_2.GRAPHQL_STATE_INTERFACE_IDENTIFIER);
32
+ const astNodeParamType = ((_a = schema.getQueryType()) === null || _a === void 0 ? void 0 : _a.name) === typeName
33
+ ? constants_1.LUVIO_GRAPHQL_OPERATION_DEFINITION_NODE_IMPORT
34
+ : constants_1.LUVIO_GRAPHQL_FIELD_NODE_IMPORT;
35
+ return (0, deindent_1.default) `
36
+ export function ingest(astNode: ${astNodeParamType}, state: ${graphqlStateInterface}<${interface_1.PARTIAL_INTERFACE_IDENTIFIER}>) {
37
+ const typename = state.data.__typename;
38
+
39
+ // Delegate key building and ingest to concrete implementations
40
+ ${generateIngestFromDef(graphqlDsl, def, importContext)};
41
+ }
42
+ `;
43
+ }
44
+ exports.generateIngest = generateIngest;
45
+ //# sourceMappingURL=ingest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/interface/ingest.ts"],"names":[],"mappings":";;;;;;AACA,uEAA+C;AAE/C,sDAGgC;AAGhC,2CAA2D;AAC3D,iDAA6F;AAE7F,SAAgB,qBAAqB,CACjC,UAA2B,EAC3B,GAAgC,EAChC,aAA4B;IAE5B,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;IAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAyB,CAAC;IACpE,IAAI,IAAI,EAAE;QACN,MAAM,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC5E,OAAO,IAAA,kBAAQ,EAAA;mCACQ,MAAM,CAAC,IAAI;6BACjB,aAAa,CAAC,qBAAqB,CACxC,MAAM,CAAC,IAAI,EACX,QAAQ,CACX;;aAER,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACtC;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAvBD,sDAuBC;AAED,SAAgB,cAAc,CAC1B,UAA2B,EAC3B,QAAgB,EAChB,GAAgC,EAChC,aAA4B,EAC5B,SAAiC;;IAEjC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;IAC9B,MAAM,EAAE,qBAAqB,EAAE,GAAG,aAAa,CAAC;IAChD,MAAM,qBAAqB,GAAG,qBAAqB,CAC/C,gCAAoB,EACpB,8CAAkC,CACrC,CAAC;IACF,MAAM,gBAAgB,GAClB,CAAA,MAAA,MAAM,CAAC,YAAY,EAAE,0CAAE,IAAI,MAAK,QAAQ;QACpC,CAAC,CAAC,0DAA8C;QAChD,CAAC,CAAC,2CAA+B,CAAC;IAE1C,OAAO,IAAA,kBAAQ,EAAA;0CACuB,gBAAgB,YAAY,qBAAqB,IAAI,wCAA4B;;;;cAI7G,qBAAqB,CAAC,UAAU,EAAE,GAAG,EAAE,aAAa,CAAC;;KAE9D,CAAC;AACN,CAAC;AA1BD,wCA0BC"}
@@ -0,0 +1,11 @@
1
+ import type { InterfaceTypeDefinitionNode, TypeNode } from '@luvio/graphql-parser';
2
+ import type { GraphQLCodegenMetadata } from '../source-printer/graphql-source-printer';
3
+ import type { ImportContext } from '../../../utils/imports';
4
+ export declare const TYPE_INTERFACE_IDENTIFIER = "Interface";
5
+ export declare const MINIMUM_INTERFACE_IDENTIFIER: string;
6
+ export declare const PARTIAL_INTERFACE_IDENTIFIER: string;
7
+ export declare function generateTypeReference(type: TypeNode, importContext: ImportContext, scalarToPrimitiveMap: Record<string, string>, state: {
8
+ required: boolean;
9
+ array: boolean;
10
+ }): string;
11
+ export declare function generateInterface(name: string, def: InterfaceTypeDefinitionNode, importContext: ImportContext, metadata: GraphQLCodegenMetadata): string;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generateInterface = exports.generateTypeReference = exports.PARTIAL_INTERFACE_IDENTIFIER = exports.MINIMUM_INTERFACE_IDENTIFIER = exports.TYPE_INTERFACE_IDENTIFIER = void 0;
7
+ const deindent_1 = __importDefault(require("../../../utils/deindent"));
8
+ const key_1 = require("../type/key");
9
+ exports.TYPE_INTERFACE_IDENTIFIER = 'Interface';
10
+ exports.MINIMUM_INTERFACE_IDENTIFIER = `Minimum${exports.TYPE_INTERFACE_IDENTIFIER}`;
11
+ exports.PARTIAL_INTERFACE_IDENTIFIER = `Partial${exports.TYPE_INTERFACE_IDENTIFIER}`;
12
+ function generateNamedTypeReference(type, importContext, scalarToPrimitiveMap) {
13
+ const { value: typeName } = type.name;
14
+ if (scalarToPrimitiveMap[type.name.value] !== undefined) {
15
+ return scalarToPrimitiveMap[type.name.value];
16
+ }
17
+ return importContext.importGraphQLArtifact(typeName, exports.TYPE_INTERFACE_IDENTIFIER);
18
+ }
19
+ function generateTypeReference(type, importContext, scalarToPrimitiveMap, state) {
20
+ switch (type.kind) {
21
+ case 'ListType':
22
+ return `${generateTypeReference(type.type, importContext, scalarToPrimitiveMap, {
23
+ required: state.required,
24
+ array: true,
25
+ })}`;
26
+ case 'NonNullType':
27
+ return generateTypeReference(type.type, importContext, scalarToPrimitiveMap, {
28
+ required: true,
29
+ array: state.array,
30
+ });
31
+ case 'NamedType': {
32
+ let base = generateNamedTypeReference(type, importContext, scalarToPrimitiveMap);
33
+ if (state.array === true) {
34
+ base = `${base}[]`;
35
+ }
36
+ if (state.required === false) {
37
+ base = `${base} | null`;
38
+ }
39
+ return base;
40
+ }
41
+ }
42
+ }
43
+ exports.generateTypeReference = generateTypeReference;
44
+ function generateMinimumInterface(idNode) {
45
+ if (idNode === undefined) {
46
+ return '';
47
+ }
48
+ const properties = {};
49
+ if (idNode !== undefined) {
50
+ const idNodeName = idNode.name.value;
51
+ properties[idNodeName] = `${idNodeName}: Interface["${idNodeName}"]`;
52
+ }
53
+ return (0, deindent_1.default) `
54
+ export interface ${exports.MINIMUM_INTERFACE_IDENTIFIER} {
55
+ ${Object.values(properties).join(';\n')}
56
+ }
57
+ `;
58
+ }
59
+ function generateInterfaceTypeDefinitionNode(name, def, importContext, scalarToPrimitiveMap) {
60
+ const { fields } = def;
61
+ if (fields === undefined) {
62
+ return (0, deindent_1.default) `
63
+ interface ${exports.TYPE_INTERFACE_IDENTIFIER} {}
64
+ `;
65
+ }
66
+ const properties = fields.map((field) => {
67
+ const { name, type } = field;
68
+ return (0, deindent_1.default) `
69
+ ${name.value}: ${generateTypeReference(type, importContext, scalarToPrimitiveMap, {
70
+ required: false,
71
+ array: false,
72
+ })}
73
+ `;
74
+ });
75
+ const idNode = (0, key_1.findIdNode)(def);
76
+ const minimum = generateMinimumInterface(idNode);
77
+ const partialDef = minimum === ''
78
+ ? `Record<string, any>`
79
+ : `Record<string, any> & ${exports.MINIMUM_INTERFACE_IDENTIFIER}`;
80
+ return (0, deindent_1.default) `
81
+ export interface ${exports.TYPE_INTERFACE_IDENTIFIER} {
82
+ ${properties.join(';\n')}
83
+ }
84
+
85
+ ${minimum}
86
+
87
+ export type ${exports.PARTIAL_INTERFACE_IDENTIFIER} = ${partialDef};
88
+ `;
89
+ }
90
+ function generateInterface(name, def, importContext, metadata) {
91
+ return generateInterfaceTypeDefinitionNode(name, def, importContext, metadata.scalarToPrimitiveMap);
92
+ }
93
+ exports.generateInterface = generateInterface;
94
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/interface/interface.ts"],"names":[],"mappings":";;;;;;AAOA,uEAA+C;AAE/C,qCAAyC;AAE5B,QAAA,yBAAyB,GAAG,WAAW,CAAC;AACxC,QAAA,4BAA4B,GAAG,UAAU,iCAAyB,EAAE,CAAC;AACrE,QAAA,4BAA4B,GAAG,UAAU,iCAAyB,EAAE,CAAC;AAElF,SAAS,0BAA0B,CAC/B,IAAmB,EACnB,aAA4B,EAC5B,oBAA4C;IAE5C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;IAEtC,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;QACrD,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChD;IAED,OAAO,aAAa,CAAC,qBAAqB,CAAC,QAAQ,EAAE,iCAAyB,CAAC,CAAC;AACpF,CAAC;AAED,SAAgB,qBAAqB,CACjC,IAAc,EACd,aAA4B,EAC5B,oBAA4C,EAC5C,KAA4C;IAE5C,QAAQ,IAAI,CAAC,IAAI,EAAE;QACf,KAAK,UAAU;YACX,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,oBAAoB,EAAE;gBAC5E,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,KAAK,EAAE,IAAI;aACd,CAAC,EAAE,CAAC;QACT,KAAK,aAAa;YACd,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,oBAAoB,EAAE;gBACzE,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,KAAK,CAAC,KAAK;aACrB,CAAC,CAAC;QACP,KAAK,WAAW,CAAC,CAAC;YACd,IAAI,IAAI,GAAG,0BAA0B,CAAC,IAAI,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC;YACjF,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE;gBACtB,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC;aACtB;YACD,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,EAAE;gBAC1B,IAAI,GAAG,GAAG,IAAI,SAAS,CAAC;aAC3B;YACD,OAAO,IAAI,CAAC;SACf;KACJ;AACL,CAAC;AA5BD,sDA4BC;AAED,SAAS,wBAAwB,CAAC,MAAuC;IACrE,IAAI,MAAM,KAAK,SAAS,EAAE;QACtB,OAAO,EAAE,CAAC;KACb;IAED,MAAM,UAAU,GAA2B,EAAE,CAAC;IAE9C,IAAI,MAAM,KAAK,SAAS,EAAE;QACtB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QACrC,UAAU,CAAC,UAAU,CAAC,GAAG,GAAG,UAAU,gBAAgB,UAAU,IAAI,CAAC;KACxE;IAED,OAAO,IAAA,kBAAQ,EAAA;2BACQ,oCAA4B;cACzC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;;KAE9C,CAAC;AACN,CAAC;AAED,SAAS,mCAAmC,CACxC,IAAY,EACZ,GAAgC,EAChC,aAA4B,EAC5B,oBAA4C;IAE5C,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACvB,IAAI,MAAM,KAAK,SAAS,EAAE;QACtB,OAAO,IAAA,kBAAQ,EAAA;wBACC,iCAAyB;SACxC,CAAC;KACL;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACpC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QAE7B,OAAO,IAAA,kBAAQ,EAAA;cACT,IAAI,CAAC,KAAK,KAAK,qBAAqB,CAAC,IAAI,EAAE,aAAa,EAAE,oBAAoB,EAAE;YAClF,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,KAAK;SACf,CAAC;SACD,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAA,gBAAU,EAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAEjD,MAAM,UAAU,GACZ,OAAO,KAAK,EAAE;QACV,CAAC,CAAC,qBAAqB;QACvB,CAAC,CAAC,yBAAyB,oCAA4B,EAAE,CAAC;IAElE,OAAO,IAAA,kBAAQ,EAAA;2BACQ,iCAAyB;cACtC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;;;UAG1B,OAAO;;sBAEK,oCAA4B,MAAM,UAAU;KAC7D,CAAC;AACN,CAAC;AAED,SAAgB,iBAAiB,CAC7B,IAAY,EACZ,GAAgC,EAChC,aAA4B,EAC5B,QAAgC;IAEhC,OAAO,mCAAmC,CACtC,IAAI,EACJ,GAAkC,EAClC,aAAa,EACb,QAAQ,CAAC,oBAAoB,CAChC,CAAC;AACN,CAAC;AAZD,8CAYC"}
@@ -8,10 +8,12 @@ const imports_1 = require("../../../utils/imports");
8
8
  const path_1 = __importDefault(require("path"));
9
9
  const graphql_parser_1 = require("@luvio/graphql-parser");
10
10
  const type_1 = require("../type");
11
+ const generateTypeUtil_1 = require("../type/generateTypeUtil");
11
12
  const union_1 = require("../union");
12
13
  const enum_1 = require("../enum");
13
14
  const utils_1 = require("../../../intermediate/utils");
14
15
  const graphql_1 = require("../../shape/graphql");
16
+ const interface_1 = require("../interface");
15
17
  exports.GRAPHQL_OUTPUT_DIRECTORY = 'graphql';
16
18
  exports.GRAPHQL_OBJECT_TYPENAME = 'typeName';
17
19
  const GRAPHQL_TYPES_DIRECTORY = 'types';
@@ -22,7 +24,7 @@ class GraphQLTypeSourcePrinter {
22
24
  const typeKeys = Object.keys(graphqlDSL.schema.getTypeMap());
23
25
  const modules = {};
24
26
  const { relPath } = this.createGraphQLTypeImportContext(compilerBaseOutputDir, 'type-util');
25
- const typeUtil = (0, type_1.generateTypeUtil)(graphQLResource, metadata);
27
+ const typeUtil = (0, generateTypeUtil_1.generateTypeUtil)(graphQLResource, metadata);
26
28
  modules[relPath] = typeUtil;
27
29
  // TODO: What should happen if multiple endpoints use the same Representation? Technically this would be legal in RAML as the
28
30
  // top level types are the same.
@@ -37,9 +39,11 @@ class GraphQLTypeSourcePrinter {
37
39
  const { relPath, importContext } = this.createGraphQLTypeImportContext(compilerBaseOutputDir, typeDefinition.name);
38
40
  switch (kind) {
39
41
  case graphql_parser_1.Kind.OBJECT_TYPE_DEFINITION:
40
- case graphql_parser_1.Kind.INTERFACE_TYPE_DEFINITION:
41
42
  modules[relPath] = (0, type_1.generateType)(graphqlDSL, typeDefinition.name, typeDefinition.astNode, importContext, metadata);
42
43
  break;
44
+ case graphql_parser_1.Kind.INTERFACE_TYPE_DEFINITION:
45
+ modules[relPath] = (0, interface_1.generateInterfaceType)(graphqlDSL, typeDefinition.name, typeDefinition.astNode, importContext, metadata);
46
+ break;
43
47
  case graphql_parser_1.Kind.UNION_TYPE_DEFINITION:
44
48
  modules[relPath] = (0, union_1.generate)(typeDefinition.name, typeDefinition.astNode, importContext, metadata);
45
49
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"graphql-type-source-printer.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/source-printer/graphql-type-source-printer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graphql-type-source-printer.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/source-printer/graphql-type-source-printer.ts"],"names":[],"mappings":"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"}
@@ -5,3 +5,10 @@ export declare const CREATE_LINK_IDENTIFIER = "createLink";
5
5
  export declare const TYPE_UTIL_IDENTIFIER = "type-util";
6
6
  export declare const TYPE_INGEST_IDENTIFIER = "ingest";
7
7
  export declare const KEY_BUILDER_IDENTIFIER = "keyBuilder";
8
+ export declare const SERIALIZE_FIELD_ARGUMENTS_IDENTIFIER = "serializeFieldArguments";
9
+ export declare const GET_REQUESTED_FIELD_IDENTIFIER = "getRequestedField";
10
+ export declare const GET_SERIALIZED_KEY_FOR_FIELD_IDENTIFIER = "getSerializedKeyForField";
11
+ export declare const FIELD_KEY_IDENTIFIER = "fieldKey";
12
+ export declare const FIELD_DATA_IDENTIFIER = "fieldData";
13
+ export declare const FIELD_DATA_KEY_IDENTIFIER = "fieldDataKey";
14
+ export declare const REQUESTED_FIELD_IDENTIFIER = "requestedField";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.KEY_BUILDER_IDENTIFIER = exports.TYPE_INGEST_IDENTIFIER = exports.TYPE_UTIL_IDENTIFIER = exports.CREATE_LINK_IDENTIFIER = exports.TIMESTAMP_IDENTIFIER = exports.GRAPHQL_STATE_INTERFACE_IDENTIFIER = exports.GRAPHQL_VARIABLES_IDENTIFIER = void 0;
3
+ exports.REQUESTED_FIELD_IDENTIFIER = exports.FIELD_DATA_KEY_IDENTIFIER = exports.FIELD_DATA_IDENTIFIER = exports.FIELD_KEY_IDENTIFIER = exports.GET_SERIALIZED_KEY_FOR_FIELD_IDENTIFIER = exports.GET_REQUESTED_FIELD_IDENTIFIER = exports.SERIALIZE_FIELD_ARGUMENTS_IDENTIFIER = exports.KEY_BUILDER_IDENTIFIER = exports.TYPE_INGEST_IDENTIFIER = exports.TYPE_UTIL_IDENTIFIER = exports.CREATE_LINK_IDENTIFIER = exports.TIMESTAMP_IDENTIFIER = exports.GRAPHQL_STATE_INTERFACE_IDENTIFIER = exports.GRAPHQL_VARIABLES_IDENTIFIER = void 0;
4
4
  exports.GRAPHQL_VARIABLES_IDENTIFIER = 'GraphQLVariables';
5
5
  exports.GRAPHQL_STATE_INTERFACE_IDENTIFIER = 'GraphQLState';
6
6
  exports.TIMESTAMP_IDENTIFIER = 'timestamp';
@@ -8,4 +8,11 @@ exports.CREATE_LINK_IDENTIFIER = 'createLink';
8
8
  exports.TYPE_UTIL_IDENTIFIER = 'type-util';
9
9
  exports.TYPE_INGEST_IDENTIFIER = 'ingest';
10
10
  exports.KEY_BUILDER_IDENTIFIER = 'keyBuilder';
11
+ exports.SERIALIZE_FIELD_ARGUMENTS_IDENTIFIER = 'serializeFieldArguments';
12
+ exports.GET_REQUESTED_FIELD_IDENTIFIER = 'getRequestedField';
13
+ exports.GET_SERIALIZED_KEY_FOR_FIELD_IDENTIFIER = 'getSerializedKeyForField';
14
+ exports.FIELD_KEY_IDENTIFIER = 'fieldKey';
15
+ exports.FIELD_DATA_IDENTIFIER = 'fieldData';
16
+ exports.FIELD_DATA_KEY_IDENTIFIER = 'fieldDataKey';
17
+ exports.REQUESTED_FIELD_IDENTIFIER = 'requestedField';
11
18
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,4BAA4B,GAAG,kBAAkB,CAAC;AAClD,QAAA,kCAAkC,GAAG,cAAc,CAAC;AACpD,QAAA,oBAAoB,GAAG,WAAW,CAAC;AACnC,QAAA,sBAAsB,GAAG,YAAY,CAAC;AACtC,QAAA,oBAAoB,GAAG,WAAW,CAAC;AACnC,QAAA,sBAAsB,GAAG,QAAQ,CAAC;AAClC,QAAA,sBAAsB,GAAG,YAAY,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,4BAA4B,GAAG,kBAAkB,CAAC;AAClD,QAAA,kCAAkC,GAAG,cAAc,CAAC;AACpD,QAAA,oBAAoB,GAAG,WAAW,CAAC;AACnC,QAAA,sBAAsB,GAAG,YAAY,CAAC;AACtC,QAAA,oBAAoB,GAAG,WAAW,CAAC;AACnC,QAAA,sBAAsB,GAAG,QAAQ,CAAC;AAClC,QAAA,sBAAsB,GAAG,YAAY,CAAC;AACtC,QAAA,oCAAoC,GAAG,yBAAyB,CAAC;AACjE,QAAA,8BAA8B,GAAG,mBAAmB,CAAC;AACrD,QAAA,uCAAuC,GAAG,0BAA0B,CAAC;AACrE,QAAA,oBAAoB,GAAG,UAAU,CAAC;AAClC,QAAA,qBAAqB,GAAG,WAAW,CAAC;AACpC,QAAA,yBAAyB,GAAG,cAAc,CAAC;AAC3C,QAAA,0BAA0B,GAAG,gBAAgB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { GraphQLCodegenMetadata } from '../source-printer';
2
+ import type { GraphQLResource } from '../../../intermediate/resource';
3
+ export declare function generateTypeUtil(graphqlResource: GraphQLResource, metadata: GraphQLCodegenMetadata): string;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generateTypeUtil = void 0;
7
+ const deindent_1 = __importDefault(require("../../../utils/deindent"));
8
+ const imports_1 = require("../../../utils/imports");
9
+ const utils_1 = require("../utils");
10
+ const constants_1 = require("../../adapter/constants");
11
+ const constants_2 = require("../../shared/constants");
12
+ const constants_3 = require("./constants");
13
+ function generateTypeUtil(graphqlResource, metadata) {
14
+ var _a;
15
+ return (0, imports_1.resolveImports)((0, deindent_1.default) `
16
+ export type ${constants_3.GRAPHQL_VARIABLES_IDENTIFIER} = Record<string, any>;
17
+
18
+ export interface ${constants_3.GRAPHQL_STATE_INTERFACE_IDENTIFIER}<D = unknown> {
19
+ data: D,
20
+ variables: ${constants_3.GRAPHQL_VARIABLES_IDENTIFIER},
21
+ path: ${constants_1.ADAPTER_INGEST_PATH_INTERFACE_IDENTIFIER}
22
+ ${constants_2.LUVIO_IDENTIFIER}: ${constants_2.LUVIO_IMPORT},
23
+ ${constants_2.LUVIO_STORE_IDENTIFIER}: ${constants_2.LUVIO_STORE_IMPORT},
24
+ ${constants_3.TIMESTAMP_IDENTIFIER}: number
25
+ };
26
+
27
+ export function ${constants_3.CREATE_LINK_IDENTIFIER}(ref: string) {
28
+ return {
29
+ __ref: ref,
30
+ }
31
+ }
32
+
33
+ export function ${constants_3.SERIALIZE_FIELD_ARGUMENTS_IDENTIFIER}(argumentNodes: Readonly<${constants_2.LUVIO_GRAPHQL_ARGUMENT_NODE_IMPORT}[]>, variables: ${constants_3.GRAPHQL_VARIABLES_IDENTIFIER}): string {
34
+ const mutableArgumentNodes = Object.assign([], argumentNodes);
35
+ return \`args__(\${mutableArgumentNodes.sort(
36
+ (a, b) =>{
37
+ const aName = a.name.value.toUpperCase()
38
+ const bName = b.name.value.toUpperCase()
39
+ return aName < bName ? -1 : (aName > bName) ? 1 : 0;
40
+ }).map(node => serializeArgNode(node, variables)).join("::")})\`
41
+ }
42
+
43
+ function serializeArgNode(argumentNode: ${constants_2.LUVIO_GRAPHQL_ARGUMENT_NODE_IMPORT}, variables: ${constants_3.GRAPHQL_VARIABLES_IDENTIFIER}): string {
44
+ const argName = argumentNode.name.value;
45
+ return \`\${argName}:\${serializeValueNode(argumentNode.value, variables)}\`
46
+ }
47
+
48
+ function serializeValueNode(valueNode: ${constants_2.LUVIO_GRAPHQL_VALUE_NODE_IMPORT}, variables: ${constants_3.GRAPHQL_VARIABLES_IDENTIFIER}): string {
49
+ switch(valueNode.kind){
50
+ case("BooleanValue"):
51
+ return valueNode.value + ''
52
+ case("IntValue"):
53
+ case("FloatValue"):
54
+ case("EnumValue"):
55
+ case("StringValue"):
56
+ return valueNode.value
57
+ case("ListValue"):
58
+ const mutableValueNodeList = Object.assign([], valueNode.values);
59
+ return mutableValueNodeList.sort(
60
+ (a, b) =>{
61
+ const aName = a.name.value.toUpperCase()
62
+ const bName = b.name.value.toUpperCase()
63
+ return aName < bName ? -1 : (aName > bName) ? 1 : 0
64
+ }).map((val, i) => serializeValueNode(val, variables) + \`[\${i}]\`).join(',')
65
+ case("Variable"):
66
+ return variables[valueNode.name.value] + "" //TODO: Is this correct serialization for object type variables?
67
+ case("NullValue"):
68
+ return "null";
69
+ case("ObjectValue"):
70
+ const mutableFieldNodeList = Object.assign([], valueNode.fields);
71
+ return mutableFieldNodeList.sort(
72
+ (a, b) =>{
73
+ const aName = a.name.value.toUpperCase()
74
+ const bName = b.name.value.toUpperCase()
75
+ return aName < bName ? -1 : (aName > bName) ? 1 : 0
76
+ }).map(field => field.name.value + ":" + serializeValueNode(field.value, variables)).join(',')
77
+ }
78
+ }
79
+
80
+ export const TTL = ${(0, utils_1.getShapeTtl)(metadata.rootTtl, (_a = graphqlResource.returnShape) === null || _a === void 0 ? void 0 : _a.id, metadata.shapeTtls)};
81
+
82
+ export function ${constants_3.GET_REQUESTED_FIELD_IDENTIFIER}(responseDataFieldName: string, requestedFields: ${constants_2.LUVIO_GRAPHQL_FIELD_NODE_IMPORT}[]): ${constants_2.LUVIO_GRAPHQL_FIELD_NODE_IMPORT} | undefined {
83
+ return requestedFields.find(fieldNode => (fieldNode.alias && fieldNode.alias.value === responseDataFieldName) || (!fieldNode.alias && fieldNode.name.value === responseDataFieldName));
84
+ }
85
+
86
+ export function ${constants_3.GET_SERIALIZED_KEY_FOR_FIELD_IDENTIFIER}(field: ${constants_2.LUVIO_GRAPHQL_FIELD_NODE_IMPORT}, variables: ${constants_3.GRAPHQL_VARIABLES_IDENTIFIER}): string {
87
+ // Serialize the arguments given to this field. Luvio can't "eval" these arguments atm
88
+ const argumentString : string = field.arguments && field.arguments.length > 0 ? '__' + ${constants_3.SERIALIZE_FIELD_ARGUMENTS_IDENTIFIER}(field.arguments, variables) : '';
89
+ return field.name.value + argumentString; // It should be safe to always use the fieldName - If an alias is meaningful, there will be arguments on the key also.
90
+ }
91
+ `);
92
+ }
93
+ exports.generateTypeUtil = generateTypeUtil;
94
+ //# sourceMappingURL=generateTypeUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateTypeUtil.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/generateTypeUtil.ts"],"names":[],"mappings":";;;;;;AAAA,uEAA+C;AAC/C,oDAAwD;AACxD,oCAAuC;AAGvC,uDAAmF;AACnF,sDAQgC;AAChC,2CAQqB;AAErB,SAAgB,gBAAgB,CAC5B,eAAgC,EAChC,QAAgC;;IAEhC,OAAO,IAAA,wBAAc,EAAC,IAAA,kBAAQ,EAAA;sBACZ,wCAA4B;;2BAEvB,8CAAkC;;yBAEpC,wCAA4B;oBACjC,oDAAwC;cAC9C,4BAAgB,KAAK,wBAAY;cACjC,kCAAsB,KAAK,8BAAkB;cAC7C,gCAAoB;;;0BAGR,kCAAsB;;;;;;0BAMtB,gDAAoC,4BAA4B,8CAAkC,mBAAmB,wCAA4B;;;;;;;;;;kDAUzH,8CAAkC,gBAAgB,wCAA4B;;;;;iDAK/E,2CAA+B,gBAAgB,wCAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAgC/F,IAAA,mBAAW,EAC5B,QAAQ,CAAC,OAAO,EAChB,MAAA,eAAe,CAAC,WAAW,0CAAE,EAAE,EAC/B,QAAQ,CAAC,SAAS,CACrB;;0BAEiB,0CAA8B,oDAAoD,2CAA+B,QAAQ,2CAA+B;;;;0BAIxJ,mDAAuC,WAAW,2CAA+B,gBAAgB,wCAA4B;;qGAElD,gDAAoC;;;KAGpI,CAAC,CAAC;AACP,CAAC;AArFD,4CAqFC"}
@@ -1,7 +1,5 @@
1
1
  import type { ImportContext } from '../../../utils/imports';
2
- import type { InterfaceTypeDefinitionNode, ObjectTypeDefinitionNode } from '@luvio/graphql-parser';
2
+ import type { ObjectTypeDefinitionNode } from '@luvio/graphql-parser';
3
3
  import type { LuvioGraphQLDSL } from '../../../intermediate/graphql';
4
4
  import type { GraphQLCodegenMetadata } from '../source-printer';
5
- import type { GraphQLResource } from '../../../intermediate/resource';
6
- export declare function generateTypeUtil(graphqlResource: GraphQLResource, metadata: GraphQLCodegenMetadata): string;
7
- export declare function generateType(graphqlDsl: LuvioGraphQLDSL, typeName: string, def: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode, importContext: ImportContext, metadata: GraphQLCodegenMetadata): string;
5
+ export declare function generateType(graphqlDsl: LuvioGraphQLDSL, typeName: string, def: ObjectTypeDefinitionNode, importContext: ImportContext, metadata: GraphQLCodegenMetadata): string;
@@ -3,41 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.generateType = exports.generateTypeUtil = void 0;
6
+ exports.generateType = void 0;
7
7
  const deindent_1 = __importDefault(require("../../../utils/deindent"));
8
8
  const key_1 = require("./key");
9
9
  const interface_1 = require("./interface");
10
10
  const ingest_1 = require("./ingest");
11
11
  const ttl_1 = require("./ttl");
12
12
  const imports_1 = require("../../../utils/imports");
13
- const utils_1 = require("../utils");
14
- const constants_1 = require("../../adapter/constants");
15
- const constants_2 = require("../../shared/constants");
16
- const constants_3 = require("./constants");
17
- function generateTypeUtil(graphqlResource, metadata) {
18
- var _a;
19
- return (0, imports_1.resolveImports)((0, deindent_1.default) `
20
- export type ${constants_3.GRAPHQL_VARIABLES_IDENTIFIER} = Record<string, any>;
21
-
22
- export interface ${constants_3.GRAPHQL_STATE_INTERFACE_IDENTIFIER}<D = unknown> {
23
- data: D,
24
- variables: ${constants_3.GRAPHQL_VARIABLES_IDENTIFIER},
25
- path: ${constants_1.ADAPTER_INGEST_PATH_INTERFACE_IDENTIFIER}
26
- ${constants_2.LUVIO_IDENTIFIER}: ${constants_2.LUVIO_IMPORT},
27
- ${constants_2.LUVIO_STORE_IDENTIFIER}: ${constants_2.LUVIO_STORE_IMPORT},
28
- ${constants_3.TIMESTAMP_IDENTIFIER}: number
29
- };
30
-
31
- export function ${constants_3.CREATE_LINK_IDENTIFIER}(ref: string) {
32
- return {
33
- __ref: ref,
34
- }
35
- }
36
-
37
- export const TTL = ${(0, utils_1.getShapeTtl)(metadata.rootTtl, (_a = graphqlResource.returnShape) === null || _a === void 0 ? void 0 : _a.id, metadata.shapeTtls)};
38
- `);
39
- }
40
- exports.generateTypeUtil = generateTypeUtil;
41
13
  function generateType(graphqlDsl, typeName, def, importContext, metadata) {
42
14
  return (0, imports_1.resolveImports)((0, deindent_1.default) `
43
15
  export const name = '${typeName}';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/index.ts"],"names":[],"mappings":";;;;;;AAAA,uEAA+C;AAC/C,+BAAoC;AACpC,2CAAgD;AAChD,qCAA0C;AAC1C,+BAAoC;AACpC,oDAAwD;AACxD,oCAAuC;AAMvC,uDAAmF;AAEnF,sDAKgC;AAChC,2CAKqB;AAErB,SAAgB,gBAAgB,CAC5B,eAAgC,EAChC,QAAgC;;IAEhC,OAAO,IAAA,wBAAc,EAAC,IAAA,kBAAQ,EAAA;sBACZ,wCAA4B;;2BAEvB,8CAAkC;;yBAEpC,wCAA4B;oBACjC,oDAAwC;cAC9C,4BAAgB,KAAK,wBAAY;cACjC,kCAAsB,KAAK,8BAAkB;cAC7C,gCAAoB;;;0BAGR,kCAAsB;;;;;;6BAMnB,IAAA,mBAAW,EAC5B,QAAQ,CAAC,OAAO,EAChB,MAAA,eAAe,CAAC,WAAW,0CAAE,EAAE,EAC/B,QAAQ,CAAC,SAAS,CACrB;KACJ,CAAC,CAAC;AACP,CAAC;AA5BD,4CA4BC;AAED,SAAgB,YAAY,CACxB,UAA2B,EAC3B,QAAgB,EAChB,GAA2D,EAC3D,aAA4B,EAC5B,QAAgC;IAEhC,OAAO,IAAA,wBAAc,EAAC,IAAA,kBAAQ,EAAA;+BACH,QAAQ;UAC7B,IAAA,iBAAW,EAAC,UAAU,EAAE,QAAQ,CAAC;UACjC,IAAA,6BAAiB,EAAC,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UACzD,IAAA,iBAAW,EAAC,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC,UAAU,CAAC;UACtD,IAAA,uBAAc,EAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;KACvE,CAAC,CAAC;AACP,CAAC;AAdD,oCAcC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/index.ts"],"names":[],"mappings":";;;;;;AAAA,uEAA+C;AAC/C,+BAAoC;AACpC,2CAAgD;AAChD,qCAA0C;AAC1C,+BAAoC;AACpC,oDAAwD;AAMxD,SAAgB,YAAY,CACxB,UAA2B,EAC3B,QAAgB,EAChB,GAA6B,EAC7B,aAA4B,EAC5B,QAAgC;IAEhC,OAAO,IAAA,wBAAc,EAAC,IAAA,kBAAQ,EAAA;+BACH,QAAQ;UAC7B,IAAA,iBAAW,EAAC,UAAU,EAAE,QAAQ,CAAC;UACjC,IAAA,6BAAiB,EAAC,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UACzD,IAAA,iBAAW,EAAC,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC,UAAU,CAAC;UACtD,IAAA,uBAAc,EAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;KACvE,CAAC,CAAC;AACP,CAAC;AAdD,oCAcC"}
@@ -1,4 +1,4 @@
1
- import type { FieldDefinitionNode, InterfaceTypeDefinitionNode, ListTypeNode, NamedTypeNode, ObjectTypeDefinitionNode, TypeNode } from '@luvio/graphql-parser';
1
+ import type { FieldDefinitionNode, ListTypeNode, NamedTypeNode, ObjectTypeDefinitionNode, TypeNode } from '@luvio/graphql-parser';
2
2
  import type { ImportContext } from '../../../utils/imports';
3
3
  import type { NormalizableTypes } from '../utils';
4
4
  import type { LuvioGraphQLDSL } from '../../../intermediate/graphql';
@@ -6,5 +6,5 @@ import type { GraphQLCodegenMetadata } from '../source-printer';
6
6
  export declare function ingestNamedType(field: FieldDefinitionNode, typeNode: NamedTypeNode, importContext: ImportContext, normalizableTypeMap: NormalizableTypes): string;
7
7
  export declare function ingestListType(field: FieldDefinitionNode, typeNode: ListTypeNode, importContext: ImportContext, normalizableTypeMap: NormalizableTypes): string;
8
8
  export declare function ingestType(field: FieldDefinitionNode, typeNode: TypeNode, importContext: ImportContext, normalizableTypeMap: NormalizableTypes): string;
9
- export declare function generateIngestFromDef(graphqlDsl: LuvioGraphQLDSL, def: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode, importContext: ImportContext, normalizableTypeMap: NormalizableTypes): string;
10
- export declare function generateIngest(graphqlDsl: LuvioGraphQLDSL, typeName: string, def: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode, importContext: ImportContext, _metadata: GraphQLCodegenMetadata): string;
9
+ export declare function generateIngestFromDef(graphqlDsl: LuvioGraphQLDSL, def: ObjectTypeDefinitionNode, importContext: ImportContext, normalizableTypeMap: NormalizableTypes): string;
10
+ export declare function generateIngest(graphqlDsl: LuvioGraphQLDSL, typeName: string, def: ObjectTypeDefinitionNode, importContext: ImportContext, _metadata: GraphQLCodegenMetadata): string;