@luvio/compiler 0.121.0 → 0.121.1

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 (44) hide show
  1. package/dist/codegen/graphql/interface/index.d.ts +1 -1
  2. package/dist/codegen/graphql/interface/index.js +10 -8
  3. package/dist/codegen/graphql/interface/index.js.map +1 -1
  4. package/dist/codegen/graphql/type/constants.d.ts +5 -3
  5. package/dist/codegen/graphql/type/constants.js +7 -5
  6. package/dist/codegen/graphql/type/constants.js.map +1 -1
  7. package/dist/codegen/graphql/type/fragment-type.d.ts +4 -0
  8. package/dist/codegen/graphql/type/fragment-type.js +20 -0
  9. package/dist/codegen/graphql/type/fragment-type.js.map +1 -0
  10. package/dist/codegen/graphql/type/generateTypeUtil.js +98 -46
  11. package/dist/codegen/graphql/type/generateTypeUtil.js.map +1 -1
  12. package/dist/codegen/graphql/type/index.js +4 -2
  13. package/dist/codegen/graphql/type/index.js.map +1 -1
  14. package/dist/codegen/graphql/type/interface.d.ts +2 -2
  15. package/dist/codegen/graphql/type/interface.js +3 -8
  16. package/dist/codegen/graphql/type/interface.js.map +1 -1
  17. package/dist/codegen/graphql/type/key.d.ts +2 -2
  18. package/dist/codegen/graphql/type/key.js +1 -1
  19. package/dist/codegen/graphql/type/key.js.map +1 -1
  20. package/dist/codegen/graphql/type/minimumFields.d.ts +6 -0
  21. package/dist/codegen/graphql/type/minimumFields.js +68 -0
  22. package/dist/codegen/graphql/type/minimumFields.js.map +1 -0
  23. package/dist/codegen/graphql/type/type-from-field.d.ts +2 -2
  24. package/dist/codegen/graphql/type/type-from-field.js.map +1 -1
  25. package/dist/codegen/graphql/union/index.d.ts +1 -1
  26. package/dist/codegen/graphql/union/index.js +12 -6
  27. package/dist/codegen/graphql/union/index.js.map +1 -1
  28. package/dist/codegen/graphql/utils/types.d.ts +3 -3
  29. package/dist/codegen/graphql/utils/types.js +3 -0
  30. package/dist/codegen/graphql/utils/types.js.map +1 -1
  31. package/dist/codegen/shape/graphql/shape-cache-keys.js +2 -6
  32. package/dist/codegen/shape/graphql/shape-cache-keys.js.map +1 -1
  33. package/dist/codegen/shape/graphql/shape-ingest.js +2 -6
  34. package/dist/codegen/shape/graphql/shape-ingest.js.map +1 -1
  35. package/dist/codegen/shared/constants.d.ts +1 -0
  36. package/dist/codegen/shared/constants.js +2 -1
  37. package/dist/codegen/shared/constants.js.map +1 -1
  38. package/package.json +4 -4
  39. package/dist/codegen/graphql/interface/query-transformer.d.ts +0 -5
  40. package/dist/codegen/graphql/interface/query-transformer.js +0 -21
  41. package/dist/codegen/graphql/interface/query-transformer.js.map +0 -1
  42. package/dist/codegen/graphql/type/query-transformer.d.ts +0 -8
  43. package/dist/codegen/graphql/type/query-transformer.js +0 -193
  44. package/dist/codegen/graphql/type/query-transformer.js.map +0 -1
@@ -3,4 +3,4 @@ import type { InterfaceTypeDefinitionNode } from '@luvio/graphql-parser';
3
3
  import type { LuvioGraphQLDSL } from '../../../intermediate/graphql';
4
4
  import type { GraphQLCodegenMetadata } from '../source-printer';
5
5
  import type { ModelInfo } from '../../../main';
6
- export declare function generateInterfaceType(graphqlDsl: LuvioGraphQLDSL, typeName: string, def: InterfaceTypeDefinitionNode, importContext: ImportContext, metadata: GraphQLCodegenMetadata, modelInfo: ModelInfo): string;
6
+ export declare function generateInterfaceType(graphqlDsl: LuvioGraphQLDSL, graphqlTypeName: string, def: InterfaceTypeDefinitionNode, importContext: ImportContext, metadata: GraphQLCodegenMetadata, modelInfo: ModelInfo): string;
@@ -9,20 +9,22 @@ const interface_1 = require("./interface");
9
9
  const ingest_1 = require("./ingest");
10
10
  const imports_1 = require("../../../utils/imports");
11
11
  const select_1 = require("./select");
12
- const query_transformer_1 = require("./query-transformer");
13
12
  const type_cache_keys_1 = require("./type-cache-keys");
14
13
  const type_from_field_1 = require("../type/type-from-field");
15
14
  const version_1 = require("./version");
