@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.
- package/dist/codegen/graphql/interface/index.d.ts +1 -1
- package/dist/codegen/graphql/interface/index.js +10 -8
- package/dist/codegen/graphql/interface/index.js.map +1 -1
- package/dist/codegen/graphql/type/constants.d.ts +5 -3
- package/dist/codegen/graphql/type/constants.js +7 -5
- package/dist/codegen/graphql/type/constants.js.map +1 -1
- package/dist/codegen/graphql/type/fragment-type.d.ts +4 -0
- package/dist/codegen/graphql/type/fragment-type.js +20 -0
- package/dist/codegen/graphql/type/fragment-type.js.map +1 -0
- package/dist/codegen/graphql/type/generateTypeUtil.js +98 -46
- package/dist/codegen/graphql/type/generateTypeUtil.js.map +1 -1
- package/dist/codegen/graphql/type/index.js +4 -2
- package/dist/codegen/graphql/type/index.js.map +1 -1
- package/dist/codegen/graphql/type/interface.d.ts +2 -2
- package/dist/codegen/graphql/type/interface.js +3 -8
- package/dist/codegen/graphql/type/interface.js.map +1 -1
- package/dist/codegen/graphql/type/key.d.ts +2 -2
- package/dist/codegen/graphql/type/key.js +1 -1
- package/dist/codegen/graphql/type/key.js.map +1 -1
- package/dist/codegen/graphql/type/minimumFields.d.ts +6 -0
- package/dist/codegen/graphql/type/minimumFields.js +68 -0
- package/dist/codegen/graphql/type/minimumFields.js.map +1 -0
- package/dist/codegen/graphql/type/type-from-field.d.ts +2 -2
- package/dist/codegen/graphql/type/type-from-field.js.map +1 -1
- package/dist/codegen/graphql/union/index.d.ts +1 -1
- package/dist/codegen/graphql/union/index.js +12 -6
- package/dist/codegen/graphql/union/index.js.map +1 -1
- package/dist/codegen/graphql/utils/types.d.ts +3 -3
- package/dist/codegen/graphql/utils/types.js +3 -0
- package/dist/codegen/graphql/utils/types.js.map +1 -1
- package/dist/codegen/shape/graphql/shape-cache-keys.js +2 -6
- package/dist/codegen/shape/graphql/shape-cache-keys.js.map +1 -1
- package/dist/codegen/shape/graphql/shape-ingest.js +2 -6
- package/dist/codegen/shape/graphql/shape-ingest.js.map +1 -1
- package/dist/codegen/shared/constants.d.ts +1 -0
- package/dist/codegen/shared/constants.js +2 -1
- package/dist/codegen/shared/constants.js.map +1 -1
- package/package.json +4 -4
- package/dist/codegen/graphql/interface/query-transformer.d.ts +0 -5
- package/dist/codegen/graphql/interface/query-transformer.js +0 -21
- package/dist/codegen/graphql/interface/query-transformer.js.map +0 -1
- package/dist/codegen/graphql/type/query-transformer.d.ts +0 -8
- package/dist/codegen/graphql/type/query-transformer.js +0 -193
- 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,
|
|
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
|
-
|
|
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 = '${
|
|
19
|
-
${(0, interface_1.generateInterface)(
|
|
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,
|
|
22
|
-
${(0, select_1.generateSelect)(graphqlDsl,
|
|
23
|
-
${(0,
|
|
24
|
-
${(0, type_cache_keys_1.generateGetTypeCacheKeys)(graphqlDsl,
|
|
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,
|
|
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
|
|
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.
|
|
4
|
-
exports.
|
|
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.
|
|
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
|
|
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
|
|
49
|
-
(field: ${constants_2.LUVIO_GRAPHQL_FIELD_NODE_IMPORT}): ${constants_3.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
148
|
-
selectedFields.forEach(selection => {
|
|
147
|
+
mergedSelections.forEach(selection => {
|
|
149
148
|
if (selection.kind === 'Field') {
|
|
150
|
-
const
|
|
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
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
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:
|
|
175
|
+
selections: mergedSelections.length > 0 ? mergedSelections : undefined
|
|
183
176
|
});
|
|
184
177
|
}
|
|
185
178
|
|
|
186
|
-
function ${constants_3.
|
|
187
|
-
|
|
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
|
|
184
|
+
const existingNode = mergedSelections.find(selection => {
|
|
190
185
|
return selection.kind === 'Field' && (selection.name.value === minimumSelection.name.value);
|
|
191
186
|
});
|
|
192
|
-
|
|
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
|
-
|
|
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":";;;;;;AAAA,uEAA+C;AAC/C,oDAAwD;AAExD,
|
|
1
|
+
{"version":3,"file":"generateTypeUtil.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/generateTypeUtil.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
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,
|
|
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,
|
|
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
|
|
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.
|
|
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
|
|
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.
|
|
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":";;;;;;
|
|
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 (
|
|
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":";;;;;;
|
|
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":";;;
|
|
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,
|
|
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
|
-
|
|
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 = '${
|
|
17
|
-
${(0, interface_1.generateInterface)(
|
|
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,
|
|
20
|
-
${(0, select_1.generateSelect)(graphqlDsl,
|
|
21
|
-
${(0, type_cache_keys_1.generateGetTypeCacheKeys)(graphqlDsl,
|
|
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;
|
|
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":";;;
|
|
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,
|
|
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,
|
|
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.
|
|
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.
|
|
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.
|
|
30
|
-
"@luvio/engine": "0.121.
|
|
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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"}
|