@luvio/compiler 0.88.0 → 0.91.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 (62) hide show
  1. package/dist/codegen/graphql/graphql-dsl.d.ts +1 -1
  2. package/dist/codegen/graphql/graphql-dsl.js +1 -1
  3. package/dist/codegen/graphql/graphql-dsl.js.map +1 -1
  4. package/dist/codegen/graphql/interface/index.js +2 -0
  5. package/dist/codegen/graphql/interface/index.js.map +1 -1
  6. package/dist/codegen/graphql/interface/ingest.d.ts +1 -1
  7. package/dist/codegen/graphql/interface/ingest.js +10 -4
  8. package/dist/codegen/graphql/interface/ingest.js.map +1 -1
  9. package/dist/codegen/graphql/interface/select.d.ts +6 -0
  10. package/dist/codegen/graphql/interface/select.js +47 -0
  11. package/dist/codegen/graphql/interface/select.js.map +1 -0
  12. package/dist/codegen/graphql/type/constants.d.ts +4 -0
  13. package/dist/codegen/graphql/type/constants.js +5 -1
  14. package/dist/codegen/graphql/type/constants.js.map +1 -1
  15. package/dist/codegen/graphql/type/generateTypeUtil.js +24 -2
  16. package/dist/codegen/graphql/type/generateTypeUtil.js.map +1 -1
  17. package/dist/codegen/graphql/type/index.d.ts +1 -1
  18. package/dist/codegen/graphql/type/index.js +9 -5
  19. package/dist/codegen/graphql/type/index.js.map +1 -1
  20. package/dist/codegen/graphql/type/ingest.d.ts +0 -1
  21. package/dist/codegen/graphql/type/ingest.js +58 -53
  22. package/dist/codegen/graphql/type/ingest.js.map +1 -1
  23. package/dist/codegen/graphql/type/interface.d.ts +2 -1
  24. package/dist/codegen/graphql/type/interface.js +66 -40
  25. package/dist/codegen/graphql/type/interface.js.map +1 -1
  26. package/dist/codegen/graphql/type/merge.d.ts +2 -0
  27. package/dist/codegen/graphql/type/merge.js +17 -0
  28. package/dist/codegen/graphql/type/merge.js.map +1 -0
  29. package/dist/codegen/graphql/type/select.d.ts +5 -0
  30. package/dist/codegen/graphql/type/select.js +179 -0
  31. package/dist/codegen/graphql/type/select.js.map +1 -0
  32. package/dist/codegen/graphql/type/ttl.d.ts +1 -3
  33. package/dist/codegen/graphql/type/ttl.js +7 -11
  34. package/dist/codegen/graphql/type/ttl.js.map +1 -1
  35. package/dist/codegen/graphql/type/utils.d.ts +3 -0
  36. package/dist/codegen/graphql/type/utils.js +10 -0
  37. package/dist/codegen/graphql/type/utils.js.map +1 -0
  38. package/dist/codegen/graphql/utils/types.d.ts +7 -1
  39. package/dist/codegen/graphql/utils/types.js +28 -1
  40. package/dist/codegen/graphql/utils/types.js.map +1 -1
  41. package/dist/codegen/resource/graphql/index.js +2 -2
  42. package/dist/codegen/resource/graphql/index.js.map +1 -1
  43. package/dist/codegen/resource/graphql/select.d.ts +3 -0
  44. package/dist/codegen/resource/graphql/select.js +30 -0
  45. package/dist/codegen/resource/graphql/select.js.map +1 -0
  46. package/dist/codegen/shape/graphql/index.js +2 -2
  47. package/dist/codegen/shape/graphql/index.js.map +1 -1
  48. package/dist/codegen/shape/graphql/shape-ingest.js +7 -0
  49. package/dist/codegen/shape/graphql/shape-ingest.js.map +1 -1
  50. package/dist/codegen/shape/graphql/shape-select.d.ts +3 -0
  51. package/dist/codegen/shape/graphql/shape-select.js +77 -0
  52. package/dist/codegen/shape/graphql/shape-select.js.map +1 -0
  53. package/dist/codegen/shape/shape-utils.js +1 -1
  54. package/dist/codegen/shared/constants.d.ts +3 -0
  55. package/dist/codegen/shared/constants.js +4 -1
  56. package/dist/codegen/shared/constants.js.map +1 -1
  57. package/dist/intermediate/graphql.d.ts +2 -2
  58. package/dist/parser/annotation-graphql.js +1 -0
  59. package/dist/parser/annotation-graphql.js.map +1 -1
  60. package/dist/parser/resource.js +4 -4
  61. package/dist/parser/resource.js.map +1 -1
  62. package/package.json +4 -4
@@ -5,7 +5,7 @@ export declare class GraphQLDSL implements LuvioGraphQLDSL {
5
5
  schema: Readonly<GraphQLSchema>;
6
6
  schemaName: Readonly<string>;
7
7
  customScalars: GraphQLScalarType[];
8
- typeExtensions: GraphQLTypeExtensions;
8
+ typeNameToExtensions: GraphQLTypeExtensions;
9
9
  constructor(luvioSchemaParams: Readonly<LuvioGraphQLDSLParams>);
10
10
  private extractCustomScalars;
11
11
  }
@@ -7,7 +7,7 @@ class GraphQLDSL {
7
7
  this.customScalars = [];
8
8
  this.schemaName = luvioSchemaParams.schemaName;
9
9
  this.schema = luvioSchemaParams.schema;
10
- this.typeExtensions = luvioSchemaParams.typeExtensions;
10
+ this.typeNameToExtensions = luvioSchemaParams.typeNameToExtensions;
11
11
  this.extractCustomScalars();
12
12
  }