16
- function generateInterfaceType(graphqlDsl, typeName, def, importContext, metadata, modelInfo) {
15
+ const fragment_type_1 = require("../type/fragment-type");
16
+ const minimumFields_1 = require("../type/minimumFields");
17
+ function generateInterfaceType(graphqlDsl, graphqlTypeName, def, importContext, metadata, modelInfo) {
17
18
  return (0, imports_1.resolveImports)((0, deindent_1.default) `
18
- export const name = '${typeName}';
19
- ${(0, interface_1.generateInterface)(typeName, def, importContext, metadata)}
19
+ export const name = '${graphqlTypeName}';
20
+ ${(0, interface_1.generateInterface)(graphqlTypeName, def, importContext, metadata)}
20
21
  ${(0, version_1.generateVersion)()}
21
- ${(0, ingest_1.generateIngest)(graphqlDsl, typeName, def, importContext, metadata)}
22
- ${(0, select_1.generateSelect)(graphqlDsl, typeName, def, importContext, metadata, modelInfo)}
23
- ${(0, query_transformer_1.generate)(graphqlDsl, typeName, def, importContext, metadata)}
24
- ${(0, type_cache_keys_1.generateGetTypeCacheKeys)(graphqlDsl, typeName, def, importContext, metadata)}
22
+ ${(0, ingest_1.generateIngest)(graphqlDsl, graphqlTypeName, def, importContext, metadata)}
23
+ ${(0, select_1.generateSelect)(graphqlDsl, graphqlTypeName, def, importContext, metadata, modelInfo)}
24
+ ${(0, minimumFields_1.generateGetMinimumSelections)(graphqlDsl, graphqlTypeName, def, importContext, metadata)}
25
+ ${(0, type_cache_keys_1.generateGetTypeCacheKeys)(graphqlDsl, graphqlTypeName, def, importContext, metadata)}
25
26
  ${(0, type_from_field_1.generateGetFieldType)(graphqlDsl, def)}
27
+ ${(0, fragment_type_1.generateGetFragmentType)(graphqlDsl, def, importContext)}
26
28
  `);
27
29
  }
28
30
  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;AAKxD,qCAA0C;AAC1C,2DAA2E;AAC3E,uDAA6D;AAC7D,6DAA+D;AAC/D,uCAA4C;AAG5C,SAAgB,qBAAqB,CACjC,UAA2B,EAC3B,QAAgB,EAChB,GAAgC,EAChC,aAA4B,EAC5B,QAAgC,EAChC,SAAoB;IAEpB,OAAO,IAAA,wBAAc,EAAC,IAAA,kBAAQ,EAAA;+BACH,QAAQ;UAC7B,IAAA,6BAAiB,EAAC,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UACzD,IAAA,yBAAe,GAAE;UACjB,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,EAAE,SAAS,CAAC;UAC7E,IAAA,4BAAwB,EAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UAC5E,IAAA,0CAAwB,EAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UAC5E,IAAA,sCAAoB,EAAC,UAAU,EAAE,GAAG,CAAC;KAC1C,CAAC,CAAC;AACP,CAAC;AAlBD,sDAkBC"}
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;AAC1C,uDAA6D;AAC7D,6DAA+D;AAC/D,uCAA4C;AAE5C,yDAAgE;AAChE,yDAAqE;AAErE,SAAgB,qBAAqB,CACjC,UAA2B,EAC3B,eAAuB,EACvB,GAAgC,EAChC,aAA4B,EAC5B,QAAgC,EAChC,SAAoB;IAEpB,OAAO,IAAA,wBAAc,EAAC,IAAA,kBAAQ,EAAA;+BACH,eAAe;UACpC,IAAA,6BAAiB,EAAC,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UAChE,IAAA,yBAAe,GAAE;UACjB,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,EAAE,SAAS,CAAC;UACpF,IAAA,4CAA4B,EAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UACvF,IAAA,0CAAwB,EAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UACnF,IAAA,sCAAoB,EAAC,UAAU,EAAE,GAAG,CAAC;UACrC,IAAA,uCAAuB,EAAC,UAAU,EAAE,GAAG,EAAE,aAAa,CAAC;KAC5D,CAAC,CAAC;AACP,CAAC;AAnBD,sDAmBC"}
@@ -22,8 +22,6 @@ export declare const REQUESTED_FIELD_IDENTIFIER = "requestedField";
22
22
  export declare const REQUESTED_FIELD_NAME_IDENTIFIER = "requestedFieldName";
23
23
  export declare const SINK_IDENTIFIER = "sink";
24
24
  export declare const APPLY_MINIMUM_FIELDS_TO_QUERY_IDENTIFIER = "applyMinimumFieldsToQuery";
25
- export declare const GET_QUERY_TRANSFORM_HELPER_FOR_FIELD_IDENTIFIER = "getQueryTransformHelperForField";
26
- export declare const GET_QUERY_TRANSFORM_HELPER_FOR_TYPE_IDENTIFIER = "getQueryTransformHelperForType";
27
25
  export declare const GET_MINIMUM_SELECTIONS_IDENTIFIER = "getMinimumSelections";
28
26
  export declare const QUERY_TRANSFORM_HELPER_IDENTIFIER = "QueryTransformHelper";
29
27
  export declare const GET_FIELD_TYPE_IDENTIFIER = "getFieldType";
@@ -51,4 +49,8 @@ export declare const GRAPHQL_LUVIO_STATE_INTERFACE_IDENTIFIER = "GraphQLLuvioSta
51
49
  export declare const MAPPED_TYPE_CACHE_KEYS_IDENTIFIER = "getMappedTypeCacheKeys";
52
50
  export declare const LINK_IDENTIFIER = "__link";
53
51
  export declare const LINKED_DATA_IDENTIFIER = "__linkedData";
54
- export declare const FILTER_MINIMUM_SELECTIONS_IDENTIFIER = "filterMinimumSelections";
52
+ export declare const MERGE_SELECTIONS_IDENTIFIER = "mergeSelections";
53
+ export declare const CREATE_FRAGMENT_MAP_IDENTIFIER = "createFragmentMap";
54
+ export declare const GET_IN_CONTEXT_FRAGMENT_TYPE_IDENTIFIER = "getInContextFragmentType";
55
+ export declare const SHARED_GET_IN_CONTEXT_FRAGMENT_TYPE_IDENTIFIER = "sharedGetFragmentType";
56
+ export declare const GET_CURSOR_CONNECTION_MINIMUM_SELECTIONS_IDENTIFIER = "getCursorConnectionMinimumSelections";
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GRAPHQL_LUVIO_STATE_INTERFACE_IDENTIFIER = exports.ATTACH_MAPPED_DATA_IDENTIFIER = exports.SELECT_TYPE_IDENTIFIER = exports.NORMALIZED_GRAPHQL_TYPE = exports.INGEST_MAPPED_DATA = exports.GET_FIELD_DATA_IDENTIFIER = exports.AFTER_IDENTIFIER = exports.FIRST_IDENTIFIER = exports.REQUESTED_FIELDS_IDENTIFIER = exports.IS_FRAGMENT_APPLICABLE_IDENTIFIER = exports.TYPE_NAME_IDENTIFIER = exports.START_CURSOR_IDENTIFIER = exports.END_CURSOR_IDENTIFIER = exports.HAS_PREVIOUS_PAGE_IDENTIFIER = exports.HAS_NEXT_PAGE_IDENTIFIER = exports.CURSOR_IDENTIFIER = exports.NODE_IDENTIFIER = exports.EDGES_IDENTIFIER = exports.PAGE_INFO_IDENTIFIER = exports.IS_MAPPED_FIELD_IDENTIFIER = exports.INGEST_FIELD_BY_TYPE_IDENTIFIER = exports.GET_FIELD_TYPE_IDENTIFIER = exports.QUERY_TRANSFORM_HELPER_IDENTIFIER = exports.GET_MINIMUM_SELECTIONS_IDENTIFIER = exports.GET_QUERY_TRANSFORM_HELPER_FOR_TYPE_IDENTIFIER = exports.GET_QUERY_TRANSFORM_HELPER_FOR_FIELD_IDENTIFIER = exports.APPLY_MINIMUM_FIELDS_TO_QUERY_IDENTIFIER = exports.SINK_IDENTIFIER = exports.REQUESTED_FIELD_NAME_IDENTIFIER = exports.REQUESTED_FIELD_IDENTIFIER = exports.FIELD_TYPE_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_CACHE_KEYS_IDENTIFIER = exports.TYPE_CONVERT_IDENTIFIER = exports.TYPE_INGEST_IDENTIFIER = exports.TYPE_UTIL_IDENTIFIER = exports.CREATE_LINK_IDENTIFIER = exports.TIMESTAMP_IDENTIFIER = exports.GRAPHQL_TYPE_DETAILS_INTERFACE_IDENTIFIER = exports.GRAPHQL_STATE_INTERFACE_IDENTIFIER = exports.GRAPHQL_INGEST_STATE_INTERFACE_IDENTIFIER = exports.GRAPHQL_FRAGMENT_MAP_IDENTIFIER = exports.GRAPHQL_VARIABLES_IDENTIFIER = void 0;
4
- exports.FILTER_MINIMUM_SELECTIONS_IDENTIFIER = exports.LINKED_DATA_IDENTIFIER = exports.LINK_IDENTIFIER = exports.MAPPED_TYPE_CACHE_KEYS_IDENTIFIER = void 0;
3
+ exports.LINK_IDENTIFIER = exports.MAPPED_TYPE_CACHE_KEYS_IDENTIFIER = exports.GRAPHQL_LUVIO_STATE_INTERFACE_IDENTIFIER = exports.ATTACH_MAPPED_DATA_IDENTIFIER = exports.SELECT_TYPE_IDENTIFIER = exports.NORMALIZED_GRAPHQL_TYPE = exports.INGEST_MAPPED_DATA = exports.GET_FIELD_DATA_IDENTIFIER = exports.AFTER_IDENTIFIER = exports.FIRST_IDENTIFIER = exports.REQUESTED_FIELDS_IDENTIFIER = exports.IS_FRAGMENT_APPLICABLE_IDENTIFIER = exports.TYPE_NAME_IDENTIFIER = exports.START_CURSOR_IDENTIFIER = exports.END_CURSOR_IDENTIFIER = exports.HAS_PREVIOUS_PAGE_IDENTIFIER = exports.HAS_NEXT_PAGE_IDENTIFIER = exports.CURSOR_IDENTIFIER = exports.NODE_IDENTIFIER = exports.EDGES_IDENTIFIER = exports.PAGE_INFO_IDENTIFIER = exports.IS_MAPPED_FIELD_IDENTIFIER = exports.INGEST_FIELD_BY_TYPE_IDENTIFIER = exports.GET_FIELD_TYPE_IDENTIFIER = exports.QUERY_TRANSFORM_HELPER_IDENTIFIER = exports.GET_MINIMUM_SELECTIONS_IDENTIFIER = exports.APPLY_MINIMUM_FIELDS_TO_QUERY_IDENTIFIER = exports.SINK_IDENTIFIER = exports.REQUESTED_FIELD_NAME_IDENTIFIER = exports.REQUESTED_FIELD_IDENTIFIER = exports.FIELD_TYPE_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_CACHE_KEYS_IDENTIFIER = exports.TYPE_CONVERT_IDENTIFIER = exports.TYPE_INGEST_IDENTIFIER = exports.TYPE_UTIL_IDENTIFIER = exports.CREATE_LINK_IDENTIFIER = exports.TIMESTAMP_IDENTIFIER = exports.GRAPHQL_TYPE_DETAILS_INTERFACE_IDENTIFIER = exports.GRAPHQL_STATE_INTERFACE_IDENTIFIER = exports.GRAPHQL_INGEST_STATE_INTERFACE_IDENTIFIER = exports.GRAPHQL_FRAGMENT_MAP_IDENTIFIER = exports.GRAPHQL_VARIABLES_IDENTIFIER = void 0;
4
+ exports.GET_CURSOR_CONNECTION_MINIMUM_SELECTIONS_IDENTIFIER = exports.SHARED_GET_IN_CONTEXT_FRAGMENT_TYPE_IDENTIFIER = exports.GET_IN_CONTEXT_FRAGMENT_TYPE_IDENTIFIER = exports.CREATE_FRAGMENT_MAP_IDENTIFIER = exports.MERGE_SELECTIONS_IDENTIFIER = exports.LINKED_DATA_IDENTIFIER = void 0;
5
5
  exports.GRAPHQL_VARIABLES_IDENTIFIER = 'GraphQLVariables';
6
6
  exports.GRAPHQL_FRAGMENT_MAP_IDENTIFIER = 'GraphQLFragmentMap';
7
7
  exports.GRAPHQL_INGEST_STATE_INTERFACE_IDENTIFIER = 'GraphQLIngestState';
@@ -26,8 +26,6 @@ exports.REQUESTED_FIELD_IDENTIFIER = 'requestedField';
26
26
  exports.REQUESTED_FIELD_NAME_IDENTIFIER = 'requestedFieldName';
27
27
  exports.SINK_IDENTIFIER = 'sink';
28
28
  exports.APPLY_MINIMUM_FIELDS_TO_QUERY_IDENTIFIER = 'applyMinimumFieldsToQuery';
29
- exports.GET_QUERY_TRANSFORM_HELPER_FOR_FIELD_IDENTIFIER = 'getQueryTransformHelperForField';
30
- exports.GET_QUERY_TRANSFORM_HELPER_FOR_TYPE_IDENTIFIER = 'getQueryTransformHelperForType';
31
29
  exports.GET_MINIMUM_SELECTIONS_IDENTIFIER = 'getMinimumSelections';
32
30
  exports.QUERY_TRANSFORM_HELPER_IDENTIFIER = 'QueryTransformHelper';
33
31
  exports.GET_FIELD_TYPE_IDENTIFIER = 'getFieldType';
@@ -55,5 +53,9 @@ exports.GRAPHQL_LUVIO_STATE_INTERFACE_IDENTIFIER = 'GraphQLLuvioState';
55
53
  exports.MAPPED_TYPE_CACHE_KEYS_IDENTIFIER = 'getMappedTypeCacheKeys';
56
54
  exports.LINK_IDENTIFIER = '__link';
57
55
  exports.LINKED_DATA_IDENTIFIER = '__linkedData';
58
- exports.FILTER_MINIMUM_SELECTIONS_IDENTIFIER = 'filterMinimumSelections';
56
+ exports.MERGE_SELECTIONS_IDENTIFIER = 'mergeSelections';
57
+ exports.CREATE_FRAGMENT_MAP_IDENTIFIER = 'createFragmentMap';
58
+ exports.GET_IN_CONTEXT_FRAGMENT_TYPE_IDENTIFIER = 'getInContextFragmentType';
59
+ exports.SHARED_GET_IN_CONTEXT_FRAGMENT_TYPE_IDENTIFIER = 'sharedGetFragmentType';
60
+ exports.GET_CURSOR_CONNECTION_MINIMUM_SELECTIONS_IDENTIFIER = 'getCursorConnectionMinimumSelections';
59
61
  //# 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,+BAA+B,GAAG,oBAAoB,CAAC;AACvD,QAAA,yCAAyC,GAAG,oBAAoB,CAAC;AACjE,QAAA,kCAAkC,GAAG,cAAc,CAAC;AACpD,QAAA,yCAAyC,GAAG,oBAAoB,CAAC;AACjE,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,uBAAuB,GAAG,sBAAsB,CAAC;AACjD,QAAA,0BAA0B,GAAG,kBAAkB,CAAC;AAChD,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,qBAAqB,GAAG,WAAW,CAAC;AACpC,QAAA,0BAA0B,GAAG,gBAAgB,CAAC;AAC9C,QAAA,+BAA+B,GAAG,oBAAoB,CAAC;AACvD,QAAA,eAAe,GAAG,MAAM,CAAC;AACzB,QAAA,wCAAwC,GAAG,2BAA2B,CAAC;AACvE,QAAA,+CAA+C,GAAG,iCAAiC,CAAC;AACpF,QAAA,8CAA8C,GAAG,gCAAgC,CAAC;AAClF,QAAA,iCAAiC,GAAG,sBAAsB,CAAC;AAC3D,QAAA,iCAAiC,GAAG,sBAAsB,CAAC;AAC3D,QAAA,yBAAyB,GAAG,cAAc,CAAC;AAC3C,QAAA,+BAA+B,GAAG,mBAAmB,CAAC;AACtD,QAAA,0BAA0B,GAAG,eAAe,CAAC;AAC7C,QAAA,oBAAoB,GAAG,UAAU,CAAC;AAClC,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAC3B,QAAA,eAAe,GAAG,MAAM,CAAC;AACzB,QAAA,iBAAiB,GAAG,QAAQ,CAAC;AAC7B,QAAA,wBAAwB,GAAG,aAAa,CAAC;AACzC,QAAA,4BAA4B,GAAG,iBAAiB,CAAC;AACjD,QAAA,qBAAqB,GAAG,WAAW,CAAC;AACpC,QAAA,uBAAuB,GAAG,aAAa,CAAC;AACxC,QAAA,oBAAoB,GAAG,YAAY,CAAC;AACpC,QAAA,iCAAiC,GAAG,sBAAsB,CAAC;AAC3D,QAAA,2BAA2B,GAAG,iBAAiB,CAAC;AAChD,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAC3B,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAC3B,QAAA,yBAAyB,GAAG,cAAc,CAAC;AAC3C,QAAA,kBAAkB,GAAG,kBAAkB,CAAC;AACxC,QAAA,uBAAuB,GAAG,mBAAmB,CAAC;AAC9C,QAAA,sBAAsB,GAAG,YAAY,CAAC;AACtC,QAAA,6BAA6B,GAAG,kBAAkB,CAAC;AACnD,QAAA,wCAAwC,GAAG,mBAAmB,CAAC;AAC/D,QAAA,iCAAiC,GAAG,wBAAwB,CAAC;AAC7D,QAAA,eAAe,GAAG,QAAQ,CAAC;AAC3B,QAAA,sBAAsB,GAAG,cAAc,CAAC;AACxC,QAAA,oCAAoC,GAAG,yBAAyB,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,yCAAyC,GAAG,oBAAoB,CAAC;AACjE,QAAA,kCAAkC,GAAG,cAAc,CAAC;AACpD,QAAA,yCAAyC,GAAG,oBAAoB,CAAC;AACjE,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,uBAAuB,GAAG,sBAAsB,CAAC;AACjD,QAAA,0BAA0B,GAAG,kBAAkB,CAAC;AAChD,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,qBAAqB,GAAG,WAAW,CAAC;AACpC,QAAA,0BAA0B,GAAG,gBAAgB,CAAC;AAC9C,QAAA,+BAA+B,GAAG,oBAAoB,CAAC;AACvD,QAAA,eAAe,GAAG,MAAM,CAAC;AACzB,QAAA,wCAAwC,GAAG,2BAA2B,CAAC;AACvE,QAAA,iCAAiC,GAAG,sBAAsB,CAAC;AAC3D,QAAA,iCAAiC,GAAG,sBAAsB,CAAC;AAC3D,QAAA,yBAAyB,GAAG,cAAc,CAAC;AAC3C,QAAA,+BAA+B,GAAG,mBAAmB,CAAC;AACtD,QAAA,0BAA0B,GAAG,eAAe,CAAC;AAC7C,QAAA,oBAAoB,GAAG,UAAU,CAAC;AAClC,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAC3B,QAAA,eAAe,GAAG,MAAM,CAAC;AACzB,QAAA,iBAAiB,GAAG,QAAQ,CAAC;AAC7B,QAAA,wBAAwB,GAAG,aAAa,CAAC;AACzC,QAAA,4BAA4B,GAAG,iBAAiB,CAAC;AACjD,QAAA,qBAAqB,GAAG,WAAW,CAAC;AACpC,QAAA,uBAAuB,GAAG,aAAa,CAAC;AACxC,QAAA,oBAAoB,GAAG,YAAY,CAAC;AACpC,QAAA,iCAAiC,GAAG,sBAAsB,CAAC;AAC3D,QAAA,2BAA2B,GAAG,iBAAiB,CAAC;AAChD,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAC3B,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAC3B,QAAA,yBAAyB,GAAG,cAAc,CAAC;AAC3C,QAAA,kBAAkB,GAAG,kBAAkB,CAAC;AACxC,QAAA,uBAAuB,GAAG,mBAAmB,CAAC;AAC9C,QAAA,sBAAsB,GAAG,YAAY,CAAC;AACtC,QAAA,6BAA6B,GAAG,kBAAkB,CAAC;AACnD,QAAA,wCAAwC,GAAG,mBAAmB,CAAC;AAC/D,QAAA,iCAAiC,GAAG,wBAAwB,CAAC;AAC7D,QAAA,eAAe,GAAG,QAAQ,CAAC;AAC3B,QAAA,sBAAsB,GAAG,cAAc,CAAC;AACxC,QAAA,2BAA2B,GAAG,iBAAiB,CAAC;AAChD,QAAA,8BAA8B,GAAG,mBAAmB,CAAC;AACrD,QAAA,uCAAuC,GAAG,0BAA0B,CAAC;AACrE,QAAA,8CAA8C,GAAG,uBAAuB,CAAC;AACzE,QAAA,mDAAmD,GAC5D,sCAAsC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { InterfaceTypeDefinitionNode, ObjectTypeDefinitionNode, UnionTypeDefinitionNode } from '@luvio/graphql-parser';
2
+ import type { LuvioGraphQLDSL } from '../../../intermediate/graphql';
3
+ import type { ImportContext } from '../../../utils/imports';
4
+ export declare function generateGetFragmentType(graphqlDsl: LuvioGraphQLDSL, def: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode | UnionTypeDefinitionNode, importContext: ImportContext): string;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateGetFragmentType = void 0;
4
+ const constants_1 = require("../../shared/constants");
5
+ const constants_2 = require("./constants");
6
+ function generateGetFragmentType(graphqlDsl, def, importContext) {
7
+ const { schema } = graphqlDsl;
8
+ const type = schema.getType(def.name.value);
9
+ if (!type) {
10
+ return '';
11
+ }
12
+ const sharedGetFragmentTypeImport = importContext.importGraphQLArtifact('types', constants_2.TYPE_UTIL_IDENTIFIER, constants_2.SHARED_GET_IN_CONTEXT_FRAGMENT_TYPE_IDENTIFIER);
13
+ const fragmentMapTypeImport = importContext.importGraphQLArtifact('types', constants_2.TYPE_UTIL_IDENTIFIER, constants_2.GRAPHQL_FRAGMENT_MAP_IDENTIFIER);
14
+ // This function gives us an override hook to support metaschema, otherwise could be just the shared util.
15
+ return `export function ${constants_2.GET_IN_CONTEXT_FRAGMENT_TYPE_IDENTIFIER}(fragment: ${constants_1.LUVIO_GRAPHQL_FRAGMENT_SPREAD_NODE_IMPORT} | ${constants_1.LUVIO_GRAPHQL_INLINE_FRAGMENT_NODE_IMPORT}, fragmentMap: ${fragmentMapTypeImport}): string | undefined {
16
+ return ${sharedGetFragmentTypeImport}(fragment, fragmentMap)
17
+ }`;
18
+ }
19
+ exports.generateGetFragmentType = generateGetFragmentType;
20
+ //# sourceMappingURL=fragment-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fragment-type.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/fragment-type.ts"],"names":[],"mappings":";;;AAOA,sDAGgC;AAChC,2CAKqB;AAErB,SAAgB,uBAAuB,CACnC,UAA2B,EAC3B,GAAqF,EACrF,aAA4B;IAE5B,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,2BAA2B,GAAG,aAAa,CAAC,qBAAqB,CACnE,OAAO,EACP,gCAAoB,EACpB,0DAA8C,CACjD,CAAC;IACF,MAAM,qBAAqB,GAAG,aAAa,CAAC,qBAAqB,CAC7D,OAAO,EACP,gCAAoB,EACpB,2CAA+B,CAClC,CAAC;IACF,0GAA0G;IAC1G,OAAO,mBAAmB,mDAAuC,cAAc,qDAAyC,MAAM,qDAAyC,kBAAkB,qBAAqB;qBAC7L,2BAA2B;UACtC,CAAC;AACX,CAAC;AAxBD,0DAwBC"}
@@ -12,6 +12,7 @@ const constants_2 = require("../../shared/constants");
12
12
  const constants_3 = require("./constants");
13
13
  const shape_select_paginated_1 = require("../../shape/shape-select-paginated");
14
14
  const pagination_1 = require("../../../intermediate/pagination");
15
+ const minimumFields_1 = require("./minimumFields");
15
16
  function generateTypeUtil(graphqlResource, metadata, importContext) {
16
17
  var _a;
17
18
  // We shouldn't be able to get here without a queryType. graphqldsl should ensure this when constructed/validated.
@@ -20,9 +21,9 @@ function generateTypeUtil(graphqlResource, metadata, importContext) {
20
21
  throw new Error('Invalid GraphQL Schema. You must include a Query Type.');
21
22
  }
22
23
  const queryTypeName = queryType.name;
23
- const getQueryTransformHelperForFieldImport = importContext.importGraphQLArtifact('types', queryTypeName, 'getQueryTransformHelperForField');
24
- const getQueryTransformHelperForTypeImport = importContext.importGraphQLArtifact('types', queryTypeName, 'getQueryTransformHelperForType');
25
24
  const cursorConnectionTypes = graphqlResource.graphqlDSL.cursorConnectionTypes;
25
+ const createFragmentMapImport = importContext.importGraphQLArtifact('types', constants_3.TYPE_UTIL_IDENTIFIER, constants_3.CREATE_FRAGMENT_MAP_IDENTIFIER);
26
+ const normalizableTypes = (0, utils_1.getNormalizableTypeMap)(graphqlResource.graphqlDSL.schema);
26
27
  return (0, imports_1.resolveImports)((0, deindent_1.default) `
27
28
  export type ${constants_3.GRAPHQL_VARIABLES_IDENTIFIER} = Record<string, any>;
28
29
  export type ${constants_3.NORMALIZED_GRAPHQL_TYPE}<D = undefined> = { data: Record<string, any>, ${constants_3.LINK_IDENTIFIER}?: ${constants_2.LUVIO_STORE_LINK_IMPORT}, ${constants_3.LINKED_DATA_IDENTIFIER}?: D};
@@ -45,8 +46,12 @@ function generateTypeUtil(graphqlResource, metadata, importContext) {
45
46
  ${constants_3.TIMESTAMP_IDENTIFIER}: number
46
47
  };
47
48
 
48
- export interface GetQueryTransformHelperFunction {
49
- (field: ${constants_2.LUVIO_GRAPHQL_FIELD_NODE_IMPORT}): ${constants_3.QUERY_TRANSFORM_HELPER_IDENTIFIER} | undefined;
49
+ export interface GetFieldTypeFunction {
50
+ (field: ${constants_2.LUVIO_GRAPHQL_FIELD_NODE_IMPORT}): ${constants_3.GRAPHQL_TYPE_DETAILS_INTERFACE_IDENTIFIER} | undefined;
51
+ }
52
+
53
+ export interface GetInContextFragmentTypeFunction {
54
+ (fragment: ${constants_2.LUVIO_GRAPHQL_FRAGMENT_SPREAD_NODE_IMPORT} | ${constants_2.LUVIO_GRAPHQL_INLINE_FRAGMENT_NODE_IMPORT}, fragmentMap: ${constants_3.GRAPHQL_FRAGMENT_MAP_IDENTIFIER}): string | undefined;
50
55
  }
51
56
 
52
57
  export interface GetMinimumSelectionsFunction {
@@ -54,7 +59,8 @@ function generateTypeUtil(graphqlResource, metadata, importContext) {
54
59
  }
55
60
 
56
61
  export interface ${constants_3.QUERY_TRANSFORM_HELPER_IDENTIFIER} {
57
- ${constants_3.GET_QUERY_TRANSFORM_HELPER_FOR_FIELD_IDENTIFIER}: GetQueryTransformHelperFunction,
62
+ ${constants_3.GET_IN_CONTEXT_FRAGMENT_TYPE_IDENTIFIER}: GetInContextFragmentTypeFunction,
63
+ ${constants_3.GET_FIELD_TYPE_IDENTIFIER}: GetFieldTypeFunction,
58
64
  ${constants_3.GET_MINIMUM_SELECTIONS_IDENTIFIER}: GetMinimumSelectionsFunction
59
65
  }
60
66
 
@@ -114,18 +120,16 @@ function generateTypeUtil(graphqlResource, metadata, importContext) {
114
120
  export const TTL = ${(0, utils_1.getShapeTtl)(metadata.rootTtl, (_a = graphqlResource.returnShape) === null || _a === void 0 ? void 0 : _a.id, metadata.shapeTtls)};
115
121
 
116
122
  export function ${constants_3.APPLY_MINIMUM_FIELDS_TO_QUERY_IDENTIFIER} (query: ${constants_2.LUVIO_GRAPHQL_DOCUMENT_NODE_IMPORT}): ${constants_2.LUVIO_GRAPHQL_DOCUMENT_NODE_IMPORT} {
123
+ const fragmentMap = ${createFragmentMapImport}(query);
117
124
  query.definitions.forEach(queryDefinitionNode => {
118
125
  if (queryDefinitionNode.kind === 'OperationDefinition' && queryDefinitionNode.operation === 'query') {
119
- injectSelectionSet(queryDefinitionNode.selectionSet, {
120
- ${constants_3.GET_QUERY_TRANSFORM_HELPER_FOR_FIELD_IDENTIFIER}: ${getQueryTransformHelperForFieldImport},
121
- ${constants_3.GET_MINIMUM_SELECTIONS_IDENTIFIER}: () => { return [] }
122
- });
126
+ injectSelectionSet(queryDefinitionNode.selectionSet, getQueryTransformerForType("${queryTypeName}", fragmentMap), fragmentMap);
123
127
  }
124
128
  });
125
129
  return query;
126
130
  }
127
131
 
128
- export function injectSelectionSet (selectionSetNode: ${constants_2.LUVIO_GRAPHQL_SELECTION_SET_NODE_IMPORT}|undefined, queryTransformHelper: ${constants_3.QUERY_TRANSFORM_HELPER_IDENTIFIER}|undefined) {
132
+ export function injectSelectionSet (selectionSetNode: ${constants_2.LUVIO_GRAPHQL_SELECTION_SET_NODE_IMPORT}|undefined, queryTransformHelper: ${constants_3.QUERY_TRANSFORM_HELPER_IDENTIFIER}|undefined, fragmentMap: ${constants_3.GRAPHQL_FRAGMENT_MAP_IDENTIFIER}) {
129
133
  if (queryTransformHelper === undefined ||
130
134
  queryTransformHelper === null ||
131
135
  selectionSetNode === undefined) {
@@ -137,17 +141,13 @@ function generateTypeUtil(graphqlResource, metadata, importContext) {
137
141
  selections === null) {
138
142
  return;
139
143
  }
140
-
141
- const { ${constants_3.GET_QUERY_TRANSFORM_HELPER_FOR_FIELD_IDENTIFIER} } = queryTransformHelper;
142
144
 
143
- // Call the function to get the minimum fields for this node, filtering out any
144
- // fields that are already present in the selection.
145
- const minimumSelections = ${constants_3.FILTER_MINIMUM_SELECTIONS_IDENTIFIER}(queryTransformHelper, selections)
145
+ const mergedSelections = ${constants_3.MERGE_SELECTIONS_IDENTIFIER}(queryTransformHelper.getMinimumSelections(), selections)
146
146
 
147
- const selectedFields = [...selections, ...minimumSelections];
148
- selectedFields.forEach(selection => {
147
+ mergedSelections.forEach(selection => {
149
148
  if (selection.kind === 'Field') {
150
- const fieldTransformHelper = getQueryTransformHelperForField(selection);
149
+ const fieldType = queryTransformHelper.getFieldType(selection);
150
+ const fieldTransformHelper = fieldType === undefined ? undefined : getQueryTransformerForType(fieldType.typename, fragmentMap);
151
151
  if (fieldTransformHelper && !selection.selectionSet) {
152
152
  Object.assign(selection, {
153
153
  selectionSet: {
@@ -156,51 +156,60 @@ function generateTypeUtil(graphqlResource, metadata, importContext) {
156
156
  }
157
157
  });
158
158
  }
159
- injectSelectionSet(selection.selectionSet, fieldTransformHelper);
160
- }
161
- if (selection.kind === 'InlineFragment' && selection.selectionSet && !selection.typeCondition) {
162
- injectSelectionSet(selection.selectionSet, queryTransformHelper);
163
- }
164
- if (selection.kind === 'InlineFragment' && selection.selectionSet && selection.typeCondition) {
165
- // create a wrapper for the getMinimumSelections function that filters
166
- // out any fields already present via encapsulation in the parent fields
167
- const fieldTransformHelper = ${getQueryTransformHelperForTypeImport}(selection.typeCondition.name.value);
168
- if (fieldTransformHelper === undefined) {
169
- return;
159
+ injectSelectionSet(selection.selectionSet, fieldTransformHelper, fragmentMap);
160
+ } else {
161
+ const fragmentType = queryTransformHelper.${constants_3.GET_IN_CONTEXT_FRAGMENT_TYPE_IDENTIFIER}(selection, fragmentMap);
162
+ const fragmentSelections = getSelectionSetFromFragment(selection, fragmentMap);
163
+ if(fragmentType === undefined) { // Untyped or unknown fragment
164
+ injectSelectionSet(fragmentSelections, queryTransformHelper, fragmentMap);
165
+ } else {
166
+ const fragmentTransformHelper = getQueryTransformerForType(fragmentType, fragmentMap);
167
+ if (fragmentTransformHelper === undefined) {
168
+ return;
169
+ }
170
+ injectSelectionSet(fragmentSelections, fragmentTransformHelper, fragmentMap);
170
171
  }
171
- const wrappedGetMinimumSelections = ():${constants_2.LUVIO_GRAPHQL_SELECTION_NODE_IMPORT}[] => {
172
- return ${constants_3.FILTER_MINIMUM_SELECTIONS_IDENTIFIER}(fieldTransformHelper, selections)
173
- };
174
- injectSelectionSet(selection.selectionSet, {
175
- ...fieldTransformHelper,
176
- ${constants_3.GET_MINIMUM_SELECTIONS_IDENTIFIER}: wrappedGetMinimumSelections
177
- });
178
172
  }
179
- // TODO(W-11725704): Handle injecting into named fragments
180
173
  });
181
174
  Object.assign(selectionSetNode, {
182
- selections: selectedFields.length > 0 ? selectedFields : undefined
175
+ selections: mergedSelections.length > 0 ? mergedSelections : undefined
183
176
  });
184
177
  }
185
178
 
186
- function ${constants_3.FILTER_MINIMUM_SELECTIONS_IDENTIFIER}(fieldTransformHelper: ${constants_3.QUERY_TRANSFORM_HELPER_IDENTIFIER}, selections: readonly ${constants_2.LUVIO_GRAPHQL_SELECTION_NODE_IMPORT}[]): ${constants_2.LUVIO_GRAPHQL_SELECTION_NODE_IMPORT}[] {
187
- return fieldTransformHelper.${constants_3.GET_MINIMUM_SELECTIONS_IDENTIFIER}().filter(minimumSelection => {
179
+ function ${constants_3.MERGE_SELECTIONS_IDENTIFIER}(minimumSelections: readonly ${constants_2.LUVIO_GRAPHQL_SELECTION_NODE_IMPORT}[], querySelections: readonly ${constants_2.LUVIO_GRAPHQL_SELECTION_NODE_IMPORT}[]): ${constants_2.LUVIO_GRAPHQL_SELECTION_NODE_IMPORT}[] {
180
+ const mergedSelections: ${constants_2.LUVIO_GRAPHQL_SELECTION_NODE_IMPORT}[] = [...querySelections];
181
+ for(let i = 0; i < minimumSelections.length; i++) {
182
+ const minimumSelection = minimumSelections[i];
188
183
  if (minimumSelection.kind === 'Field') {
189
- const fieldIsAlreadyPresent = selections.some(selection => {
184
+ const existingNode = mergedSelections.find(selection => {
190
185
  return selection.kind === 'Field' && (selection.name.value === minimumSelection.name.value);
191
186
  });
192
- return !fieldIsAlreadyPresent;
187
+
188
+ if(existingNode !== undefined && existingNode.kind === 'Field') { // Maybe do better type narrowing above
189
+ const existingNodeHasSubselections = existingNode.selectionSet !== undefined && existingNode.selectionSet.selections.length > 0;
190
+ const minimumFieldNodeHasSubselections = minimumSelection.selectionSet !== undefined && minimumSelection.selectionSet.selections.length > 0;
191
+
192
+ // TODO(correctness enhancement): this doesn't handle arugments. Add alias if arguments disagree?
193
+ if(existingNodeHasSubselections && minimumFieldNodeHasSubselections) {
194
+ const mergedChildSelections = mergeSelections(minimumSelection.selectionSet.selections, existingNode.selectionSet.selections);
195
+ Object.assign(existingNode.selectionSet, {
196
+ selections: mergedChildSelections
197
+ });
198
+ }
199
+ } else {
200
+ mergedSelections.push(minimumSelection);
201
+ }
193
202
  }
194
203
  if (minimumSelection.kind === 'InlineFragment') {
195
- return true;
204
+ mergedSelections.push(minimumSelection);
196
205
  }
197
206
  if (minimumSelection.kind === 'FragmentSpread') {
198
207
  if (process.env.NODE_ENV !== 'production') {
199
- console.error('named fragment minimum selections are not supported.');
208
+ console.error('named fragment minimum selections are not supported and will not be added to the query.');
200
209
  }
201
- return false;
202
210
  }
203
- });
211
+ }
212
+ return mergedSelections;
204
213
  }
205
214
 
206
215
  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 {
@@ -260,6 +269,49 @@ function generateTypeUtil(graphqlResource, metadata, importContext) {
260
269
  });
261
270
  return selections;
262
271
  }
272
+
273
+ export function getQueryTransformerForType(typename: string, fragmentMap: ${constants_3.GRAPHQL_FRAGMENT_MAP_IDENTIFIER}): ${constants_3.QUERY_TRANSFORM_HELPER_IDENTIFIER} | undefined {
274
+ switch(typename) {
275
+ ${Object.keys(normalizableTypes).map((key) => {
276
+ const typeGetMinimumSelections = importContext.importGraphQLArtifact('types', key, constants_3.GET_MINIMUM_SELECTIONS_IDENTIFIER);
277
+ const typeGetFieldType = importContext.importGraphQLArtifact('types', key, constants_3.GET_FIELD_TYPE_IDENTIFIER);
278
+ const typeGetInContextFragmentType = importContext.importGraphQLArtifact('types', key, constants_3.GET_IN_CONTEXT_FRAGMENT_TYPE_IDENTIFIER);
279
+ return `case "${key}": return {
280
+ ${constants_3.GET_MINIMUM_SELECTIONS_IDENTIFIER}: ${typeGetMinimumSelections},
281
+ ${constants_3.GET_FIELD_TYPE_IDENTIFIER}: ${typeGetFieldType},
282
+ ${constants_3.GET_IN_CONTEXT_FRAGMENT_TYPE_IDENTIFIER}: ${typeGetInContextFragmentType}
283
+ }`;
284
+ })}
285
+ default:
286
+ return undefined;
287
+ }
288
+ }
289
+
290
+ export function ${constants_3.SHARED_GET_IN_CONTEXT_FRAGMENT_TYPE_IDENTIFIER}(fragment: ${constants_2.LUVIO_GRAPHQL_FRAGMENT_SPREAD_NODE_IMPORT} | ${constants_2.LUVIO_GRAPHQL_INLINE_FRAGMENT_NODE_IMPORT}, fragmentMap: ${constants_3.GRAPHQL_FRAGMENT_MAP_IDENTIFIER}): string | undefined {
291
+ const typeCondition = fragment.kind === 'FragmentSpread' ? fragmentMap[fragment.name.value].typeCondition : fragment.typeCondition;
292
+ return typeCondition !== undefined ? typeCondition.name.value: undefined;
293
+ }
294
+
295
+ export function getSelectionSetFromFragment(fragment: ${constants_2.LUVIO_GRAPHQL_FRAGMENT_SPREAD_NODE_IMPORT} | ${constants_2.LUVIO_GRAPHQL_INLINE_FRAGMENT_NODE_IMPORT}, fragmentMap: ${constants_3.GRAPHQL_FRAGMENT_MAP_IDENTIFIER}): ${constants_2.LUVIO_GRAPHQL_SELECTION_SET_NODE_IMPORT} | undefined {
296
+ return fragment.kind === 'FragmentSpread' ? fragmentMap[fragment.name.value].selectionSet : fragment.selectionSet;
297
+ }
298
+
299
+ export function ${constants_3.CREATE_FRAGMENT_MAP_IDENTIFIER}(document: ${constants_2.LUVIO_GRAPHQL_DOCUMENT_NODE_IMPORT}): ${constants_3.GRAPHQL_FRAGMENT_MAP_IDENTIFIER} {
300
+ const fragments: ${constants_3.GRAPHQL_FRAGMENT_MAP_IDENTIFIER} = {};
301
+ for(let i = 0; i < document.definitions.length; i++) {
302
+ const node = document.definitions[i];
303
+ if (node.kind === 'FragmentDefinition') {
304
+ fragments[node.name.value] = node;
305
+ }
306
+ }
307
+ return fragments;
308
+ }
309
+
310
+ // Shared export so that we dont repeat this in every connection type. Using fields for now since untyped inline fragment fails on Core
311
+ export function ${constants_3.GET_CURSOR_CONNECTION_MINIMUM_SELECTIONS_IDENTIFIER}(): ${constants_2.LUVIO_GRAPHQL_FIELD_NODE_IMPORT}[] {
312
+ return ${(0, minimumFields_1.getCursorConnectionFields)()}
313
+ }
314
+
263
315
  `);
264
316
  }
265
317
  exports.generateTypeUtil = generateTypeUtil;
@@ -1 +1 @@
1
- {"version":3,"file":"generateTypeUtil.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/generateTypeUtil.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generateTypeUtil.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/generateTypeUtil.ts"],"names":[],"mappings":";;;;;;AAAA,uEAA+C;AAC/C,oDAAwD;AAExD,oCAA+D;AAG/D,uDAAmF;AACnF,sDAgBgC;AAChC,2CA+BqB;AACrB,+EAAmF;AACnF,iEAA4D;AAC5D,mDAA4D;AAE5D,SAAgB,gBAAgB,CAC5B,eAAgC,EAChC,QAAgC,EAChC,aAA4B;;IAE5B,kHAAkH;IAClH,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;IACnE,IAAI,CAAC,SAAS,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;KAC7E;IACD,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC;IACrC,MAAM,qBAAqB,GAAG,eAAe,CAAC,UAAU,CAAC,qBAAqB,CAAC;IAE/E,MAAM,uBAAuB,GAAG,aAAa,CAAC,qBAAqB,CAC/D,OAAO,EACP,gCAAoB,EACpB,0CAA8B,CACjC,CAAC;IAEF,MAAM,iBAAiB,GAAG,IAAA,8BAAsB,EAAC,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAEpF,OAAO,IAAA,wBAAc,EAAC,IAAA,kBAAQ,EAAA;sBACZ,wCAA4B;sBAC5B,mCAAuB,mDAAmD,2BAAe,MAAM,mCAAuB,KAAK,kCAAsB;sBACjJ,2CAA+B,qBAAqB,yDAA6C;sBACjG,qDAAyC;;2BAEpC,8CAAkC;;oBAEzC,oDAAwC;yBACnC,wCAA4B;yBAC5B,2CAA+B;;;2BAG7B,oDAAwC,eAAe,8CAAkC;cACtG,4BAAgB,KAAK,wBAAY;;;2BAGpB,qDAAyC,eAAe,oDAAwC;cAC7G,kCAAsB,KAAK,8BAAkB;cAC7C,gCAAoB;;;;sBAIZ,2CAA+B,MAAM,qDAAyC;;;;yBAI3E,qDAAyC,MAAM,qDAAyC,kBAAkB,2CAA+B;;;;kBAIhJ,+CAAmC;;;2BAG1B,6CAAiC;cAC9C,mDAAuC;cACvC,qCAAyB;cACzB,6CAAiC;;;0BAGrB,kCAAsB;;;;;;0BAMtB,gDAAoC,4BAA4B,8CAAkC,mBAAmB,wCAA4B;+DAC5G,8CAAkC;;;;;;;;;kDAS/C,8CAAkC,gBAAgB,wCAA4B;;;;;iDAK/E,2CAA+B,gBAAgB,wCAA4B;;;;;;;;;;uEAUrD,2CAA+B;;;;;;;;;;;;uEAY/B,kDAAsC;;;;;;;;;;6BAUhF,IAAA,mBAAW,EAC5B,QAAQ,CAAC,OAAO,EAChB,MAAA,eAAe,CAAC,WAAW,0CAAE,EAAE,EAC/B,QAAQ,CAAC,SAAS,CACrB;;0BAEiB,oDAAwC,YAAY,8CAAkC,MAAM,8CAAkC;kCACtH,uBAAuB;;;uGAG8C,aAAa;;;;;;gEAMpD,mDAAuC,qCAAqC,6CAAiC,4BAA4B,2CAA+B;;;;;;;;;;;;;uCAajM,uCAA2B;;;;;;;;;;;;;;;;gEAgBF,mDAAuC;;;;;;;;;;;;;;;;;;mBAkBpF,uCAA2B,gCAAgC,+CAAmC,iCAAiC,+CAAmC,QAAQ,+CAAmC;sCAC1L,+CAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAmC/C,0CAA8B,oDAAoD,2CAA+B,QAAQ,2CAA+B;;;UAItK,qBAAqB,CAAC,MAAM,GAAG,CAAC;QAC5B,CAAC,CAAC,IAAA,sDAA6B,EACzB;YACI,QAAQ,EAAE,qBAAQ,CAAC,MAAM;YACzB,KAAK,EAAE,4BAAgB;YACvB,QAAQ,EAAE;gBACN,KAAK,EAAE,mCAAuB;gBAC9B,SAAS,EAAE,iCAAqB;aACnC;SACJ,EACD,aAAa,CAChB;QACH,CAAC,CAAC,EACV;;cAEM,qBAAqB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACjC,OAAO,IAAI,IAAI,IAAI,CAAC;IACxB,CAAC,CAAC;;6DAE+C,qDAAyC;;;;0BAI5E,mDAAuC,WAAW,2CAA+B,gBAAgB,wCAA4B,gBAAgB,qDAAyC;6DACnJ,8CAAkC;;;;;;kDAM7C,4BAAgB,6BAA6B,4BAAgB;;;;uFAIxB,gDAAoC;;;;0BAIjG,oDAAwC,oCAAoC,mDAAuC,wBAAwB,2CAA+B,sCAAsC,yDAA6C,MAAM,qDAAyC,oCAAoC,2CAA+B;gCACzW,2CAA+B;;;;;;sBAMzC,oDAAwC;;;;;;0BAMpC,oDAAwC;;;;;;;;oFAQkB,2CAA+B,MAAM,6CAAiC;;cAE5I,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACzC,MAAM,wBAAwB,GAAG,aAAa,CAAC,qBAAqB,CAChE,OAAO,EACP,GAAG,EACH,6CAAiC,CACpC,CAAC;QACF,MAAM,gBAAgB,GAAG,aAAa,CAAC,qBAAqB,CACxD,OAAO,EACP,GAAG,EACH,qCAAyB,CAC5B,CAAC;QACF,MAAM,4BAA4B,GAAG,aAAa,CAAC,qBAAqB,CACpE,OAAO,EACP,GAAG,EACH,mDAAuC,CAC1C,CAAC;QACF,OAAO,SAAS,GAAG;sBACb,6CAAiC,KAAK,wBAAwB;sBAC9D,qCAAyB,KAAK,gBAAgB;sBAC9C,mDAAuC,KAAK,4BAA4B;kBAC5E,CAAC;IACP,CAAC,CAAC;;;;;;0BAMY,0DAA8C,cAAc,qDAAyC,MAAM,qDAAyC,kBAAkB,2CAA+B;;;;;gEAK/J,qDAAyC,MAAM,qDAAyC,kBAAkB,2CAA+B,MAAM,mDAAuC;;;;0BAI5N,0CAA8B,cAAc,8CAAkC,MAAM,2CAA+B;+BAC9G,2CAA+B;;;;;;;;;;;0BAWpC,+DAAmD,OAAO,2CAA+B;qBAC9F,IAAA,yCAAyB,GAAE;;;KAG3C,CAAC,CAAC;AACP,CAAC;AA3UD,4CA2UC"}
@@ -12,7 +12,7 @@ const ttl_1 = require("./ttl");
12
12
  const merge_1 = require("./merge");
13
13
  const imports_1 = require("../../../utils/imports");
14
14
  const select_1 = require("./select");
15
- const query_transformer_1 = require("./query-transformer");
15
+ const minimumFields_1 = require("./minimumFields");
16
16
  const type_cache_keys_1 = require("./type-cache-keys");
17
17
  const type_from_field_1 = require("./type-from-field");
18
18
  const ingest_field_by_type_1 = require("./ingest-field-by-type");
@@ -23,6 +23,7 @@ const convert_1 = require("./convert");
23
23
  const ingest_mapped_1 = require("./ingest-mapped");
24
24
  const attach_mapped_1 = require("./attach-mapped");
25
25
  const mapped_type_cache_keys_1 = require("./mapped-type-cache-keys");
26
+ const fragment_type_1 = require("./fragment-type");
26
27
  function generateType(graphqlDsl, graphqlTypeName, def, importContext, metadata, modelInfo) {
27
28
  return (0, imports_1.resolveImports)((0, deindent_1.default) `
28
29
  export const name = '${graphqlTypeName}';
@@ -33,7 +34,7 @@ function generateType(graphqlDsl, graphqlTypeName, def, importContext, metadata,
33
34
  ${(0, merge_1.generateMerge)(graphqlDsl, graphqlTypeName, importContext, modelInfo)}
34
35
  ${(0, ingest_1.generateIngest)(graphqlDsl, graphqlTypeName, def, importContext, metadata, modelInfo)}
35
36
  ${(0, select_1.generateSelect)(graphqlDsl, graphqlTypeName, def, importContext, metadata, modelInfo)}
36
- ${(0, query_transformer_1.generate)(graphqlDsl, graphqlTypeName, def, importContext, metadata)}
37
+ ${(0, minimumFields_1.generateGetMinimumSelections)(graphqlDsl, graphqlTypeName, def, importContext, metadata)}
37
38
  ${(0, type_cache_keys_1.generateGetTypeCacheKeys)(graphqlDsl, graphqlTypeName, def, importContext, metadata, modelInfo)}
38
39
  ${(0, type_from_field_1.generateGetFieldType)(graphqlDsl, def)}
39
40
  ${(0, ingest_field_by_type_1.generateIngestFieldDataByType)(graphqlDsl, graphqlTypeName, def, importContext, metadata)}
@@ -43,6 +44,7 @@ function generateType(graphqlDsl, graphqlTypeName, def, importContext, metadata,
43
44
  ${(0, ingest_mapped_1.generateIngestMappedData)(graphqlDsl, graphqlTypeName, importContext, modelInfo)}
44
45
  ${(0, attach_mapped_1.generateAttachMappedData)(graphqlDsl, graphqlTypeName, importContext, modelInfo)}
45
46
  ${(0, mapped_type_cache_keys_1.generateGetRamlMappingCacheKeys)(graphqlDsl, graphqlTypeName, importContext, modelInfo)}
47
+ ${(0, fragment_type_1.generateGetFragmentType)(graphqlDsl, def, importContext)}
46
48
  `);
47
49
  }