13
13
  extractCustomScalars() {
@@ -1 +1 @@
1
- {"version":3,"file":"graphql-dsl.js","sourceRoot":"","sources":["../../../src/codegen/graphql/graphql-dsl.ts"],"names":[],"mappings":";;;AAAA,0DAA4E;AAU5E,MAAa,UAAU;IAQnB,YAAY,iBAAkD;QAH9D,kBAAa,GAAwB,EAAE,CAAC;QAIpC,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,UAAU,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC,cAAc,CAAC;QAEvD,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAEO,oBAAoB;QACxB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACpD,IAAI,IAAA,6BAAY,EAAC,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE;gBAChD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAChC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAvBD,gCAuBC;AAED,SAAgB,sBAAsB,CAAC,YAAoB;IACvD,OAAO,IAAA,+BAAc,EAAC,IAAA,sBAAK,EAAC,YAAY,CAAC,CAAC,CAAC;AAC/C,CAAC;AAFD,wDAEC"}
1
+ {"version":3,"file":"graphql-dsl.js","sourceRoot":"","sources":["../../../src/codegen/graphql/graphql-dsl.ts"],"names":[],"mappings":";;;AAAA,0DAA4E;AAU5E,MAAa,UAAU;IAQnB,YAAY,iBAAkD;QAH9D,kBAAa,GAAwB,EAAE,CAAC;QAIpC,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,UAAU,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC;QACvC,IAAI,CAAC,oBAAoB,GAAG,iBAAiB,CAAC,oBAAoB,CAAC;QAEnE,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAEO,oBAAoB;QACxB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACpD,IAAI,IAAA,6BAAY,EAAC,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE;gBAChD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAChC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAvBD,gCAuBC;AAED,SAAgB,sBAAsB,CAAC,YAAoB;IACvD,OAAO,IAAA,+BAAc,EAAC,IAAA,sBAAK,EAAC,YAAY,CAAC,CAAC,CAAC;AAC/C,CAAC;AAFD,wDAEC"}
@@ -8,11 +8,13 @@ const deindent_1 = __importDefault(require("../../../utils/deindent"));
8
8
  const interface_1 = require("./interface");
9
9
  const ingest_1 = require("./ingest");
10
10
  const imports_1 = require("../../../utils/imports");
11
+ const select_1 = require("./select");
11
12
  function generateInterfaceType(graphqlDsl, typeName, def, importContext, metadata) {
12
13
  return (0, imports_1.resolveImports)((0, deindent_1.default) `
13
14
  export const name = '${typeName}';
14
15
  ${(0, interface_1.generateInterface)(typeName, def, importContext, metadata)}
15
16
  ${(0, ingest_1.generateIngest)(graphqlDsl, typeName, def, importContext, metadata)}
17
+ ${(0, select_1.generateSelect)(graphqlDsl, typeName, def, importContext, metadata)}
16
18
  `);
17
19
  }
18
20
  exports.generateInterfaceType = generateInterfaceType;
@@ -1 +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"}
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;AAKxD,qCAA0C;AAE1C,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;UAClE,IAAA,uBAAc,EAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;KACvE,CAAC,CAAC;AACP,CAAC;AAbD,sDAaC"}
@@ -2,5 +2,5 @@ import type { InterfaceTypeDefinitionNode } from '@luvio/graphql-parser';
2
2
  import type { ImportContext } from '../../../utils/imports';
3
3
  import type { LuvioGraphQLDSL } from '../../../intermediate/graphql';
4
4
  import type { GraphQLCodegenMetadata } from '../source-printer';
5
- export declare function generateIngestFromDef(graphqlDsl: LuvioGraphQLDSL, def: InterfaceTypeDefinitionNode, importContext: ImportContext): string;
5
+ export declare function generateIngestFromDef(graphqlDsl: LuvioGraphQLDSL, def: InterfaceTypeDefinitionNode, importContext: ImportContext, graphqlStateInterface: string): string;
6
6
  export declare function generateIngest(graphqlDsl: LuvioGraphQLDSL, typeName: string, def: InterfaceTypeDefinitionNode, importContext: ImportContext, _metadata: GraphQLCodegenMetadata): string;
@@ -5,17 +5,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.generateIngest = exports.generateIngestFromDef = void 0;
7
7
  const deindent_1 = __importDefault(require("../../../utils/deindent"));
8
+ const utils_1 = require("../type/utils");
8
9
  const constants_1 = require("../../shared/constants");
9
10
  const interface_1 = require("./interface");
10
11
  const constants_2 = require("../type/constants");
11
- function generateIngestFromDef(graphqlDsl, def, importContext) {
12
- const { schema } = graphqlDsl;
12
+ function generateIngestFromDef(graphqlDsl, def, importContext, graphqlStateInterface) {
13
+ const { schema, typeNameToExtensions } = graphqlDsl;
13
14
  const type = schema.getType(def.name.value);
15
+ const { importGraphQLArtifact } = importContext;
14
16
  if (type) {
15
17
  const ingestStatements = schema.getImplementations(type).objects.map((object) => {
18
+ const objectPartialInterfaceAlias = importGraphQLArtifact(object.name, interface_1.PARTIAL_INTERFACE_IDENTIFIER);
19
+ const state = (0, utils_1.isTypeExtensionDefined)(typeNameToExtensions, object.name, 'ramlMapping')
20
+ ? `state as ${graphqlStateInterface}<${objectPartialInterfaceAlias}>`
21
+ : 'state';
16
22
  return (0, deindent_1.default) `
17
23
  if(typename === '${object.name}') {
18
- return ${importContext.importGraphQLArtifact(object.name, 'ingest')}(astNode, state)
24
+ return ${importContext.importGraphQLArtifact(object.name, constants_2.TYPE_INGEST_IDENTIFIER)}(astNode, ${state})
19
25
  }
20
26
  `;
21
27
  });
@@ -37,7 +43,7 @@ function generateIngest(graphqlDsl, typeName, def, importContext, _metadata) {
37
43
  const typename = state.data.__typename;
38
44
 
39
45
  // Delegate key building and ingest to concrete implementations
40
- ${generateIngestFromDef(graphqlDsl, def, importContext)};
46
+ ${generateIngestFromDef(graphqlDsl, def, importContext, graphqlStateInterface)};
41
47
  }
42
48
  `;
43
49
  }
@@ -1 +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"}
1
+ {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/interface/ingest.ts"],"names":[],"mappings":";;;;;;AACA,uEAA+C;AAE/C,yCAAuD;AACvD,sDAGgC;AAGhC,2CAA2D;AAC3D,iDAI2B;AAE3B,SAAgB,qBAAqB,CACjC,UAA2B,EAC3B,GAAgC,EAChC,aAA4B,EAC5B,qBAA6B;IAE7B,MAAM,EAAE,MAAM,EAAE,oBAAoB,EAAE,GAAG,UAAU,CAAC;IACpD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAyB,CAAC;IACpE,MAAM,EAAE,qBAAqB,EAAE,GAAG,aAAa,CAAC;IAChD,IAAI,IAAI,EAAE;QACN,MAAM,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC5E,MAAM,2BAA2B,GAAG,qBAAqB,CACrD,MAAM,CAAC,IAAI,EACX,wCAA4B,CAC/B,CAAC;YACF,MAAM,KAAK,GAAG,IAAA,8BAAsB,EAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC;gBAClF,CAAC,CAAC,YAAY,qBAAqB,IAAI,2BAA2B,GAAG;gBACrE,CAAC,CAAC,OAAO,CAAC;YACd,OAAO,IAAA,kBAAQ,EAAA;mCACQ,MAAM,CAAC,IAAI;6BACjB,aAAa,CAAC,qBAAqB,CACxC,MAAM,CAAC,IAAI,EACX,kCAAsB,CACzB,aAAa,KAAK;;aAE1B,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACtC;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAhCD,sDAgCC;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;IAC1C,OAAO,IAAA,kBAAQ,EAAA;0CACuB,gBAAgB,YAAY,qBAAqB,IAAI,wCAA4B;;;;cAI7G,qBAAqB,CAAC,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE,qBAAqB,CAAC;;KAErF,CAAC;AACN,CAAC;AAzBD,wCAyBC"}
@@ -0,0 +1,6 @@
1
+ import type { GraphQLInterfaceType, GraphQLSchema, 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 generateSelectFromDef(graphQLSchema: GraphQLSchema, interfaceType: GraphQLInterfaceType, importContext: ImportContext): string;
6
+ export declare function generateSelect(graphqlDsl: LuvioGraphQLDSL, typeName: string, def: InterfaceTypeDefinitionNode, importContext: ImportContext, _metadata: GraphQLCodegenMetadata): string;
@@ -0,0 +1,47 @@
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.generateSelect = exports.generateSelectFromDef = void 0;
7
+ const deindent_1 = __importDefault(require("../../../utils/deindent"));
8
+ const constants_1 = require("../../adapter/constants");
9
+ const constants_2 = require("../../shared/constants");
10
+ const constants_3 = require("../type/constants");
11
+ const interface_1 = require("./interface");
12
+ function generateSelectFromDef(graphQLSchema, interfaceType, importContext) {
13
+ const selectStatements = graphQLSchema
14
+ .getImplementations(interfaceType)
15
+ .objects.map((object) => {
16
+ const objectPartialInterfaceAlias = importContext.importGraphQLArtifact(object.name, interface_1.PARTIAL_INTERFACE_IDENTIFIER);
17
+ return (0, deindent_1.default) `
18
+ if(typename === '${object.name}') {
19
+ return ${importContext.importGraphQLArtifact(object.name, 'select')}(field, variables, fragments)(source as ${objectPartialInterfaceAlias}, reader)
20
+ }`;
21
+ });
22
+ return selectStatements.join('\n');
23
+ }
24
+ exports.generateSelectFromDef = generateSelectFromDef;
25
+ function generateSelect(graphqlDsl, typeName, def, importContext, _metadata) {
26
+ var _a;
27
+ const { schema } = graphqlDsl;
28
+ const type = schema.getType(def.name.value);
29
+ if (!type) {
30
+ return '';
31
+ }
32
+ const astNodeParamType = ((_a = schema.getQueryType()) === null || _a === void 0 ? void 0 : _a.name) === typeName
33
+ ? constants_2.LUVIO_GRAPHQL_OPERATION_DEFINITION_NODE_IMPORT
34
+ : constants_2.LUVIO_GRAPHQL_FIELD_NODE_IMPORT;
35
+ const graphqlVariablesImport = importContext.importGraphQLArtifact(constants_3.TYPE_UTIL_IDENTIFIER, constants_3.GRAPHQL_VARIABLES_IDENTIFIER);
36
+ const fragmentMapImport = importContext.importGraphQLArtifact(constants_3.TYPE_UTIL_IDENTIFIER, constants_3.GRAPHQL_FRAGMENT_MAP_IDENTIFIER);
37
+ return (0, deindent_1.default) `
38
+ export function select(field: ${astNodeParamType}, variables: ${graphqlVariablesImport}, fragments: ${fragmentMapImport}) {
39
+ return (source: ${interface_1.PARTIAL_INTERFACE_IDENTIFIER}, reader: ${constants_1.ADAPTER_READER_IMPORT}<any>): ${interface_1.PARTIAL_INTERFACE_IDENTIFIER} => {
40
+ const typename = source.__typename;
41
+ ${generateSelectFromDef(schema, type, importContext)}
42
+ }
43
+ }
44
+ `;
45
+ }
46
+ exports.generateSelect = generateSelect;
47
+ //# sourceMappingURL=select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/interface/select.ts"],"names":[],"mappings":";;;;;;AAAA,uEAA+C;AAC/C,uDAAgE;AAOhE,sDAGgC;AAGhC,iDAI2B;AAC3B,2CAA2D;AAE3D,SAAgB,qBAAqB,CACjC,aAA4B,EAC5B,aAAmC,EACnC,aAA4B;IAE5B,MAAM,gBAAgB,GAAG,aAAa;SACjC,kBAAkB,CAAC,aAAa,CAAC;SACjC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACpB,MAAM,2BAA2B,GAAG,aAAa,CAAC,qBAAqB,CACnE,MAAM,CAAC,IAAI,EACX,wCAA4B,CAC/B,CAAC;QACF,OAAO,IAAA,kBAAQ,EAAA;mCACQ,MAAM,CAAC,IAAI;6BACjB,aAAa,CAAC,qBAAqB,CACxC,MAAM,CAAC,IAAI,EACX,QAAQ,CACX,2CAA2C,2BAA2B;kBACzE,CAAC;IACX,CAAC,CAAC,CAAC;IAEP,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAtBD,sDAsBC;AAED,SAAgB,cAAc,CAC1B,UAA2B,EAC3B,QAAgB,EAChB,GAAgC,EAChC,aAA4B,EAC5B,SAAiC;;IAEjC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;IAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,IAAI,EAAE;QACP,OAAO,EAAE,CAAC;KACb;IACD,MAAM,gBAAgB,GAClB,CAAA,MAAA,MAAM,CAAC,YAAY,EAAE,0CAAE,IAAI,MAAK,QAAQ;QACpC,CAAC,CAAC,0DAA8C;QAChD,CAAC,CAAC,2CAA+B,CAAC;IAC1C,MAAM,sBAAsB,GAAG,aAAa,CAAC,qBAAqB,CAC9D,gCAAoB,EACpB,wCAA4B,CAC/B,CAAC;IACF,MAAM,iBAAiB,GAAG,aAAa,CAAC,qBAAqB,CACzD,gCAAoB,EACpB,2CAA+B,CAClC,CAAC;IACF,OAAO,IAAA,kBAAQ,EAAA;wCACqB,gBAAgB,gBAAgB,sBAAsB,gBAAgB,iBAAiB;8BACjG,wCAA4B,aAAa,iCAAqB,WAAW,wCAA4B;;kBAEjH,qBAAqB,CAAC,MAAM,EAAE,IAA4B,EAAE,aAAa,CAAC;;;KAGvF,CAAC;AACN,CAAC;AAhCD,wCAgCC"}
@@ -1,4 +1,5 @@
1
1
  export declare const GRAPHQL_VARIABLES_IDENTIFIER = "GraphQLVariables";
2
+ export declare const GRAPHQL_FRAGMENT_MAP_IDENTIFIER = "GraphQLFragmentMap";
2
3
  export declare const GRAPHQL_STATE_INTERFACE_IDENTIFIER = "GraphQLState";
3
4
  export declare const TIMESTAMP_IDENTIFIER = "timestamp";
4
5
  export declare const CREATE_LINK_IDENTIFIER = "createLink";
@@ -7,8 +8,11 @@ export declare const TYPE_INGEST_IDENTIFIER = "ingest";
7
8
  export declare const KEY_BUILDER_IDENTIFIER = "keyBuilder";
8
9
  export declare const SERIALIZE_FIELD_ARGUMENTS_IDENTIFIER = "serializeFieldArguments";
9
10
  export declare const GET_REQUESTED_FIELD_IDENTIFIER = "getRequestedField";
11
+ export declare const GET_REQUESTED_FIELDS_FOR_TYPE_IDENTIFIER = "getRequestedFieldsForType";
10
12
  export declare const GET_SERIALIZED_KEY_FOR_FIELD_IDENTIFIER = "getSerializedKeyForField";
11
13
  export declare const FIELD_KEY_IDENTIFIER = "fieldKey";
12
14
  export declare const FIELD_DATA_IDENTIFIER = "fieldData";
13
15
  export declare const FIELD_DATA_KEY_IDENTIFIER = "fieldDataKey";
14
16
  export declare const REQUESTED_FIELD_IDENTIFIER = "requestedField";
17
+ export declare const REQUESTED_FIELD_NAME_IDENTIFIER = "requestedFieldName";
18
+ export declare const SINK_IDENTIFIER = "sink";
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
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;
3
+ exports.SINK_IDENTIFIER = exports.REQUESTED_FIELD_NAME_IDENTIFIER = 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_FIELDS_FOR_TYPE_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_FRAGMENT_MAP_IDENTIFIER = exports.GRAPHQL_VARIABLES_IDENTIFIER = void 0;
4
4
  exports.GRAPHQL_VARIABLES_IDENTIFIER = 'GraphQLVariables';
5
+ exports.GRAPHQL_FRAGMENT_MAP_IDENTIFIER = 'GraphQLFragmentMap';
5
6
  exports.GRAPHQL_STATE_INTERFACE_IDENTIFIER = 'GraphQLState';
6
7
  exports.TIMESTAMP_IDENTIFIER = 'timestamp';
7
8
  exports.CREATE_LINK_IDENTIFIER = 'createLink';
@@ -10,9 +11,12 @@ exports.TYPE_INGEST_IDENTIFIER = 'ingest';
10
11
  exports.KEY_BUILDER_IDENTIFIER = 'keyBuilder';
11
12
  exports.SERIALIZE_FIELD_ARGUMENTS_IDENTIFIER = 'serializeFieldArguments';
12
13
  exports.GET_REQUESTED_FIELD_IDENTIFIER = 'getRequestedField';
14
+ exports.GET_REQUESTED_FIELDS_FOR_TYPE_IDENTIFIER = 'getRequestedFieldsForType';
13
15
  exports.GET_SERIALIZED_KEY_FOR_FIELD_IDENTIFIER = 'getSerializedKeyForField';
14
16
  exports.FIELD_KEY_IDENTIFIER = 'fieldKey';
15
17
  exports.FIELD_DATA_IDENTIFIER = 'fieldData';
16
18
  exports.FIELD_DATA_KEY_IDENTIFIER = 'fieldDataKey';
17
19
  exports.REQUESTED_FIELD_IDENTIFIER = 'requestedField';
20
+ exports.REQUESTED_FIELD_NAME_IDENTIFIER = 'requestedFieldName';
21
+ exports.SINK_IDENTIFIER = 'sink';
18
22
  //# 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;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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,4BAA4B,GAAG,kBAAkB,CAAC;AAClD,QAAA,+BAA+B,GAAG,oBAAoB,CAAC;AACvD,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,wCAAwC,GAAG,2BAA2B,CAAC;AACvE,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;AAC9C,QAAA,+BAA+B,GAAG,oBAAoB,CAAC;AACvD,QAAA,eAAe,GAAG,MAAM,CAAC"}
@@ -14,11 +14,12 @@ function generateTypeUtil(graphqlResource, metadata) {
14
14
  var _a;
15
15
  return (0, imports_1.resolveImports)((0, deindent_1.default) `
16
16
  export type ${constants_3.GRAPHQL_VARIABLES_IDENTIFIER} = Record<string, any>;
17
-
17
+ export type ${constants_3.GRAPHQL_FRAGMENT_MAP_IDENTIFIER} = Record<string, ${constants_2.LUVIO_GRAPHQL_FRAGMENT_DEFINITION_NODE_IMPORT}>;
18
18
  export interface ${constants_3.GRAPHQL_STATE_INTERFACE_IDENTIFIER}<D = unknown> {
19
19
  data: D,
20
20
  variables: ${constants_3.GRAPHQL_VARIABLES_IDENTIFIER},
21
- path: ${constants_1.ADAPTER_INGEST_PATH_INTERFACE_IDENTIFIER}
21
+ fragments: ${constants_3.GRAPHQL_FRAGMENT_MAP_IDENTIFIER},
22
+ path: ${constants_1.ADAPTER_INGEST_PATH_INTERFACE_IDENTIFIER},
22
23
  ${constants_2.LUVIO_IDENTIFIER}: ${constants_2.LUVIO_IMPORT},
23
24
  ${constants_2.LUVIO_STORE_IDENTIFIER}: ${constants_2.LUVIO_STORE_IMPORT},
24
25
  ${constants_3.TIMESTAMP_IDENTIFIER}: number
@@ -88,6 +89,27 @@ function generateTypeUtil(graphqlResource, metadata) {
88
89
  const argumentString : string = field.arguments && field.arguments.length > 0 ? '__' + ${constants_3.SERIALIZE_FIELD_ARGUMENTS_IDENTIFIER}(field.arguments, variables) : '';
89
90
  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
+ export function ${constants_3.GET_REQUESTED_FIELDS_FOR_TYPE_IDENTIFIER}(typename: string, selectionSet: ${constants_2.LUVIO_GRAPHQL_SELECTION_SET_NODE_IMPORT}, namedFragmentsMap: ${constants_3.GRAPHQL_FRAGMENT_MAP_IDENTIFIER}): ${constants_2.LUVIO_GRAPHQL_FIELD_NODE_IMPORT}[] {
94
+ const selections = [];
95
+ selectionSet.selections.forEach(selection => {
96
+ if(selection.kind === "Field") {
97
+ selections.push(selection);
98
+ }
99
+ if(selection.kind === "InlineFragment" && selection.typeCondition.name.value === typename) {
100
+ ${constants_3.GET_REQUESTED_FIELDS_FOR_TYPE_IDENTIFIER}(typename, selection.selectionSet, namedFragmentsMap)
101
+ .forEach(fragmentFieldSelection => selections.push(fragmentFieldSelection));
102
+ }
103
+ if(selection.kind === "FragmentSpread") {
104
+ const namedFragment = namedFragmentsMap[selection.name.value];
105
+ if(namedFragment && namedFragment.typeCondition.name.value === typename) {
106
+ ${constants_3.GET_REQUESTED_FIELDS_FOR_TYPE_IDENTIFIER}(typename, namedFragment.selectionSet, namedFragmentsMap)
107
+ .forEach(fragmentFieldSelection => selections.push(fragmentFieldSelection));
108
+ }
109
+ }
110
+ });
111
+ return selections;
112
+ }
91
113
  `);
92
114
  }
93
115
  exports.generateTypeUtil = generateTypeUtil;
@@ -1 +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
+ {"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,sDAUgC;AAChC,2CAUqB;AAErB,SAAgB,gBAAgB,CAC5B,eAAgC,EAChC,QAAgC;;IAEhC,OAAO,IAAA,wBAAc,EAAC,IAAA,kBAAQ,EAAA;sBACZ,wCAA4B;sBAC5B,2CAA+B,qBAAqB,yDAA6C;2BAC5F,8CAAkC;;yBAEpC,wCAA4B;yBAC5B,2CAA+B;oBACpC,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;;;;0BAI/G,oDAAwC,oCAAoC,mDAAuC,wBAAwB,2CAA+B,MAAM,2CAA+B;;;;;;;sBAOnN,oDAAwC;;;;;;0BAMpC,oDAAwC;;;;;;;KAO7D,CAAC,CAAC;AACP,CAAC;AA3GD,4CA2GC"}
@@ -2,4 +2,4 @@ import type { ImportContext } from '../../../utils/imports';
2
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
- export declare function generateType(graphqlDsl: LuvioGraphQLDSL, typeName: string, def: ObjectTypeDefinitionNode, importContext: ImportContext, metadata: GraphQLCodegenMetadata): string;
5
+ export declare function generateType(graphqlDsl: LuvioGraphQLDSL, graphqlTypeName: string, def: ObjectTypeDefinitionNode, importContext: ImportContext, metadata: GraphQLCodegenMetadata): string;
@@ -9,14 +9,18 @@ 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
+ const merge_1 = require("./merge");
12
13
  const imports_1 = require("../../../utils/imports");
13
- function generateType(graphqlDsl, typeName, def, importContext, metadata) {
14
+ const select_1 = require("./select");
15
+ function generateType(graphqlDsl, graphqlTypeName, def, importContext, metadata) {
14
16
  return (0, imports_1.resolveImports)((0, deindent_1.default) `
15
- export const name = '${typeName}';
16
- ${(0, ttl_1.generateTtl)(graphqlDsl, typeName)}
17
- ${(0, interface_1.generateInterface)(typeName, def, importContext, metadata)}
17
+ export const name = '${graphqlTypeName}';
18
+ ${(0, ttl_1.generateTtl)(graphqlDsl, graphqlTypeName)}
19
+ ${(0, interface_1.generateInterfaces)(graphqlDsl, graphqlTypeName, def, importContext, metadata)}
18
20
  ${(0, key_1.generateKey)(def, importContext, graphqlDsl.schemaName)}
19
- ${(0, ingest_1.generateIngest)(graphqlDsl, typeName, def, importContext, metadata)}
21
+ ${(0, merge_1.generateMerge)(importContext)}
22
+ ${(0, ingest_1.generateIngest)(graphqlDsl, graphqlTypeName, def, importContext, metadata)}
23
+ ${(0, select_1.generateSelect)(graphqlDsl, graphqlTypeName, def, importContext, metadata)}
20
24
  `);
21
25
  }
22
26
  exports.generateType = generateType;
@@ -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;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
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/index.ts"],"names":[],"mappings":";;;;;;AAAA,uEAA+C;AAC/C,+BAAoC;AACpC,2CAAiD;AACjD,qCAA0C;AAC1C,+BAAoC;AACpC,mCAAwC;AACxC,oDAAwD;AAKxD,qCAA0C;AAE1C,SAAgB,YAAY,CACxB,UAA2B,EAC3B,eAAuB,EACvB,GAA6B,EAC7B,aAA4B,EAC5B,QAAgC;IAEhC,OAAO,IAAA,wBAAc,EAAC,IAAA,kBAAQ,EAAA;+BACH,eAAe;UACpC,IAAA,iBAAW,EAAC,UAAU,EAAE,eAAe,CAAC;UACxC,IAAA,8BAAkB,EAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UAC7E,IAAA,iBAAW,EAAC,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC,UAAU,CAAC;UACtD,IAAA,qBAAa,EAAC,aAAa,CAAC;UAC5B,IAAA,uBAAc,EAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UACzE,IAAA,uBAAc,EAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;KAC9E,CAAC,CAAC;AACP,CAAC;AAhBD,oCAgBC"}
@@ -6,5 +6,4 @@ 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, importContext: ImportContext, normalizableTypeMap: NormalizableTypes): string;
10
9
  export declare function generateIngest(graphqlDsl: LuvioGraphQLDSL, typeName: string, def: ObjectTypeDefinitionNode, importContext: ImportContext, _metadata: GraphQLCodegenMetadata): string;
@@ -3,13 +3,14 @@ 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.generateIngest = exports.generateIngestFromDef = exports.ingestType = exports.ingestListType = exports.ingestNamedType = void 0;
6
+ exports.generateIngest = exports.ingestType = exports.ingestListType = exports.ingestNamedType = void 0;
7
7
  const deindent_1 = __importDefault(require("../../../utils/deindent"));
8
8
  const constants_1 = require("../../shared/constants");
9
9
  const utils_1 = require("../utils");
10
- const ttl_1 = require("./ttl");
10
+ const utils_2 = require("./utils");
11
11
  const constants_2 = require("./constants");
12
12
  const interface_1 = require("./interface");
13
+ const types_1 = require("../utils/types");
13
14
  const REQUESTED_FIELDS_IDENTIFIER = 'requestedFields';
14
15
  function ingestNamedType(field, typeNode, importContext, normalizableTypeMap) {
15
16
  const typeName = (0, utils_1.resolveTypeName)(typeNode);
@@ -21,22 +22,23 @@ function ingestNamedType(field, typeNode, importContext, normalizableTypeMap) {
21
22
  }
22
23
  const typeNameIngestImport = importGraphQLArtifact(typeName, constants_2.TYPE_INGEST_IDENTIFIER);
23
24
  const fieldStateIdentifier = `${fieldName}State`;
24
- return `if(${constants_2.REQUESTED_FIELD_IDENTIFIER}.name.value === '${fieldName}') {
25
- const ${fieldStateIdentifier} = {
26
- ...state,
27
- path: {
28
- parent: null,
29
- propertyName: ${constants_2.FIELD_KEY_IDENTIFIER},
30
- fullPath: key + '__' + ${constants_2.FIELD_KEY_IDENTIFIER}
31
- },
32
- data: ${constants_2.FIELD_DATA_IDENTIFIER},
25
+ return (0, deindent_1.default) `
26
+ if(${constants_2.REQUESTED_FIELD_IDENTIFIER}.name.value === '${fieldName}') {
27
+ const ${fieldStateIdentifier} = {
28
+ ...state,
29
+ path: {
30
+ parent: null,
31
+ propertyName: ${constants_2.FIELD_KEY_IDENTIFIER},
32
+ fullPath: key + '__' + ${constants_2.FIELD_KEY_IDENTIFIER}
33
+ },
34
+ data: ${constants_2.FIELD_DATA_IDENTIFIER},
35
+ };
36
+ dataSink[${constants_2.FIELD_KEY_IDENTIFIER}] = ${typeNameIngestImport}(
37
+ ${constants_2.REQUESTED_FIELD_IDENTIFIER},
38
+ ${fieldStateIdentifier}
39
+ ) as any;
33
40
  };
34
- delete data[${constants_2.FIELD_DATA_KEY_IDENTIFIER}]; // TODO (W-11126527): prefer using a dataSink instead
35
- data[${constants_2.FIELD_KEY_IDENTIFIER}] = ${typeNameIngestImport}(
36
- ${constants_2.REQUESTED_FIELD_IDENTIFIER},
37
- ${fieldStateIdentifier}
38
- ) as any;
39
- };`;
41
+ `;
40
42
  }
41
43
  exports.ingestNamedType = ingestNamedType;
42
44
  function ingestListType(field, typeNode, importContext, normalizableTypeMap) {
@@ -52,7 +54,8 @@ function ingestListType(field, typeNode, importContext, normalizableTypeMap) {
52
54
  return generateIngestScalarField(fieldName);
53
55
  }
54
56
  const typeNameIngestImport = importGraphQLArtifact(typeName, constants_2.TYPE_INGEST_IDENTIFIER);
55
- return `if(${constants_2.REQUESTED_FIELD_IDENTIFIER}.name.value === '${fieldName}') {
57
+ return (0, deindent_1.default) `
58
+ if(${constants_2.REQUESTED_FIELD_IDENTIFIER}.name.value === '${fieldName}') {
56
59
  const ${collectionIdentifier}: ${constants_1.LUVIO_STORE_LINK_IMPORT}[] = [];
57
60
  const ${fullPathIdentifier} = \`\${key}__\${${constants_2.FIELD_KEY_IDENTIFIER}}\`;
58
61
  for(let i = 0, len = ${dataIdentifier}.length; i < len; i++) {
@@ -72,19 +75,18 @@ function ingestListType(field, typeNode, importContext, normalizableTypeMap) {
72
75
  itemState
73
76
  )
74
77
  }
75
- ${constants_1.LUVIO_IDENTIFIER}.storePublish(${fullPathIdentifier}, ${collectionIdentifier})
76
- ${dataIdentifier} = {
77
- __ref: ${fullPathIdentifier}
78
- } as any;
78
+
79
+ dataSink[${constants_2.FIELD_KEY_IDENTIFIER}] = ${collectionIdentifier};
79
80
  };
80
81
  `;
81
82
  }
82
83
  exports.ingestListType = ingestListType;
83
84
  function generateIngestScalarField(fieldName) {
84
- return `if(${constants_2.REQUESTED_FIELD_IDENTIFIER}.name.value === '${fieldName}') {
85
- delete data[${constants_2.FIELD_DATA_KEY_IDENTIFIER}]; // TODO (W-11126527): prefer using a dataSink instead
86
- data[${constants_2.FIELD_KEY_IDENTIFIER}] = ${constants_2.FIELD_DATA_IDENTIFIER};
87
- }`;
85
+ return (0, deindent_1.default) `
86
+ if(${constants_2.REQUESTED_FIELD_IDENTIFIER}.name.value === '${fieldName}') {
87
+ dataSink[${constants_2.FIELD_KEY_IDENTIFIER}] = ${constants_2.FIELD_DATA_IDENTIFIER};
88
+ }
89
+ `;
88
90
  }
89
91
  function ingestType(field, typeNode, importContext, normalizableTypeMap) {
90
92
  if (field === undefined) {
@@ -100,39 +102,31 @@ function ingestType(field, typeNode, importContext, normalizableTypeMap) {
100
102
  }
101
103
  }
102
104
  exports.ingestType = ingestType;
103
- function generateIngestFromDef(graphqlDsl, def, importContext, normalizableTypeMap) {
104
- const { schema } = graphqlDsl;
105
- const type = schema.getType(def.name.value);
106
- return generateObjectTypeIngest(type, importContext, normalizableTypeMap);
107
- }
108
- exports.generateIngestFromDef = generateIngestFromDef;
109
105
  function generateObjectTypeIngest(type, importContext, normalizableTypeMap) {
110
- const fieldMap = type.getFields();
111
- const fieldList = Object.keys(fieldMap);
112
- const fieldIngestStatements = fieldList
113
- .map((fieldName) => {
114
- var _a, _b;
115
- const field = fieldMap[fieldName];
116
- if (((_a = field.astNode) === null || _a === void 0 ? void 0 : _a.type) === undefined) {
106
+ const fields = (0, types_1.getObjectFields)(type);
107
+ const fieldIngestStatements = fields
108
+ .map((field) => {
109
+ if (field.type === undefined) {
117
110
  return '';
118
111
  }
119
- return ingestType(field.astNode, (_b = field.astNode) === null || _b === void 0 ? void 0 : _b.type, importContext, normalizableTypeMap);
112
+ return ingestType(field, field.type, importContext, normalizableTypeMap);
120
113
  })
121
114
  .filter((statement) => statement !== '');
122
115
  const eachFieldHandling = fieldIngestStatements.join('\n');
123
116
  const ingestStatements = [
124
- getRequestedFieldsStatement(),
117
+ getRequestedFieldsStatement(importContext),
125
118
  iterateThroughResponseKeys(importContext, eachFieldHandling),
126
119
  ];
127
120
  return ingestStatements.join('\n');
128
121
  }
129
- function getRequestedFieldsStatement() {
130
- return `const ${REQUESTED_FIELDS_IDENTIFIER}: ${constants_1.LUVIO_GRAPHQL_FIELD_NODE_IMPORT}[] = astNode && astNode.selectionSet ?
131
- astNode.selectionSet.selections
132
- .filter((i): i is ${constants_1.LUVIO_GRAPHQL_FIELD_NODE_IMPORT} => {
133
- return i.kind === "Field";
134
- }) :
135
- [];`;
122
+ function getRequestedFieldsStatement(importContext) {
123
+ const getRequestedFieldsImport = importContext.importGraphQLArtifact(constants_2.TYPE_UTIL_IDENTIFIER, constants_2.GET_REQUESTED_FIELDS_FOR_TYPE_IDENTIFIER);
124
+ return (0, deindent_1.default) `
125
+ const ${REQUESTED_FIELDS_IDENTIFIER}: ${constants_1.LUVIO_GRAPHQL_FIELD_NODE_IMPORT}[] =
126
+ astNode && astNode.selectionSet ?
127
+ ${getRequestedFieldsImport}(name, astNode.selectionSet, state.fragments) :
128
+ [];
129
+ `;
136
130
  }
137
131
  function iterateThroughResponseKeys(importContext, individualFieldIngestBlock) {
138
132
  const getRequestedFieldImport = importContext.importGraphQLArtifact(constants_2.TYPE_UTIL_IDENTIFIER, constants_2.GET_REQUESTED_FIELD_IDENTIFIER);
@@ -159,7 +153,7 @@ function generateIngest(graphqlDsl, typeName, def, importContext, _metadata) {
159
153
  const createLink = importGraphQLArtifact(constants_2.TYPE_UTIL_IDENTIFIER, constants_2.CREATE_LINK_IDENTIFIER);
160
154
  const graphqlStateInterface = importGraphQLArtifact(constants_2.TYPE_UTIL_IDENTIFIER, constants_2.GRAPHQL_STATE_INTERFACE_IDENTIFIER);
161
155
  const keyPrefix = importAdapterUtil('keyPrefix');
162
- const ttl = (0, ttl_1.isTypeTtlDefined)(graphqlDsl.typeExtensions, typeName)
156
+ const ttl = (0, utils_2.isTypeExtensionDefined)(graphqlDsl.typeNameToExtensions, typeName, 'ttl')
163
157
  ? 'TTL'
164
158
  : importGraphQLArtifact(constants_2.TYPE_UTIL_IDENTIFIER, 'TTL');
165
159
  const astNodeParamType = ((_a = schema.getQueryType()) === null || _a === void 0 ? void 0 : _a.name) === typeName
@@ -167,15 +161,26 @@ function generateIngest(graphqlDsl, typeName, def, importContext, _metadata) {
167
161
  : constants_1.LUVIO_GRAPHQL_FIELD_NODE_IMPORT;
168
162
  return (0, deindent_1.default) `
169
163
  export function ingest(astNode: ${astNodeParamType}, state: ${graphqlStateInterface}<${interface_1.PARTIAL_INTERFACE_IDENTIFIER}>) {
170
- const { path, ${constants_1.LUVIO_IDENTIFIER} } = state;
164
+ const { path, ${constants_1.LUVIO_IDENTIFIER}, ${constants_1.LUVIO_STORE_IDENTIFIER} } = state;
171
165
  const data = state.data;
172
166
  const key = ${constants_2.KEY_BUILDER_IDENTIFIER}(path, data);
173
167
 
174
168
  // normalize fields
175
- ${generateIngestFromDef(graphqlDsl, def, importContext, normalizableTypeMap)};
176
-
169
+ const dataSink = <PartialInterface>({});
170
+ ${generateObjectTypeIngest(def, importContext, normalizableTypeMap)};
171
+
172
+ // merge existing cache data and new request response data
173
+ let mergedData: PartialInterface;
174
+ const existingData = ${constants_1.LUVIO_STORE_IDENTIFIER}.readEntry<${interface_1.PARTIAL_INTERFACE_IDENTIFIER}>(key);
175
+ if (existingData !== undefined && existingData.__type !== "error") {
176
+ mergedData = mergeData(existingData as PartialInterface, dataSink);
177
+ }
178
+ else {
179
+ mergedData = dataSink;
180
+ }
181
+
177
182
  // publish
178
- ${constants_1.LUVIO_IDENTIFIER}.storePublish(key, data);
183
+ ${constants_1.LUVIO_IDENTIFIER}.storePublish(key, mergedData);
179
184
 
180
185
  const storeMetadataParams = {
181
186
  ttl: ${ttl},
@@ -1 +1 @@
1
- {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/ingest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/ingest.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { ObjectTypeDefinitionNode, TypeNode } from '@luvio/graphql-parser';
2
2
  import type { GraphQLCodegenMetadata } from '../source-printer/graphql-source-printer';
3
3
  import type { ImportContext } from '../../../utils/imports';
4
+ import type { LuvioGraphQLDSL } from '../../../intermediate/graphql';
4
5
  export declare const TYPE_INTERFACE_IDENTIFIER = "Interface";
5
6
  export declare const MINIMUM_INTERFACE_IDENTIFIER: string;
6
7
  export declare const PARTIAL_INTERFACE_IDENTIFIER: string;
@@ -8,4 +9,4 @@ export declare function generateTypeReference(type: TypeNode, importContext: Imp
8
9
  required: boolean;
9
10
  array: boolean;
10
11
  }): string;
11
- export declare function generateInterface(name: string, def: ObjectTypeDefinitionNode, importContext: ImportContext, metadata: GraphQLCodegenMetadata): string;
12
+ export declare function generateInterfaces(graphqlDsl: LuvioGraphQLDSL, graphqlTypeName: string, def: ObjectTypeDefinitionNode, importContext: ImportContext, metadata: GraphQLCodegenMetadata): string;