48
50
  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,2CAAiD;AACjD,qCAA0C;AAC1C,+BAAoC;AACpC,mCAAwC;AACxC,oDAAwD;AAKxD,qCAA0C;AAC1C,2DAA2E;AAE3E,uDAA6D;AAC7D,uDAAyD;AACzD,iEAAuE;AACvE,uDAA0D;AAC1D,yDAA6D;AAC7D,uCAA4C;AAC5C,uCAAmD;AACnD,mDAA2D;AAC3D,mDAA2D;AAC3D,qEAA2E;AAE3E,SAAgB,YAAY,CACxB,UAA2B,EAC3B,eAAuB,EACvB,GAA6B,EAC7B,aAA4B,EAC5B,QAAgC,EAChC,SAAoB;IAEpB,OAAO,IAAA,wBAAc,EAAC,IAAA,kBAAQ,EAAA;+BACH,eAAe;UACpC,IAAA,iBAAW,EAAC,UAAU,EAAE,eAAe,CAAC;UACxC,IAAA,yBAAe,EAAC,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UAC9D,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,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,CAAC;UACpE,IAAA,uBAAc,EAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC;UACpF,IAAA,uBAAc,EAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC;UACpF,IAAA,4BAAwB,EAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UACnF,IAAA,0CAAwB,EACtB,UAAU,EACV,eAAe,EACf,GAAG,EACH,aAAa,EACb,QAAQ,EACR,SAAS,CACZ;UACC,IAAA,sCAAoB,EAAC,UAAU,EAAE,GAAG,CAAC;UACrC,IAAA,oDAA6B,EAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UACxF,IAAA,uCAAqB,EAAC,UAAU,EAAE,eAAe,EAAE,GAAG,CAAC;UACvD,IAAA,0CAAuB,EAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UAClF,IAAA,gCAAsB,EAAC,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,CAAC;UAClF,IAAA,wCAAwB,EAAC,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,CAAC;UAC/E,IAAA,wCAAwB,EAAC,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,CAAC;UAC/E,IAAA,wDAA+B,EAAC,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,CAAC;KAC3F,CAAC,CAAC;AACP,CAAC;AAnCD,oCAmCC"}
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;AAC1C,mDAA+D;AAE/D,uDAA6D;AAC7D,uDAAyD;AACzD,iEAAuE;AACvE,uDAA0D;AAC1D,yDAA6D;AAC7D,uCAA4C;AAC5C,uCAAmD;AACnD,mDAA2D;AAC3D,mDAA2D;AAC3D,qEAA2E;AAC3E,mDAA0D;AAE1D,SAAgB,YAAY,CACxB,UAA2B,EAC3B,eAAuB,EACvB,GAA6B,EAC7B,aAA4B,EAC5B,QAAgC,EAChC,SAAoB;IAEpB,OAAO,IAAA,wBAAc,EAAC,IAAA,kBAAQ,EAAA;+BACH,eAAe;UACpC,IAAA,iBAAW,EAAC,UAAU,EAAE,eAAe,CAAC;UACxC,IAAA,yBAAe,EAAC,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UAC9D,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,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,CAAC;UACpE,IAAA,uBAAc,EAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC;UACpF,IAAA,uBAAc,EAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC;UACpF,IAAA,4CAA4B,EAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UACvF,IAAA,0CAAwB,EACtB,UAAU,EACV,eAAe,EACf,GAAG,EACH,aAAa,EACb,QAAQ,EACR,SAAS,CACZ;UACC,IAAA,sCAAoB,EAAC,UAAU,EAAE,GAAG,CAAC;UACrC,IAAA,oDAA6B,EAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UACxF,IAAA,uCAAqB,EAAC,UAAU,EAAE,eAAe,EAAE,GAAG,CAAC;UACvD,IAAA,0CAAuB,EAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UAClF,IAAA,gCAAsB,EAAC,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,CAAC;UAClF,IAAA,wCAAwB,EAAC,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,CAAC;UAC/E,IAAA,wCAAwB,EAAC,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,CAAC;UAC/E,IAAA,wDAA+B,EAAC,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,CAAC;UACtF,IAAA,uCAAuB,EAAC,UAAU,EAAE,GAAG,EAAE,aAAa,CAAC;KAC5D,CAAC,CAAC;AACP,CAAC;AApCD,oCAoCC"}
@@ -1,4 +1,4 @@
1
- import type { ObjectTypeDefinitionNode, InterfaceTypeDefinitionNode, TypeNode } from '@luvio/graphql-parser';
1
+ import type { ObjectTypeDefinitionNode, InterfaceTypeDefinitionNode, TypeNode, UnionTypeDefinitionNode } from '@luvio/graphql-parser';
2
2
  import type { GraphQLCodegenMetadata } from '../source-printer/graphql-source-printer';
3
3
  import type { ImportContext } from '../../../utils/imports';
4
4
  import type { LuvioGraphQLDSL } from '../../../intermediate/graphql';
@@ -10,6 +10,6 @@ export declare function generateTypeReference(type: TypeNode, importContext: Imp
10
10
  required: boolean;
11
11
  array: boolean;
12
12
  }): string;
13
- export declare function getMinimumFields(def: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode, graphqlDsl: LuvioGraphQLDSL): string[];
13
+ export declare function getMinimumFieldNames(def: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode | UnionTypeDefinitionNode): string[];
14
14
  export declare function generateInterface(def: ObjectTypeDefinitionNode, importContext: ImportContext, scalarToPrimitiveMap: Record<string, string>): string;
15
15
  export declare function generateInterfaces(graphqlDsl: LuvioGraphQLDSL, graphqlTypeName: string, def: ObjectTypeDefinitionNode, importContext: ImportContext, metadata: GraphQLCodegenMetadata): string;
@@ -3,11 +3,10 @@ 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.generateInterfaces = exports.generateInterface = exports.getMinimumFields = exports.generateTypeReference = exports.PARTIAL_INTERFACE_IDENTIFIER = exports.MINIMUM_INTERFACE_IDENTIFIER = exports.TYPE_NAME_IDENTIFIER = exports.TYPE_INTERFACE_IDENTIFIER = void 0;
6
+ exports.generateInterfaces = exports.generateInterface = exports.getMinimumFieldNames = exports.generateTypeReference = exports.PARTIAL_INTERFACE_IDENTIFIER = exports.MINIMUM_INTERFACE_IDENTIFIER = exports.TYPE_NAME_IDENTIFIER = exports.TYPE_INTERFACE_IDENTIFIER = void 0;
7
7
  const deindent_1 = __importDefault(require("../../../utils/deindent"));
8
8
  const key_1 = require("./key");
9
9
  const utils_1 = require("./utils");
10
- const constants_1 = require("./constants");
11
10
  exports.TYPE_INTERFACE_IDENTIFIER = 'Interface';
12
11
  exports.TYPE_NAME_IDENTIFIER = '__typename';
13
12
  exports.MINIMUM_INTERFACE_IDENTIFIER = `Minimum${exports.TYPE_INTERFACE_IDENTIFIER}`;
@@ -44,19 +43,15 @@ function generateTypeReference(type, importContext, scalarToPrimitiveMap, state)
44
43
  }
45
44
  }
46
45
  exports.generateTypeReference = generateTypeReference;
47
- function getMinimumFields(def, graphqlDsl) {
46
+ function getMinimumFieldNames(def) {
48
47
  const minimumFields = [exports.TYPE_NAME_IDENTIFIER];
49
48
  const idNode = (0, key_1.findIdNode)(def);
50
49
  if (idNode !== undefined) {
51
50
  minimumFields.push(idNode.name.value);
52
51
  }
53
- if (graphqlDsl.cursorConnectionTypes.includes(def.name.value)) {
54
- minimumFields.push(constants_1.EDGES_IDENTIFIER);
55
- minimumFields.push(constants_1.PAGE_INFO_IDENTIFIER);
56
- }
57
52
  return minimumFields;
58
53
  }
59
- exports.getMinimumFields = getMinimumFields;
54
+ exports.getMinimumFieldNames = getMinimumFieldNames;
60
55
  // Interface contains all fields of a GraphQL type
61
56
  function generateInterface(def, importContext, scalarToPrimitiveMap) {
62
57
  const { fields: graphqlFields } = def;
@@ -1 +1 @@
1
- {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/interface.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { FieldDefinitionNode, InterfaceTypeDefinitionNode, ObjectTypeDefinitionNode } from '@luvio/graphql-parser';
1
+ import type { FieldDefinitionNode, InterfaceTypeDefinitionNode, ObjectTypeDefinitionNode, UnionTypeDefinitionNode } from '@luvio/graphql-parser';
2
2
  import type { ImportContext } from '../../../utils/imports';
3
- export declare function findIdNode(def: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode): FieldDefinitionNode | undefined;
3
+ export declare function findIdNode(def: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode | UnionTypeDefinitionNode): FieldDefinitionNode | undefined;
4
4
  export declare function generateKey(def: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode, importContext: ImportContext, schemaName: string): string;
@@ -10,7 +10,7 @@ const constants_2 = require("./constants");
10
10
  const interface_1 = require("./interface");
11
11
  const constants_3 = require("../../shared/constants");
12
12
  function findIdNode(def) {
13
- if (!('fields' in def)) {
13
+ if (def.kind === 'UnionTypeDefinition') {
14
14
  return undefined;
15
15
  }
16
16
  const { fields } = def;
@@ -1 +1 @@
1
- {"version":3,"file":"key.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/key.ts"],"names":[],"mappings":";;;;;;AAKA,uEAA+C;AAE/C,uDAAmF;AACnF,2CAAqD;AACrD,2CAA2D;AAC3D,sDAAwE;AAExE,SAAgB,UAAU,CACtB,GAA2D;IAE3D,IAAI,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC,EAAE;QACpB,OAAO,SAAS,CAAC;KACpB;IACD,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACvB,IAAI,MAAM,KAAK,SAAS,EAAE;QACtB,OAAO,SAAS,CAAC;KACpB;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QACzB,OAAO,CACH,KAAK,CAAC,IAAI,KAAK,iBAAiB;YAChC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa;YACjC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW;YACpC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CACtC,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAlBD,gCAkBC;AAED,SAAgB,WAAW,CACvB,GAA2D,EAC3D,aAA4B,EAC5B,UAAkB;IAElB,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAE/B,IAAI,MAAM,KAAK,SAAS,EAAE;QACtB,OAAO,IAAA,kBAAQ,EAAA;8BACO,kCAAsB,IAAI,4BAAgB,KAAK,wBAAY,WAAW,oDAAwC,WAAW,wCAA4B;;;SAG1K,CAAC;KACL;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IACxB,MAAM,UAAU,GAAG,aAAa,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAChE,OAAO,IAAA,kBAAQ,EAAA;0BACO,kCAAsB,IAAI,4BAAgB,KAAK,wBAAY,WAAW,oDAAwC,WAAW,wCAA4B;qBAC1J,UAAU,SAAS,UAAU,4BAA4B,IAAI,CAAC,KAAK;;KAEnF,CAAC;AACN,CAAC;AAtBD,kCAsBC"}
1
+ {"version":3,"file":"key.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/key.ts"],"names":[],"mappings":";;;;;;AAMA,uEAA+C;AAE/C,uDAAmF;AACnF,2CAAqD;AACrD,2CAA2D;AAC3D,sDAAwE;AAExE,SAAgB,UAAU,CACtB,GAAqF;IAErF,IAAI,GAAG,CAAC,IAAI,KAAK,qBAAqB,EAAE;QACpC,OAAO,SAAS,CAAC;KACpB;IACD,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACvB,IAAI,MAAM,KAAK,SAAS,EAAE;QACtB,OAAO,SAAS,CAAC;KACpB;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QACzB,OAAO,CACH,KAAK,CAAC,IAAI,KAAK,iBAAiB;YAChC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa;YACjC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW;YACpC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CACtC,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAlBD,gCAkBC;AAED,SAAgB,WAAW,CACvB,GAA2D,EAC3D,aAA4B,EAC5B,UAAkB;IAElB,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAE/B,IAAI,MAAM,KAAK,SAAS,EAAE;QACtB,OAAO,IAAA,kBAAQ,EAAA;8BACO,kCAAsB,IAAI,4BAAgB,KAAK,wBAAY,WAAW,oDAAwC,WAAW,wCAA4B;;;SAG1K,CAAC;KACL;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IACxB,MAAM,UAAU,GAAG,aAAa,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAChE,OAAO,IAAA,kBAAQ,EAAA;0BACO,kCAAsB,IAAI,4BAAgB,KAAK,wBAAY,WAAW,oDAAwC,WAAW,wCAA4B;qBAC1J,UAAU,SAAS,UAAU,4BAA4B,IAAI,CAAC,KAAK;;KAEnF,CAAC;AACN,CAAC;AAtBD,kCAsBC"}
@@ -0,0 +1,6 @@
1
+ import type { InterfaceTypeDefinitionNode, ObjectTypeDefinitionNode, UnionTypeDefinitionNode } 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 generateGetMinimumSelections(graphqlDsl: LuvioGraphQLDSL, typeName: string, def: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode | UnionTypeDefinitionNode, importContext: ImportContext, _metadata: GraphQLCodegenMetadata): string;
6
+ export declare function getCursorConnectionFields(): string;
@@ -0,0 +1,68 @@
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.getCursorConnectionFields = exports.generateGetMinimumSelections = 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("./constants");
11
+ function generateGetMinimumSelections(graphqlDsl, typeName, def, importContext, _metadata) {
12
+ var _a;
13
+ const { schema } = graphqlDsl;
14
+ const isQueryType = ((_a = schema.getQueryType()) === null || _a === void 0 ? void 0 : _a.name) === typeName;
15
+ const isCursorConnectionType = graphqlDsl.cursorConnectionTypes.includes(def.name.value);
16
+ const getCursorConnectionFragmentImport = importContext.importGraphQLArtifact('types', constants_2.TYPE_UTIL_IDENTIFIER, constants_2.GET_CURSOR_CONNECTION_MINIMUM_SELECTIONS_IDENTIFIER);
17
+ const minFields = isQueryType
18
+ ? ''
19
+ : (0, interface_1.getMinimumFieldNames)(def)
20
+ .map((field) => astFieldNodeAsString(field))
21
+ .join('\n');
22
+ const minimumCursorConnectionFragment = isCursorConnectionType
23
+ ? `...${getCursorConnectionFragmentImport}()`
24
+ : '';
25
+ return (0, deindent_1.default) `
26
+ export function ${constants_2.GET_MINIMUM_SELECTIONS_IDENTIFIER}(): ${constants_1.LUVIO_GRAPHQL_SELECTION_NODE_IMPORT}[] {
27
+ const minimumSelections: ${constants_1.LUVIO_GRAPHQL_SELECTION_NODE_IMPORT}[] = [
28
+ ${minFields}
29
+ ${minimumCursorConnectionFragment}
30
+ ];
31
+ return minimumSelections;
32
+ }
33
+ `;
34
+ }
35
+ exports.generateGetMinimumSelections = generateGetMinimumSelections;
36
+ function astFieldNodeAsString(fieldName, subfields) {
37
+ const hasSubfields = subfields !== undefined && subfields.length > 0;
38
+ const subfieldString = hasSubfields
39
+ ? `
40
+ selectionSet: {
41
+ kind: 'SelectionSet',
42
+ selections: [${subfields.map((subfield) => astFieldNodeAsString(subfield)).join('\n')}
43
+ ]
44
+ },`
45
+ : '';
46
+ return (0, deindent_1.default) `
47
+ {
48
+ kind: 'Field',
49
+ name: {
50
+ kind: 'Name',
51
+ value: '${fieldName}',
52
+ },
53
+ ${subfieldString}
54
+ },
55
+ `;
56
+ }
57
+ function getCursorConnectionFields() {
58
+ return (0, deindent_1.default) `[
59
+ ${astFieldNodeAsString(constants_2.EDGES_IDENTIFIER, [constants_2.NODE_IDENTIFIER, constants_2.CURSOR_IDENTIFIER])}
60
+ ${astFieldNodeAsString(constants_2.PAGE_INFO_IDENTIFIER, [
61
+ constants_2.HAS_NEXT_PAGE_IDENTIFIER,
62
+ constants_2.END_CURSOR_IDENTIFIER,
63
+ constants_2.START_CURSOR_IDENTIFIER,
64
+ ])}
65
+ ] `;
66
+ }
67
+ exports.getCursorConnectionFields = getCursorConnectionFields;
68
+ //# sourceMappingURL=minimumFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minimumFields.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/minimumFields.ts"],"names":[],"mappings":";;;;;;AAKA,uEAA+C;AAE/C,sDAA6E;AAG7E,2CAAmD;AACnD,2CAWqB;AAErB,SAAgB,4BAA4B,CACxC,UAA2B,EAC3B,QAAgB,EAChB,GAAqF,EACrF,aAA4B,EAC5B,SAAiC;;IAEjC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;IAC9B,MAAM,WAAW,GAAG,CAAA,MAAA,MAAM,CAAC,YAAY,EAAE,0CAAE,IAAI,MAAK,QAAQ,CAAC;IAC7D,MAAM,sBAAsB,GAAG,UAAU,CAAC,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzF,MAAM,iCAAiC,GAAG,aAAa,CAAC,qBAAqB,CACzE,OAAO,EACP,gCAAoB,EACpB,+DAAmD,CACtD,CAAC;IAEF,MAAM,SAAS,GAAG,WAAW;QACzB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,IAAA,gCAAoB,EAAC,GAAG,CAAC;aACpB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;aAC3C,IAAI,CAAC,IAAI,CAAC,CAAC;IAEtB,MAAM,+BAA+B,GAAG,sBAAsB;QAC1D,CAAC,CAAC,MAAM,iCAAiC,IAAI;QAC7C,CAAC,CAAC,EAAE,CAAC;IAET,OAAO,IAAA,kBAAQ,EAAA;0BACO,6CAAiC,OAAO,+CAAmC;uCAC9D,+CAAmC;kBACxD,SAAS;kBACT,+BAA+B;;;;KAI5C,CAAC;AACN,CAAC;AAnCD,oEAmCC;AAED,SAAS,oBAAoB,CAAC,SAAiB,EAAE,SAAoB;IACjE,MAAM,YAAY,GAAG,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IACrE,MAAM,cAAc,GAAG,YAAY;QAC/B,CAAC,CAAC;;;uBAGa,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;OAEtF;QACC,CAAC,CAAC,EAAE,CAAC;IAET,OAAO,IAAA,kBAAQ,EAAA;;;;;8BAKW,SAAS;;kBAErB,cAAc;;KAE3B,CAAC;AACN,CAAC;AAED,SAAgB,yBAAyB;IACrC,OAAO,IAAA,kBAAQ,EAAA;UACT,oBAAoB,CAAC,4BAAgB,EAAE,CAAC,2BAAe,EAAE,6BAAiB,CAAC,CAAC;UAC5E,oBAAoB,CAAC,gCAAoB,EAAE;QACzC,oCAAwB;QACxB,iCAAqB;QACrB,mCAAuB;KAC1B,CAAC;QACF,CAAC;AACT,CAAC;AATD,8DASC"}
@@ -1,3 +1,3 @@
1
- import type { InterfaceTypeDefinitionNode, ObjectTypeDefinitionNode } from '@luvio/graphql-parser';
1
+ import type { InterfaceTypeDefinitionNode, ObjectTypeDefinitionNode, UnionTypeDefinitionNode } from '@luvio/graphql-parser';
2
2
  import type { LuvioGraphQLDSL } from '../../../intermediate/graphql';
3
- export declare function generateGetFieldType(graphqlDsl: LuvioGraphQLDSL, def: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode): string;
3
+ export declare function generateGetFieldType(graphqlDsl: LuvioGraphQLDSL, def: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode | UnionTypeDefinitionNode): string;
@@ -1 +1 @@
1
- {"version":3,"file":"type-from-field.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/type-from-field.ts"],"names":[],"mappings":";;;AAMA,sDAAyE;AACzE,0CAAkE;AAClE,2CAAwD;AAExD,SAAgB,oBAAoB,CAChC,UAA2B,EAC3B,GAA2D;IAE3D,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;IAED,MAAM,mBAAmB,GAAG,IAAA,uBAAe,EAAC,GAAG,CAAC;SAC3C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACX,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,MAAM,eAAe,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAC5D,MAAM,QAAQ,GAAG,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAC;QAEvC,OAAO;wBACK,SAAS;;mCAEE,eAAe;qCACb,QAAQ;;;aAGhC,CAAC;IACN,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhB,OAAO,mBAAmB,qCAAyB,WAAW,2CAA+B;;kBAE/E,mBAAmB;;;;;SAK5B,CAAC;AACV,CAAC;AApCD,oDAoCC;AAED,SAAS,UAAU,CAAC,IAAc;IAC9B,QAAQ,IAAI,CAAC,IAAI,EAAE;QACf,KAAK,UAAU;YACX,OAAO,IAAI,CAAC;QAChB,KAAK,WAAW;YACZ,OAAO,KAAK,CAAC;QACjB,KAAK,aAAa;YACd,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACpC;AACL,CAAC"}
1
+ {"version":3,"file":"type-from-field.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/type-from-field.ts"],"names":[],"mappings":";;;AAOA,sDAAyE;AACzE,0CAAkE;AAClE,2CAAwD;AAExD,SAAgB,oBAAoB,CAChC,UAA2B,EAC3B,GAAqF;IAErF,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;IAED,MAAM,mBAAmB,GAAG,IAAA,uBAAe,EAAC,GAAG,CAAC;SAC3C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACX,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,MAAM,eAAe,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAC5D,MAAM,QAAQ,GAAG,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAC;QAEvC,OAAO;wBACK,SAAS;;mCAEE,eAAe;qCACb,QAAQ;;;aAGhC,CAAC;IACN,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhB,OAAO,mBAAmB,qCAAyB,WAAW,2CAA+B;;kBAE/E,mBAAmB;;;;;SAK5B,CAAC;AACV,CAAC;AApCD,oDAoCC;AAED,SAAS,UAAU,CAAC,IAAc;IAC9B,QAAQ,IAAI,CAAC,IAAI,EAAE;QACf,KAAK,UAAU;YACX,OAAO,IAAI,CAAC;QAChB,KAAK,WAAW;YACZ,OAAO,KAAK,CAAC;QACjB,KAAK,aAAa;YACd,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACpC;AACL,CAAC"}
@@ -2,4 +2,4 @@ import type { UnionTypeDefinitionNode } from '@luvio/graphql-parser';
2
2
  import type { ImportContext } from '../../../utils/imports';
3
3
  import type { GraphQLCodegenMetadata } from '../source-printer/graphql-source-printer';
4
4
  import type { LuvioGraphQLDSL } from '../../../intermediate/graphql';
5
- export declare function generate(graphqlDsl: LuvioGraphQLDSL, name: string, def: UnionTypeDefinitionNode, importContext: ImportContext, metadata: GraphQLCodegenMetadata): string;
5
+ export declare function generate(graphqlDsl: LuvioGraphQLDSL, graphqlTypeName: string, def: UnionTypeDefinitionNode, importContext: ImportContext, metadata: GraphQLCodegenMetadata): string;
@@ -11,14 +11,20 @@ const ingest_1 = require("./ingest");
11
11
  const select_1 = require("./select");
12
12
  const type_cache_keys_1 = require("./type-cache-keys");
13
13
  const version_1 = require("./version");
14
- function generate(graphqlDsl, name, def, importContext, metadata) {
14
+ const fragment_type_1 = require("../type/fragment-type");
15
+ const type_from_field_1 = require("../type/type-from-field");
16
+ const minimumFields_1 = require("../type/minimumFields");
17
+ function generate(graphqlDsl, graphqlTypeName, def, importContext, metadata) {
15
18
  return (0, imports_1.resolveImports)((0, deindent_1.default) `
16
- export const name = '${name}';
17
- ${(0, interface_1.generateInterface)(name, def, importContext, metadata)}
19
+ export const name = '${graphqlTypeName}';
20
+ ${(0, interface_1.generateInterface)(graphqlTypeName, def, importContext, metadata)}
18
21
  ${(0, version_1.generateVersion)()}
19
- ${(0, ingest_1.generateIngest)(graphqlDsl, name, def, importContext, metadata)}
20
- ${(0, select_1.generateSelect)(graphqlDsl, name, def, importContext, metadata)}
21
- ${(0, type_cache_keys_1.generateGetTypeCacheKeys)(graphqlDsl, name, def, importContext, metadata)}
22
+ ${(0, ingest_1.generateIngest)(graphqlDsl, graphqlTypeName, def, importContext, metadata)}
23
+ ${(0, select_1.generateSelect)(graphqlDsl, graphqlTypeName, def, importContext, metadata)}
24
+ ${(0, type_cache_keys_1.generateGetTypeCacheKeys)(graphqlDsl, graphqlTypeName, def, importContext, metadata)}
25
+ ${(0, fragment_type_1.generateGetFragmentType)(graphqlDsl, def, importContext)}
26
+ ${(0, type_from_field_1.generateGetFieldType)(graphqlDsl, def)}
27
+ ${(0, minimumFields_1.generateGetMinimumSelections)(graphqlDsl, graphqlTypeName, def, importContext, metadata)}
22
28
  `);
23
29
  }
24
30
  exports.generate = generate;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/union/index.ts"],"names":[],"mappings":";;;;;;AACA,uEAA+C;AAE/C,2CAAgD;AAChD,oDAAwD;AAExD,qCAA0C;AAE1C,qCAA0C;AAC1C,uDAA6D;AAC7D,uCAA4C;AAE5C,SAAgB,QAAQ,CACpB,UAA2B,EAC3B,IAAY,EACZ,GAA4B,EAC5B,aAA4B,EAC5B,QAAgC;IAEhC,OAAO,IAAA,wBAAc,EAAC,IAAA,kBAAQ,EAAA;+BACH,IAAI;UACzB,IAAA,6BAAiB,EAAC,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UACrD,IAAA,yBAAe,GAAE;UACjB,IAAA,uBAAc,EAAC,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UAC9D,IAAA,uBAAc,EAAC,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UAC9D,IAAA,0CAAwB,EAAC,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;KAC7E,CAAC,CAAC;AACP,CAAC;AAfD,4BAeC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/union/index.ts"],"names":[],"mappings":";;;;;;AACA,uEAA+C;AAE/C,2CAAgD;AAChD,oDAAwD;AAExD,qCAA0C;AAE1C,qCAA0C;AAC1C,uDAA6D;AAC7D,uCAA4C;AAC5C,yDAAgE;AAChE,6DAA+D;AAC/D,yDAAqE;AAErE,SAAgB,QAAQ,CACpB,UAA2B,EAC3B,eAAuB,EACvB,GAA4B,EAC5B,aAA4B,EAC5B,QAAgC;IAEhC,OAAO,IAAA,wBAAc,EAAC,IAAA,kBAAQ,EAAA;+BACH,eAAe;UACpC,IAAA,6BAAiB,EAAC,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UAChE,IAAA,yBAAe,GAAE;UACjB,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;UACzE,IAAA,0CAAwB,EAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UACnF,IAAA,uCAAuB,EAAC,UAAU,EAAE,GAAG,EAAE,aAAa,CAAC;UACvD,IAAA,sCAAoB,EAAC,UAAU,EAAE,GAAG,CAAC;UACrC,IAAA,4CAA4B,EAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;KAC5F,CAAC,CAAC;AACP,CAAC;AAlBD,4BAkBC"}
@@ -1,6 +1,6 @@
1
- import type { GraphQLSchema, GraphQLInterfaceType, GraphQLObjectType, TypeNode, ObjectTypeDefinitionNode, FieldDefinitionNode, InterfaceTypeDefinitionNode } from '@luvio/graphql-parser';
1
+ import type { GraphQLSchema, GraphQLInterfaceType, GraphQLObjectType, TypeNode, ObjectTypeDefinitionNode, FieldDefinitionNode, InterfaceTypeDefinitionNode, GraphQLUnionType, UnionTypeDefinitionNode } from '@luvio/graphql-parser';
2
2
  import type { ShapeTtls } from '../../../intermediate/model-info';
3
- export declare type NormalizableTypes = Record<string, GraphQLInterfaceType | GraphQLObjectType<any, any>>;
3
+ export declare type NormalizableTypes = Record<string, GraphQLInterfaceType | GraphQLObjectType<any, any> | GraphQLUnionType>;
4
4
  export declare function resolveTypeName(typeNode: TypeNode): string;
5
5
  export declare function resolveFieldTypeName(schema: GraphQLSchema, field: any): string | null;
6
6
  /**
@@ -19,4 +19,4 @@ export declare const TYPENAME_FIELD: FieldDefinitionNode;
19
19
  * Convenience function to ensure we're always handling graphql meta fields like __typename. Query authors can ask for them!
20
20
  *
21
21
  */
22
- export declare function getObjectFields(def: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode): FieldDefinitionNode[];
22
+ export declare function getObjectFields(def: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode | UnionTypeDefinitionNode): FieldDefinitionNode[];
@@ -78,6 +78,9 @@ const OBJECT_TYPE_META_FIELDS = [exports.TYPENAME_FIELD]; // TODO: Support all m
78
78
  *
79
79
  */
80
80
  function getObjectFields(def) {
81
+ if (def.kind === 'UnionTypeDefinition') {
82
+ return [...OBJECT_TYPE_META_FIELDS];
83
+ }
81
84
  const objectFields = def.fields ? def.fields : [];
82
85
  return [...OBJECT_TYPE_META_FIELDS, ...objectFields];
83
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/utils/types.ts"],"names":[],"mappings":";;;AAaA,SAAgB,eAAe,CAAC,QAAkB;IAC9C,QAAQ,QAAQ,CAAC,IAAI,EAAE;QACnB,KAAK,WAAW;YACZ,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QAC/B;YACI,OAAO,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KAC7C;AACL,CAAC;AAPD,0CAOC;AAED,SAAgB,oBAAoB,CAAC,MAAqB,EAAE,KAAU;IAClE,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEtC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;QACrC,OAAO,IAAI,CAAC;KACf;IAED,OAAO,IAAI,CAAC,IAAI,CAAC;AACrB,CAAC;AAVD,oDAUC;AAED;;;;GAIG;AACH,SAAgB,sBAAsB,CAAC,MAAqB;;IACxD,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACpC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,mBAAmB,GAAsB,EAAE,CAAC;IAElD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE/B,IACI,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,MAAK,yBAAyB;YAChD,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,MAAK,sBAAsB;YAC7C,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,MAAK,qBAAqB,EAC9C;YACE,uDAAuD;YACvD,uFAAuF;YACvF,aAAa;YACb,mBAAmB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;SACxC;KACJ;IAED,OAAO,mBAAmB,CAAC;AAC/B,CAAC;AArBD,wDAqBC;AAED;;;GAGG;AACH,SAAgB,WAAW,CACvB,OAA2B,EAC3B,OAA2B,EAC3B,SAAgC;IAEhC,MAAM,QAAQ,GAAG,SAAS,IAAI,SAAS,CAAC,OAAQ,CAAC,CAAC;IAElD,IAAI,OAAO,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE;QACjD,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;KACrE;IAED,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAQ,CAAC;AACxD,CAAC;AAZD,kCAYC;AAEY,QAAA,cAAc,GAAwB;IAC/C,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE;QACF,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,YAAY;KACtB;IACD,IAAI,EAAE;QACF,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE;YACF,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE;gBACF,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,MAAM;aACf;SACJ;KACJ;CACJ,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,sBAAc,CAAC,CAAC,CAAC,iCAAiC;AACnF;;;GAGG;AACH,SAAgB,eAAe,CAC3B,GAA2D;IAE3D,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,OAAO,CAAC,GAAG,uBAAuB,EAAE,GAAG,YAAY,CAAC,CAAC;AACzD,CAAC;AALD,0CAKC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/utils/types.ts"],"names":[],"mappings":";;;AAkBA,SAAgB,eAAe,CAAC,QAAkB;IAC9C,QAAQ,QAAQ,CAAC,IAAI,EAAE;QACnB,KAAK,WAAW;YACZ,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QAC/B;YACI,OAAO,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KAC7C;AACL,CAAC;AAPD,0CAOC;AAED,SAAgB,oBAAoB,CAAC,MAAqB,EAAE,KAAU;IAClE,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEtC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;QACrC,OAAO,IAAI,CAAC;KACf;IAED,OAAO,IAAI,CAAC,IAAI,CAAC;AACrB,CAAC;AAVD,oDAUC;AAED;;;;GAIG;AACH,SAAgB,sBAAsB,CAAC,MAAqB;;IACxD,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACpC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,mBAAmB,GAAsB,EAAE,CAAC;IAElD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE/B,IACI,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,MAAK,yBAAyB;YAChD,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,MAAK,sBAAsB;YAC7C,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,MAAK,qBAAqB,EAC9C;YACE,uDAAuD;YACvD,uFAAuF;YACvF,aAAa;YACb,mBAAmB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;SACxC;KACJ;IAED,OAAO,mBAAmB,CAAC;AAC/B,CAAC;AArBD,wDAqBC;AAED;;;GAGG;AACH,SAAgB,WAAW,CACvB,OAA2B,EAC3B,OAA2B,EAC3B,SAAgC;IAEhC,MAAM,QAAQ,GAAG,SAAS,IAAI,SAAS,CAAC,OAAQ,CAAC,CAAC;IAElD,IAAI,OAAO,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE;QACjD,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;KACrE;IAED,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAQ,CAAC;AACxD,CAAC;AAZD,kCAYC;AAEY,QAAA,cAAc,GAAwB;IAC/C,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE;QACF,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,YAAY;KACtB;IACD,IAAI,EAAE;QACF,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE;YACF,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE;gBACF,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,MAAM;aACf;SACJ;KACJ;CACJ,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,sBAAc,CAAC,CAAC,CAAC,iCAAiC;AACnF;;;GAGG;AACH,SAAgB,eAAe,CAC3B,GAAqF;IAErF,IAAI,GAAG,CAAC,IAAI,KAAK,qBAAqB,EAAE;QACpC,OAAO,CAAC,GAAG,uBAAuB,CAAC,CAAC;KACvC;IACD,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,OAAO,CAAC,GAAG,uBAAuB,EAAE,GAAG,YAAY,CAAC,CAAC;AACzD,CAAC;AARD,0CAQC"}
@@ -19,6 +19,7 @@ function generateGraphQLTypeShapeKeys(shapeConfig, graphQLResource) {
19
19
  const GRAPHQL_QUERY_TYPE_CACHE_KEYS_IMPORT = importContext.importGraphQLArtifact('types', queryType.name, constants_1.TYPE_CACHE_KEYS_IDENTIFIER);
20
20
  const GRAPHQL_VARIABLES_IMPORT = importContext.importGraphQLArtifact('types', constants_1.TYPE_UTIL_IDENTIFIER, constants_1.GRAPHQL_VARIABLES_IDENTIFIER);
21
21
  const fragmentMapImport = importContext.importGraphQLArtifact('types', constants_1.TYPE_UTIL_IDENTIFIER, constants_1.GRAPHQL_FRAGMENT_MAP_IDENTIFIER);
22
+ const createFragmentMapImport = importContext.importGraphQLArtifact('types', constants_1.TYPE_UTIL_IDENTIFIER, constants_1.CREATE_FRAGMENT_MAP_IDENTIFIER);
22
23
  return (0, deindent_1.default) `
23
24
  export function ${constants_1.TYPE_CACHE_KEYS_IDENTIFIER}(${constants_2.LUVIO_IDENTIFIER}: ${constants_2.LUVIO_IMPORT}, query: ${constants_2.LUVIO_GRAPHQL_DOCUMENT_NODE_IMPORT}, variables: ${GRAPHQL_VARIABLES_IMPORT}, data: ${shapeConfig.shape.name}): ${constants_2.ADAPTER_CACHE_KEY_SET_TYPE_IDENTIFIER} {
24
25
  const rootKey = ${key_builder_1.SHAPE_KEY_BUILDER_FROM_TYPE_IDENTIFIER}(${constants_2.LUVIO_IDENTIFIER}, data);
@@ -30,12 +31,7 @@ function generateGraphQLTypeShapeKeys(shapeConfig, graphQLResource) {
30
31
  }
31
32
  };
32
33
  if(data.data) {
33
- const fragments: ${fragmentMapImport} = {};
34
- query.definitions.forEach((node) => {
35
- if (node.kind === 'FragmentDefinition') {
36
- fragments[node.name.value] = node;
37
- }
38
- });
34
+ const fragments: ${fragmentMapImport} = ${createFragmentMapImport}(query);
39
35
  query.definitions.forEach((node) => {
40
36
  if (node.kind === 'OperationDefinition') {
41
37
  const state = {
@@ -1 +1 @@
1
- {"version":3,"file":"shape-cache-keys.js","sourceRoot":"","sources":["../../../../src/codegen/shape/graphql/shape-cache-keys.ts"],"names":[],"mappings":";;;;;;AAEA,uEAA+C;AAC/C,4DAKsC;AACtC,sDAKgC;AAChC,4EAA8E;AAC9E,+CAAuE;AAEvE,SAAgB,4BAA4B,CACxC,WAA+B,EAC/B,eAAgC;IAEhC,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;IAChD,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;IACnE,IAAI,CAAC,SAAS,EAAE;QACZ,OAAO,EAAE,CAAC;KACb;IACD,MAAM,oBAAoB,GAAG,aAAa,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAC1E,MAAM,oCAAoC,GAAG,aAAa,CAAC,qBAAqB,CAC5E,OAAO,EACP,SAAS,CAAC,IAAI,EACd,sCAA0B,CAC7B,CAAC;IACF,MAAM,wBAAwB,GAAG,aAAa,CAAC,qBAAqB,CAChE,OAAO,EACP,gCAAoB,EACpB,wCAA4B,CAC/B,CAAC;IACF,MAAM,iBAAiB,GAAG,aAAa,CAAC,qBAAqB,CACzD,OAAO,EACP,gCAAoB,EACpB,2CAA+B,CAClC,CAAC;IACF,OAAO,IAAA,kBAAQ,EAAA;sBACG,sCAA0B,IAAI,4BAAgB,KAAK,wBAAY,YAAY,8CAAkC,gBAAgB,wBAAwB,WACnK,WAAW,CAAC,KAAK,CAAC,IACtB,MAAM,iDAAqC;0BACrB,oDAAsC,IAAI,4BAAgB;;;6BAGvD,aAAa,CAAC,iBAAiB,CAAC,WAAW,CAAC;;sCAEnC,0DAA8B;;;;+BAIrC,iBAAiB;;;;;;;;;;;;;;;;;;;sBAmB1B,oBAAoB,UAAU,oCAAoC;;;;;;;KAOnF,CAAC;AACN,CAAC;AAjED,oEAiEC"}
1
+ {"version":3,"file":"shape-cache-keys.js","sourceRoot":"","sources":["../../../../src/codegen/shape/graphql/shape-cache-keys.ts"],"names":[],"mappings":";;;;;;AAEA,uEAA+C;AAC/C,4DAMsC;AACtC,sDAKgC;AAChC,4EAA8E;AAC9E,+CAAuE;AAEvE,SAAgB,4BAA4B,CACxC,WAA+B,EAC/B,eAAgC;IAEhC,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;IAChD,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;IACnE,IAAI,CAAC,SAAS,EAAE;QACZ,OAAO,EAAE,CAAC;KACb;IACD,MAAM,oBAAoB,GAAG,aAAa,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAC1E,MAAM,oCAAoC,GAAG,aAAa,CAAC,qBAAqB,CAC5E,OAAO,EACP,SAAS,CAAC,IAAI,EACd,sCAA0B,CAC7B,CAAC;IACF,MAAM,wBAAwB,GAAG,aAAa,CAAC,qBAAqB,CAChE,OAAO,EACP,gCAAoB,EACpB,wCAA4B,CAC/B,CAAC;IACF,MAAM,iBAAiB,GAAG,aAAa,CAAC,qBAAqB,CACzD,OAAO,EACP,gCAAoB,EACpB,2CAA+B,CAClC,CAAC;IACF,MAAM,uBAAuB,GAAG,aAAa,CAAC,qBAAqB,CAC/D,OAAO,EACP,gCAAoB,EACpB,0CAA8B,CACjC,CAAC;IAEF,OAAO,IAAA,kBAAQ,EAAA;sBACG,sCAA0B,IAAI,4BAAgB,KAAK,wBAAY,YAAY,8CAAkC,gBAAgB,wBAAwB,WACnK,WAAW,CAAC,KAAK,CAAC,IACtB,MAAM,iDAAqC;0BACrB,oDAAsC,IAAI,4BAAgB;;;6BAGvD,aAAa,CAAC,iBAAiB,CAAC,WAAW,CAAC;;sCAEnC,0DAA8B;;;;+BAIrC,iBAAiB,MAAM,uBAAuB;;;;;;;;;;;;;;sBAcvD,oBAAoB,UAAU,oCAAoC;;;;;;;KAOnF,CAAC;AACN,CAAC;AAlED,oEAkEC"}
@@ -29,6 +29,7 @@ function generateGraphQLInteropTypeIngest(shapeConfig, graphQLResource) {
29
29
  const GRAPHQL_STATE_INTERFACE_IMPORT = importContext.importGraphQLArtifact('types', constants_2.TYPE_UTIL_IDENTIFIER, constants_2.GRAPHQL_INGEST_STATE_INTERFACE_IDENTIFIER);
30
30
  const GRAPHQL_VARIABLES_INTERFACE_IMPORT = importContext.importGraphQLArtifact('types', constants_2.TYPE_UTIL_IDENTIFIER, constants_2.GRAPHQL_VARIABLES_IDENTIFIER);
31
31
  const fragmentMapImport = importContext.importGraphQLArtifact('types', constants_2.TYPE_UTIL_IDENTIFIER, constants_2.GRAPHQL_FRAGMENT_MAP_IDENTIFIER);
32
+ const createFragmentMapImport = importContext.importGraphQLArtifact('types', constants_2.TYPE_UTIL_IDENTIFIER, constants_2.CREATE_FRAGMENT_MAP_IDENTIFIER);
32
33
  return (0, deindent_1.default) `
33
34
 
34
35
  function ingestOperationNode(${constants_3.LUVIO_IDENTIFIER}: ${constants_3.LUVIO_IMPORT}, ${constants_4.INPUT_IDENTIFIER}: ${shapeConfig.shape.name}, node: ${OPERATION_DEFINITION_IMPORT}, state: ${GRAPHQL_STATE_INTERFACE_IMPORT}<${GRAPHQL_QUERY_TYPE_PARTIAL_INTERFACE_IMPORT}>) {
@@ -49,12 +50,7 @@ function generateGraphQLInteropTypeIngest(shapeConfig, graphQLResource) {
49
50
  return (${constants_4.INPUT_IDENTIFIER}: ${shapeConfig.shape.name}, ${PARENT_PATH_IDENTIFIER}: ${constants_1.ADAPTER_INGEST_PATH_INTERFACE_IDENTIFIER}, ${constants_3.LUVIO_IDENTIFIER}: ${constants_3.LUVIO_IMPORT}, ${constants_3.LUVIO_STORE_IDENTIFIER}: ${constants_3.LUVIO_STORE_IMPORT}, ${TIMESTAMP_IDENTIFIER}: number): ${constants_3.LUVIO_STORE_LINK_IMPORT} => {
50
51
 
51
52
  if(${constants_4.INPUT_IDENTIFIER}.data) {
52
- const fragments: ${fragmentMapImport} = {};
53
- query.definitions.forEach((node) => {
54
- if (node.kind === 'FragmentDefinition') {
55
- fragments[node.name.value] = node;
56
- }
57
- });
53
+ const fragments: ${fragmentMapImport} = ${createFragmentMapImport}(query);
58
54
  const state: ${GRAPHQL_STATE_INTERFACE_IMPORT}<${GRAPHQL_QUERY_TYPE_PARTIAL_INTERFACE_IMPORT}> = {
59
55
  data: ${constants_4.INPUT_IDENTIFIER}.data,
60
56
  ${constants_3.LUVIO_IDENTIFIER},
@@ -1 +1 @@
1
- {"version":3,"file":"shape-ingest.js","sourceRoot":"","sources":["../../../../src/codegen/shape/graphql/shape-ingest.ts"],"names":[],"mappings":";;;;;;AACA,uEAA+C;AAC/C,uDAGiC;AACjC,4DAKsC;AACtC,4DAA4E;AAC5E,sDAOgC;AAChC,4CAAgD;AAEhD,kDAA0D;AAC1D,+CAAuE;AAEvE,MAAM,oBAAoB,GAAG,WAAW,CAAC;AACzC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAEtC,SAAgB,gCAAgC,CAC5C,WAA+B,EAC/B,eAAgC;IAEhC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC;IAC7C,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAClC,MAAM,kBAAkB,GAAG,GAAG,SAAS,QAAQ,CAAC;IAChD,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;IAEnE,IAAI,CAAC,SAAS,EAAE;QACZ,+CAA+C;QAC/C,OAAO,EAAE,CAAC;KACb;IACD,MAAM,gCAAgC,GAAG,aAAa,CAAC,qBAAqB,CACxE,OAAO,EACP,SAAS,CAAC,IAAI,EACd,QAAQ,CACX,CAAC;IACF,MAAM,2CAA2C,GAAG,aAAa,CAAC,qBAAqB,CACnF,OAAO,EACP,SAAS,CAAC,IAAI,EACd,wCAA4B,CAC/B,CAAC;IACF,MAAM,2BAA2B,GAAG,aAAa,CAAC,WAAW,CACzD,uBAAuB,EACvB,yBAAyB,CAC5B,CAAC;IACF,MAAM,8BAA8B,GAAG,aAAa,CAAC,qBAAqB,CACtE,OAAO,EACP,gCAAoB,EACpB,qDAAyC,CAC5C,CAAC;IACF,MAAM,kCAAkC,GAAG,aAAa,CAAC,qBAAqB,CAC1E,OAAO,EACP,gCAAoB,EACpB,wCAA4B,CAC/B,CAAC;IACF,MAAM,iBAAiB,GAAG,aAAa,CAAC,qBAAqB,CACzD,OAAO,EACP,gCAAoB,EACpB,2CAA+B,CAClC,CAAC;IAEF,OAAO,IAAA,kBAAQ,EAAA;;uCAEoB,4BAAgB,KAAK,wBAAY,KAAK,4BAAgB,KAAK,WAAW,CAAC,KAAK,CAAC,IAAI,WAAW,2BAA2B,YAAY,8BAA8B,IAAI,2CAA2C;;kBAErO,gCAAgC;;;;;;wCAMV,oDAAsC,IAAI,4BAAgB,KAAK,4BAAgB;;;;;;uBAMhG,sCAAuB,eAAe,kBAAkB,WAAW,8CAAkC,gBAAgB,kCAAkC,MAAM,wDAA4C;sBAC1M,4BAAgB,KAAK,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,sBAAsB,KAAK,oDAAwC,KAAK,4BAAgB,KAAK,wBAAY,KAAK,kCAAsB,KAAK,8BAAkB,KAAK,oBAAoB,cAAc,mCAAuB;;qBAE1Q,4BAAgB;uCACE,iBAAiB;;;;;;mCAMrB,8BAA8B,IAAI,2CAA2C;gCAChF,4BAAgB;0BACtB,4BAAgB;0BAChB,kCAAsB;0BACtB,oBAAoB;gCACd,sBAAsB;;;;;;kDAMJ,4BAAgB,KAAK,4BAAgB;;;;;;;;;;KAUlF,CAAC;AACN,CAAC;AA3FD,4EA2FC"}
1
+ {"version":3,"file":"shape-ingest.js","sourceRoot":"","sources":["../../../../src/codegen/shape/graphql/shape-ingest.ts"],"names":[],"mappings":";;;;;;AACA,uEAA+C;AAC/C,uDAGiC;AACjC,4DAMsC;AACtC,4DAA4E;AAC5E,sDAOgC;AAChC,4CAAgD;AAEhD,kDAA0D;AAC1D,+CAAuE;AAEvE,MAAM,oBAAoB,GAAG,WAAW,CAAC;AACzC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAEtC,SAAgB,gCAAgC,CAC5C,WAA+B,EAC/B,eAAgC;IAEhC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC;IAC7C,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAClC,MAAM,kBAAkB,GAAG,GAAG,SAAS,QAAQ,CAAC;IAChD,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;IAEnE,IAAI,CAAC,SAAS,EAAE;QACZ,+CAA+C;QAC/C,OAAO,EAAE,CAAC;KACb;IACD,MAAM,gCAAgC,GAAG,aAAa,CAAC,qBAAqB,CACxE,OAAO,EACP,SAAS,CAAC,IAAI,EACd,QAAQ,CACX,CAAC;IACF,MAAM,2CAA2C,GAAG,aAAa,CAAC,qBAAqB,CACnF,OAAO,EACP,SAAS,CAAC,IAAI,EACd,wCAA4B,CAC/B,CAAC;IACF,MAAM,2BAA2B,GAAG,aAAa,CAAC,WAAW,CACzD,uBAAuB,EACvB,yBAAyB,CAC5B,CAAC;IACF,MAAM,8BAA8B,GAAG,aAAa,CAAC,qBAAqB,CACtE,OAAO,EACP,gCAAoB,EACpB,qDAAyC,CAC5C,CAAC;IACF,MAAM,kCAAkC,GAAG,aAAa,CAAC,qBAAqB,CAC1E,OAAO,EACP,gCAAoB,EACpB,wCAA4B,CAC/B,CAAC;IACF,MAAM,iBAAiB,GAAG,aAAa,CAAC,qBAAqB,CACzD,OAAO,EACP,gCAAoB,EACpB,2CAA+B,CAClC,CAAC;IACF,MAAM,uBAAuB,GAAG,aAAa,CAAC,qBAAqB,CAC/D,OAAO,EACP,gCAAoB,EACpB,0CAA8B,CACjC,CAAC;IAEF,OAAO,IAAA,kBAAQ,EAAA;;uCAEoB,4BAAgB,KAAK,wBAAY,KAAK,4BAAgB,KAAK,WAAW,CAAC,KAAK,CAAC,IAAI,WAAW,2BAA2B,YAAY,8BAA8B,IAAI,2CAA2C;;kBAErO,gCAAgC;;;;;;wCAMV,oDAAsC,IAAI,4BAAgB,KAAK,4BAAgB;;;;;;uBAMhG,sCAAuB,eAAe,kBAAkB,WAAW,8CAAkC,gBAAgB,kCAAkC,MAAM,wDAA4C;sBAC1M,4BAAgB,KAAK,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,sBAAsB,KAAK,oDAAwC,KAAK,4BAAgB,KAAK,wBAAY,KAAK,kCAAsB,KAAK,8BAAkB,KAAK,oBAAoB,cAAc,mCAAuB;;qBAE1Q,4BAAgB;uCACE,iBAAiB,MAAM,uBAAuB;mCAClD,8BAA8B,IAAI,2CAA2C;gCAChF,4BAAgB;0BACtB,4BAAgB;0BAChB,kCAAsB;0BACtB,oBAAoB;gCACd,sBAAsB;;;;;;kDAMJ,4BAAgB,KAAK,4BAAgB;;;;;;;;;;KAUlF,CAAC;AACN,CAAC;AA3FD,4EA2FC"}
@@ -21,6 +21,7 @@ export declare const LUVIO_GRAPHQL_VALUE_NODE_IMPORT: string;
21
21
  export declare const LUVIO_GRAPHQL_OBJECT_FIELD_NODE_IMPORT: string;
22
22
  export declare const LUVIO_GRAPHQL_SELECTION_SET_NODE_IMPORT: string;
23
23
  export declare const LUVIO_GRAPHQL_FRAGMENT_DEFINITION_NODE_IMPORT: string;
24
+ export declare const LUVIO_GRAPHQL_FRAGMENT_SPREAD_NODE_IMPORT: string;
24
25
  export declare const LUVIO_GRAPHQL_INLINE_FRAGMENT_NODE_IMPORT: string;
25
26
  export declare const LUVIO_GRAPHQL_DIRECTIVE_NODE_IMPORT: string;
26
27
  export declare const LUVIO_GRAPHQL_AST_VISITOR_IMPORT: string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LUVIO_SELECTION_PROPERTY_KEY_IMPORT = exports.LUVIO_GRAPHQL_VISIT_IMPORT = exports.LUVIO_GRAPHQL_AST_VISITOR_IMPORT = exports.LUVIO_GRAPHQL_DIRECTIVE_NODE_IMPORT = exports.LUVIO_GRAPHQL_INLINE_FRAGMENT_NODE_IMPORT = exports.LUVIO_GRAPHQL_FRAGMENT_DEFINITION_NODE_IMPORT = exports.LUVIO_GRAPHQL_SELECTION_SET_NODE_IMPORT = exports.LUVIO_GRAPHQL_OBJECT_FIELD_NODE_IMPORT = exports.LUVIO_GRAPHQL_VALUE_NODE_IMPORT = exports.LUVIO_GRAPHQL_ARGUMENT_NODE_IMPORT = exports.LUVIO_GRAPHQL_SELECTION_NODE_IMPORT = exports.LUVIO_GRAPHQL_FIELD_NODE_IMPORT = exports.LUVIO_GRAPHQL_OPERATION_DEFINITION_NODE_IMPORT = exports.LUVIO_GRAPHQL_DOCUMENT_NODE_IMPORT = exports.LUVIO_GRAPHQL_PARSE_IMPORT = exports.LUVIO_GRAPHQL_PRINT_IMPORT = exports.PAGINATION_KEY_SUFFIX = exports.CACHE_KEY_FIELD_DELIMITER = exports.CACHE_KEY_NAMESPACE_DELIMITER = exports.LUVIO_STORE_CREATE_METADATA_IMPORT = exports.READER_FRAGMENT_IMPORT = exports.ADAPTER_CACHE_KEY_SET_TYPE_IDENTIFIER = exports.LUVIO_STORE_LINK_IMPORT = exports.LUVIO_IN_MEMORY_STORE_IMPORT = exports.LUVIO_STORE_IMPORT = exports.LUVIO_IMPORT = exports.LUVIO_STORE_IDENTIFIER = exports.LUVIO_IDENTIFIER = void 0;
3
+ exports.LUVIO_SELECTION_PROPERTY_KEY_IMPORT = exports.LUVIO_GRAPHQL_VISIT_IMPORT = exports.LUVIO_GRAPHQL_AST_VISITOR_IMPORT = exports.LUVIO_GRAPHQL_DIRECTIVE_NODE_IMPORT = exports.LUVIO_GRAPHQL_INLINE_FRAGMENT_NODE_IMPORT = exports.LUVIO_GRAPHQL_FRAGMENT_SPREAD_NODE_IMPORT = exports.LUVIO_GRAPHQL_FRAGMENT_DEFINITION_NODE_IMPORT = exports.LUVIO_GRAPHQL_SELECTION_SET_NODE_IMPORT = exports.LUVIO_GRAPHQL_OBJECT_FIELD_NODE_IMPORT = exports.LUVIO_GRAPHQL_VALUE_NODE_IMPORT = exports.LUVIO_GRAPHQL_ARGUMENT_NODE_IMPORT = exports.LUVIO_GRAPHQL_SELECTION_NODE_IMPORT = exports.LUVIO_GRAPHQL_FIELD_NODE_IMPORT = exports.LUVIO_GRAPHQL_OPERATION_DEFINITION_NODE_IMPORT = exports.LUVIO_GRAPHQL_DOCUMENT_NODE_IMPORT = exports.LUVIO_GRAPHQL_PARSE_IMPORT = exports.LUVIO_GRAPHQL_PRINT_IMPORT = exports.PAGINATION_KEY_SUFFIX = exports.CACHE_KEY_FIELD_DELIMITER = exports.CACHE_KEY_NAMESPACE_DELIMITER = exports.LUVIO_STORE_CREATE_METADATA_IMPORT = exports.READER_FRAGMENT_IMPORT = exports.ADAPTER_CACHE_KEY_SET_TYPE_IDENTIFIER = exports.LUVIO_STORE_LINK_IMPORT = exports.LUVIO_IN_MEMORY_STORE_IMPORT = exports.LUVIO_STORE_IMPORT = exports.LUVIO_IMPORT = exports.LUVIO_STORE_IDENTIFIER = exports.LUVIO_IDENTIFIER = void 0;
4
4
  const imports_1 = require("../../utils/imports");
5
5
  // Identifiers
6
6
  exports.LUVIO_IDENTIFIER = 'luvio';
@@ -29,6 +29,7 @@ exports.LUVIO_GRAPHQL_VALUE_NODE_IMPORT = (0, imports_1.namedImport)('@luvio/gra
29
29
  exports.LUVIO_GRAPHQL_OBJECT_FIELD_NODE_IMPORT = (0, imports_1.namedImport)('@luvio/graphql-parser', 'ObjectFieldNode');
30
30
  exports.LUVIO_GRAPHQL_SELECTION_SET_NODE_IMPORT = (0, imports_1.namedImport)('@luvio/graphql-parser', 'SelectionSetNode');
31
31
  exports.LUVIO_GRAPHQL_FRAGMENT_DEFINITION_NODE_IMPORT = (0, imports_1.namedImport)('@luvio/graphql-parser', 'FragmentDefinitionNode');
32
+ exports.LUVIO_GRAPHQL_FRAGMENT_SPREAD_NODE_IMPORT = (0, imports_1.namedImport)('@luvio/graphql-parser', 'FragmentSpreadNode');
32
33
  exports.LUVIO_GRAPHQL_INLINE_FRAGMENT_NODE_IMPORT = (0, imports_1.namedImport)('@luvio/graphql-parser', 'InlineFragmentNode');
33
34
  exports.LUVIO_GRAPHQL_DIRECTIVE_NODE_IMPORT = (0, imports_1.namedImport)('@luvio/graphql-parser', 'DirectiveNode');
34
35
  exports.LUVIO_GRAPHQL_AST_VISITOR_IMPORT = (0, imports_1.namedImport)('@luvio/graphql-parser', 'ASTVisitor');
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/codegen/shared/constants.ts"],"names":[],"mappings":";;;AAAA,iDAAkD;AAElD,cAAc;AACD,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAC3B,QAAA,sBAAsB,GAAG,OAAO,CAAC;AAE9C,iBAAiB;AACJ,QAAA,YAAY,GAAG,IAAA,qBAAW,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC;AACrD,QAAA,kBAAkB,GAAG,IAAA,qBAAW,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC;AAC3D,QAAA,4BAA4B,GAAG,IAAA,qBAAW,EAAC,eAAe,EAAE,eAAe,CAAC,CAAC;AAC7E,QAAA,uBAAuB,GAAG,IAAA,qBAAW,EAAC,eAAe,EAAE,WAAW,CAAC,CAAC;AACpE,QAAA,qCAAqC,GAAG,IAAA,qBAAW,EAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AACpF,QAAA,sBAAsB,GAAG,IAAA,qBAAW,EAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;AACxE,QAAA,kCAAkC,GAAG,IAAA,qBAAW,EACzD,eAAe,EACf,2BAA2B,CAC9B,CAAC;AAEF,wEAAwE;AAC3D,QAAA,6BAA6B,GAAG,IAAI,CAAC;AACrC,QAAA,yBAAyB,GAAG,GAAG,CAAC;AAEhC,QAAA,qBAAqB,GAAG,cAAc,CAAC;AAEpD,gCAAgC;AACnB,QAAA,0BAA0B,GAAG,IAAA,qBAAW,EAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;AAC3E,QAAA,0BAA0B,GAAG,IAAA,qBAAW,EAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;AAC3E,QAAA,kCAAkC,GAAG,IAAA,qBAAW,EACzD,uBAAuB,EACvB,cAAc,CACjB,CAAC;AACW,QAAA,8CAA8C,GAAG,IAAA,qBAAW,EACrE,uBAAuB,EACvB,yBAAyB,CAC5B,CAAC;AACW,QAAA,+BAA+B,GAAG,IAAA,qBAAW,EAAC,uBAAuB,EAAE,WAAW,CAAC,CAAC;AACpF,QAAA,mCAAmC,GAAG,IAAA,qBAAW,EAC1D,uBAAuB,EACvB,eAAe,CAClB,CAAC;AACW,QAAA,kCAAkC,GAAG,IAAA,qBAAW,EACzD,uBAAuB,EACvB,cAAc,CACjB,CAAC;AACW,QAAA,+BAA+B,GAAG,IAAA,qBAAW,EAAC,uBAAuB,EAAE,WAAW,CAAC,CAAC;AACpF,QAAA,sCAAsC,GAAG,IAAA,qBAAW,EAC7D,uBAAuB,EACvB,iBAAiB,CACpB,CAAC;AACW,QAAA,uCAAuC,GAAG,IAAA,qBAAW,EAC9D,uBAAuB,EACvB,kBAAkB,CACrB,CAAC;AACW,QAAA,6CAA6C,GAAG,IAAA,qBAAW,EACpE,uBAAuB,EACvB,wBAAwB,CAC3B,CAAC;AACW,QAAA,yCAAyC,GAAG,IAAA,qBAAW,EAChE,uBAAuB,EACvB,oBAAoB,CACvB,CAAC;AACW,QAAA,mCAAmC,GAAG,IAAA,qBAAW,EAC1D,uBAAuB,EACvB,eAAe,CAClB,CAAC;AACW,QAAA,gCAAgC,GAAG,IAAA,qBAAW,EAAC,uBAAuB,EAAE,YAAY,CAAC,CAAC;AACtF,QAAA,0BAA0B,GAAG,IAAA,qBAAW,EAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;AAC3E,QAAA,mCAAmC,GAAG,IAAA,qBAAW,EAC1D,eAAe,EACf,sBAAsB,CACzB,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/codegen/shared/constants.ts"],"names":[],"mappings":";;;AAAA,iDAAkD;AAElD,cAAc;AACD,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAC3B,QAAA,sBAAsB,GAAG,OAAO,CAAC;AAE9C,iBAAiB;AACJ,QAAA,YAAY,GAAG,IAAA,qBAAW,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC;AACrD,QAAA,kBAAkB,GAAG,IAAA,qBAAW,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC;AAC3D,QAAA,4BAA4B,GAAG,IAAA,qBAAW,EAAC,eAAe,EAAE,eAAe,CAAC,CAAC;AAC7E,QAAA,uBAAuB,GAAG,IAAA,qBAAW,EAAC,eAAe,EAAE,WAAW,CAAC,CAAC;AACpE,QAAA,qCAAqC,GAAG,IAAA,qBAAW,EAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AACpF,QAAA,sBAAsB,GAAG,IAAA,qBAAW,EAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;AACxE,QAAA,kCAAkC,GAAG,IAAA,qBAAW,EACzD,eAAe,EACf,2BAA2B,CAC9B,CAAC;AAEF,wEAAwE;AAC3D,QAAA,6BAA6B,GAAG,IAAI,CAAC;AACrC,QAAA,yBAAyB,GAAG,GAAG,CAAC;AAEhC,QAAA,qBAAqB,GAAG,cAAc,CAAC;AAEpD,gCAAgC;AACnB,QAAA,0BAA0B,GAAG,IAAA,qBAAW,EAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;AAC3E,QAAA,0BAA0B,GAAG,IAAA,qBAAW,EAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;AAC3E,QAAA,kCAAkC,GAAG,IAAA,qBAAW,EACzD,uBAAuB,EACvB,cAAc,CACjB,CAAC;AACW,QAAA,8CAA8C,GAAG,IAAA,qBAAW,EACrE,uBAAuB,EACvB,yBAAyB,CAC5B,CAAC;AACW,QAAA,+BAA+B,GAAG,IAAA,qBAAW,EAAC,uBAAuB,EAAE,WAAW,CAAC,CAAC;AACpF,QAAA,mCAAmC,GAAG,IAAA,qBAAW,EAC1D,uBAAuB,EACvB,eAAe,CAClB,CAAC;AACW,QAAA,kCAAkC,GAAG,IAAA,qBAAW,EACzD,uBAAuB,EACvB,cAAc,CACjB,CAAC;AACW,QAAA,+BAA+B,GAAG,IAAA,qBAAW,EAAC,uBAAuB,EAAE,WAAW,CAAC,CAAC;AACpF,QAAA,sCAAsC,GAAG,IAAA,qBAAW,EAC7D,uBAAuB,EACvB,iBAAiB,CACpB,CAAC;AACW,QAAA,uCAAuC,GAAG,IAAA,qBAAW,EAC9D,uBAAuB,EACvB,kBAAkB,CACrB,CAAC;AACW,QAAA,6CAA6C,GAAG,IAAA,qBAAW,EACpE,uBAAuB,EACvB,wBAAwB,CAC3B,CAAC;AACW,QAAA,yCAAyC,GAAG,IAAA,qBAAW,EAChE,uBAAuB,EACvB,oBAAoB,CACvB,CAAC;AACW,QAAA,yCAAyC,GAAG,IAAA,qBAAW,EAChE,uBAAuB,EACvB,oBAAoB,CACvB,CAAC;AACW,QAAA,mCAAmC,GAAG,IAAA,qBAAW,EAC1D,uBAAuB,EACvB,eAAe,CAClB,CAAC;AACW,QAAA,gCAAgC,GAAG,IAAA,qBAAW,EAAC,uBAAuB,EAAE,YAAY,CAAC,CAAC;AACtF,QAAA,0BAA0B,GAAG,IAAA,qBAAW,EAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;AAC3E,QAAA,mCAAmC,GAAG,IAAA,qBAAW,EAC1D,eAAe,EACf,sBAAsB,CACzB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luvio/compiler",
3
- "version": "0.121.0",
3
+ "version": "0.121.1",
4
4
  "description": "Luvio Compiler",
5
5
  "repository": {
6
6
  "type": "git",
@@ -22,12 +22,12 @@
22
22
  "test:debug": "node --inspect-brk ../../../node_modules/jest/bin/jest.js --config ./jest.config.js --runInBand"
23
23
  },
24
24
  "dependencies": {
25
- "@luvio/graphql-parser": "0.121.0",
25
+ "@luvio/graphql-parser": "0.121.1",
26
26
  "amf-client-js": "4.2.0"
27
27
  },
28
28
  "devDependencies": {
29
- "@luvio/adapter-test-library": "0.121.0",
30
- "@luvio/engine": "0.121.0"
29
+ "@luvio/adapter-test-library": "0.121.1",
30
+ "@luvio/engine": "0.121.1"
31
31
  },
32
32
  "nx": {
33
33
  "targets": {
@@ -1,5 +0,0 @@
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 generate(graphqlDsl: LuvioGraphQLDSL, typeName: string, def: InterfaceTypeDefinitionNode, importContext: ImportContext, _metadata: GraphQLCodegenMetadata): string;
@@ -1,21 +0,0 @@
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.generate = void 0;
7
- const deindent_1 = __importDefault(require("../../../utils/deindent"));
8
- const query_transformer_1 = require("../type/query-transformer");
9
- function generate(graphqlDsl, typeName, def, importContext, _metadata) {
10
- var _a;
11
- const { schema } = graphqlDsl;
12
- const isQueryType = ((_a = schema.getQueryType()) === null || _a === void 0 ? void 0 : _a.name) === typeName;
13
- const queryTransform = (0, query_transformer_1.generateQueryTransformerForFields)(graphqlDsl, def, importContext, typeName);
14
- const minimumFields = (0, query_transformer_1.generateGetMinimumFields)(isQueryType, def, graphqlDsl);
15
- return (0, deindent_1.default) `
16
- ${queryTransform}
17
- ${minimumFields}
18
- `;
19
- }
20
- exports.generate = generate;
21
- //# sourceMappingURL=query-transformer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-transformer.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/interface/query-transformer.ts"],"names":[],"mappings":";;;;;;AACA,uEAA+C;AAI/C,iEAGmC;AAEnC,SAAgB,QAAQ,CACpB,UAA2B,EAC3B,QAAgB,EAChB,GAAgC,EAChC,aAA4B,EAC5B,SAAiC;;IAEjC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;IAC9B,MAAM,WAAW,GAAG,CAAA,MAAA,MAAM,CAAC,YAAY,EAAE,0CAAE,IAAI,MAAK,QAAQ,CAAC;IAE7D,MAAM,cAAc,GAAG,IAAA,qDAAiC,EACpD,UAAU,EACV,GAAG,EACH,aAAa,EACb,QAAQ,CACX,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,4CAAwB,EAAC,WAAW,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IAE7E,OAAO,IAAA,kBAAQ,EAAA;UACT,cAAc;UACd,aAAa;KAClB,CAAC;AACN,CAAC;AAtBD,4BAsBC"}
@@ -1,8 +0,0 @@
1
- import type { GraphQLSchema, InterfaceTypeDefinitionNode, ObjectTypeDefinitionNode } 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 generateQueryTransformerForFields(graphqlDsl: LuvioGraphQLDSL, def: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode, importContext: ImportContext, typeName: string): string;
6
- export declare function generateQueryTransformerForQueryReturnTypes(schema: GraphQLSchema, importContext: ImportContext): string;
7
- export declare function generateGetMinimumFields(isQueryType: boolean, def: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode, graphqlDsl: LuvioGraphQLDSL): string;
8
- export declare function generate(graphqlDsl: LuvioGraphQLDSL, typeName: string, def: ObjectTypeDefinitionNode, importContext: ImportContext, _metadata: GraphQLCodegenMetadata): string;
@@ -1,193 +0,0 @@
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.generate = exports.generateGetMinimumFields = exports.generateQueryTransformerForQueryReturnTypes = exports.generateQueryTransformerForFields = void 0;
7
- const deindent_1 = __importDefault(require("../../../utils/deindent"));
8
- const constants_1 = require("../../shared/constants");
9
- const utils_1 = require("../utils");
10
- const interface_1 = require("./interface");
11
- const constants_2 = require("./constants");
12
- const FIELD_TYPENAME_IDENTIFIER = 'fieldTypeName';
13
- const minFieldsForCursorConnections = {
14
- [constants_2.EDGES_IDENTIFIER]: [constants_2.NODE_IDENTIFIER, constants_2.CURSOR_IDENTIFIER],
15
- [constants_2.PAGE_INFO_IDENTIFIER]: [
16
- constants_2.HAS_NEXT_PAGE_IDENTIFIER,
17
- constants_2.END_CURSOR_IDENTIFIER,
18
- constants_2.START_CURSOR_IDENTIFIER,
19
- ],
20
- };
21
- function generateQueryTransformerForFields(graphqlDsl, def, importContext, typeName) {
22
- const { schema, cursorConnectionTypes } = graphqlDsl;
23
- const type = schema.getType(typeName);
24
- const fieldMap = type.getFields();
25
- const fieldList = Object.keys(fieldMap);
26
- const isCursorConnectionType = cursorConnectionTypes.includes(def.name.value);
27
- const queryTransformerStatements = fieldList
28
- .map((fieldName) => {
29
- var _a;
30
- const field = fieldMap[fieldName];
31
- if (field !== undefined &&
32
- field !== null &&
33
- field.astNode !== undefined &&
34
- field.astNode !== null) {
35
- const fieldTypeName = (0, utils_1.resolveTypeName)((_a = field.astNode) === null || _a === void 0 ? void 0 : _a.type);
36
- const schemaType = schema.getType(fieldTypeName);
37
- if (schemaType === undefined ||
38
- schemaType === null ||
39
- schemaType.astNode === undefined ||
40
- schemaType.astNode === null) {
41
- return '';
42
- }
43
- // Interface or Object Type
44
- if (schemaType.astNode.kind === 'InterfaceTypeDefinition' ||
45
- schemaType.astNode.kind === 'ObjectTypeDefinition') {
46
- const getQueryTransformHelperImport = importContext.importGraphQLArtifact('types', fieldTypeName, constants_2.GET_QUERY_TRANSFORM_HELPER_FOR_FIELD_IDENTIFIER);
47
- const getMinimumSelectionsImport = importContext.importGraphQLArtifact('types', fieldTypeName, constants_2.GET_MINIMUM_SELECTIONS_IDENTIFIER);
48
- // the pageInfo and edges fields of Cursor Connection types can have additional
49
- // minimum fields required for pagination.
50
- const connectionFields = isCursorConnectionType
51
- ? minFieldsForCursorConnections[fieldName]
52
- : undefined;
53
- const getMinimumSelectionsFunction = connectionFields !== undefined
54
- ? `function(): ${constants_1.LUVIO_GRAPHQL_SELECTION_NODE_IMPORT}[] {
55
- const minSelections: ${constants_1.LUVIO_GRAPHQL_SELECTION_NODE_IMPORT}[] = ${getMinimumSelectionsImport}();
56
- ['${connectionFields.join("','")}'].forEach(connectionField => {
57
- minSelections.push({
58
- kind: 'Field',
59
- name: {
60
- kind: 'Name',
61
- value: connectionField,
62
- }
63
- })
64
- })
65
- return minSelections;
66
- }`
67
- : getMinimumSelectionsImport;
68
- return (0, deindent_1.default) `
69
- if (${FIELD_TYPENAME_IDENTIFIER} === '${fieldTypeName}') {
70
- return {
71
- ${constants_2.GET_QUERY_TRANSFORM_HELPER_FOR_FIELD_IDENTIFIER}: ${getQueryTransformHelperImport},
72
- ${constants_2.GET_MINIMUM_SELECTIONS_IDENTIFIER}: ${getMinimumSelectionsFunction}
73
- };
74
- }
75
- `;
76
- }
77
- // Union Type
78
- if (schemaType.astNode.kind === 'UnionTypeDefinition') {
79
- return (0, deindent_1.default) `
80
- if (${FIELD_TYPENAME_IDENTIFIER} === '${fieldTypeName}') {
81
- return {
82
- ${constants_2.GET_QUERY_TRANSFORM_HELPER_FOR_FIELD_IDENTIFIER}: (field: ${constants_1.LUVIO_GRAPHQL_FIELD_NODE_IMPORT}) => { return undefined },
83
- ${constants_2.GET_MINIMUM_SELECTIONS_IDENTIFIER}: () => { return [] }
84
- };
85
- }
86
- `;
87
- }
88
- }
89
- return '';
90
- })
91
- .filter((statement) => statement !== '');
92
- // default return when field does not have a schema defined type
93
- queryTransformerStatements.push('return undefined;');
94
- const eachFieldHandling = queryTransformerStatements.join('\n');
95
- const queryTransformerFunctionsImport = importContext.importGraphQLArtifact('types', constants_2.TYPE_UTIL_IDENTIFIER, constants_2.QUERY_TRANSFORM_HELPER_IDENTIFIER);
96
- const getFieldTypeImport = importContext.importGraphQLArtifact('types', typeName, constants_2.GET_FIELD_TYPE_IDENTIFIER);
97
- return (0, deindent_1.default) `
98
- export function ${constants_2.GET_QUERY_TRANSFORM_HELPER_FOR_FIELD_IDENTIFIER}(field: ${constants_1.LUVIO_GRAPHQL_FIELD_NODE_IMPORT}): ${queryTransformerFunctionsImport} | undefined {
99
- const fieldType = ${getFieldTypeImport}(field);
100
- if(fieldType === undefined) return undefined;
101
- const ${FIELD_TYPENAME_IDENTIFIER} = fieldType.typename;
102
- ${eachFieldHandling}
103
- }
104
- `;
105
- }
106
- exports.generateQueryTransformerForFields = generateQueryTransformerForFields;
107
- function generateQueryTransformerForQueryReturnTypes(schema, importContext) {
108
- const queryType = schema.getQueryType();
109
- if (queryType === null || queryType === undefined) {
110
- return '';
111
- }
112
- // Get the list of potential query return types
113
- let queryReturnTypes = Object.values(queryType.getFields()).reduce((acc, queryField) => {
114
- const queryReturnTypeName = queryField.type.name;
115
- return [queryReturnTypeName, ...acc];
116
- }, []);
117
- queryReturnTypes = [...new Set(queryReturnTypes)];
118
- const queryTransformerStatements = queryReturnTypes
119
- .map((typeName) => {
120
- const schemaType = schema.getType(typeName);
121
- if (schemaType !== undefined &&
122
- schemaType !== null &&
123
- schemaType.astNode !== undefined &&
124
- schemaType.astNode !== null &&
125
- (schemaType.astNode.kind === 'InterfaceTypeDefinition' ||
126
- schemaType.astNode.kind === 'ObjectTypeDefinition')) {
127
- const getQueryTransformerImport = importContext.importGraphQLArtifact('types', typeName, constants_2.GET_QUERY_TRANSFORM_HELPER_FOR_FIELD_IDENTIFIER);
128
- const getMinimumSelectionsImport = importContext.importGraphQLArtifact('types', typeName, constants_2.GET_MINIMUM_SELECTIONS_IDENTIFIER);
129
- return (0, deindent_1.default) `
130
- if (typeName === '${typeName}') {
131
- return {
132
- ${constants_2.GET_QUERY_TRANSFORM_HELPER_FOR_FIELD_IDENTIFIER}: ${getQueryTransformerImport},
133
- ${constants_2.GET_MINIMUM_SELECTIONS_IDENTIFIER}: ${getMinimumSelectionsImport}
134
- };
135
- }
136
- `;
137
- }
138
- return '';
139
- })
140
- .filter((statement) => statement !== '');
141
- // default return when type is not defined in the schema
142
- queryTransformerStatements.push('return undefined;');
143
- const eachTypeHandling = queryTransformerStatements.join('\n');
144
- const queryTransformerFunctionsImport = importContext.importGraphQLArtifact('types', constants_2.TYPE_UTIL_IDENTIFIER, constants_2.QUERY_TRANSFORM_HELPER_IDENTIFIER);
145
- return (0, deindent_1.default) `
146
- export function ${constants_2.GET_QUERY_TRANSFORM_HELPER_FOR_TYPE_IDENTIFIER}(typeName: string): ${queryTransformerFunctionsImport} | undefined {
147
- ${eachTypeHandling}
148
- }
149
- `;
150
- }
151
- exports.generateQueryTransformerForQueryReturnTypes = generateQueryTransformerForQueryReturnTypes;
152
- function generateGetMinimumFields(isQueryType, def, graphqlDsl) {
153
- const minFieldStatements = isQueryType
154
- ? ''
155
- : (0, interface_1.getMinimumFields)(def, graphqlDsl)
156
- .map((field) => {
157
- return (0, deindent_1.default) `
158
- minimumSelections.push({
159
- kind: 'Field',
160
- name: {
161
- kind: 'Name',
162
- value: '${field}',
163
- }
164
- });
165
- `;
166
- })
167
- .join('\n');
168
- return (0, deindent_1.default) `
169
- export function ${constants_2.GET_MINIMUM_SELECTIONS_IDENTIFIER}(): ${constants_1.LUVIO_GRAPHQL_SELECTION_NODE_IMPORT}[] {
170
- const minimumSelections: ${constants_1.LUVIO_GRAPHQL_SELECTION_NODE_IMPORT}[] = [];
171
- ${minFieldStatements}
172
- return minimumSelections;
173
- }
174
- `;
175
- }
176
- exports.generateGetMinimumFields = generateGetMinimumFields;
177
- function generate(graphqlDsl, typeName, def, importContext, _metadata) {
178
- var _a;
179
- const { schema } = graphqlDsl;
180
- const isQueryType = ((_a = schema.getQueryType()) === null || _a === void 0 ? void 0 : _a.name) === typeName;
181
- const queryTransformerForFields = generateQueryTransformerForFields(graphqlDsl, def, importContext, typeName);
182
- const queryTransformerForAllTypes = isQueryType
183
- ? generateQueryTransformerForQueryReturnTypes(schema, importContext)
184
- : '';
185
- const minimumFields = generateGetMinimumFields(isQueryType, def, graphqlDsl);
186
- return (0, deindent_1.default) `
187
- ${queryTransformerForFields}
188
- ${queryTransformerForAllTypes}
189
- ${minimumFields}
190
- `;
191
- }
192
- exports.generate = generate;
193
- //# sourceMappingURL=query-transformer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-transformer.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/query-transformer.ts"],"names":[],"mappings":"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"}