@luvio/compiler 0.113.0 → 0.115.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/codegen/graphql/interface/index.d.ts +2 -1
- package/dist/codegen/graphql/interface/index.js +2 -2
- package/dist/codegen/graphql/interface/index.js.map +1 -1
- package/dist/codegen/graphql/interface/select.d.ts +2 -1
- package/dist/codegen/graphql/interface/select.js +7 -5
- package/dist/codegen/graphql/interface/select.js.map +1 -1
- package/dist/codegen/graphql/interface/type-cache-keys.js +4 -4
- package/dist/codegen/graphql/interface/type-cache-keys.js.map +1 -1
- package/dist/codegen/graphql/source-printer/graphql-type-source-printer.js +1 -1
- package/dist/codegen/graphql/source-printer/graphql-type-source-printer.js.map +1 -1
- package/dist/codegen/graphql/type/attach-mapped.d.ts +4 -0
- package/dist/codegen/graphql/type/attach-mapped.js +49 -0
- package/dist/codegen/graphql/type/attach-mapped.js.map +1 -0
- package/dist/codegen/graphql/type/constants.d.ts +10 -0
- package/dist/codegen/graphql/type/constants.js +12 -1
- package/dist/codegen/graphql/type/constants.js.map +1 -1
- package/dist/codegen/graphql/type/convert.d.ts +1 -2
- package/dist/codegen/graphql/type/convert.js +5 -3
- package/dist/codegen/graphql/type/convert.js.map +1 -1
- package/dist/codegen/graphql/type/generateTypeUtil.js +5 -1
- package/dist/codegen/graphql/type/generateTypeUtil.js.map +1 -1
- package/dist/codegen/graphql/type/index.d.ts +1 -1
- package/dist/codegen/graphql/type/index.js +10 -2
- package/dist/codegen/graphql/type/index.js.map +1 -1
- package/dist/codegen/graphql/type/ingest-mapped.d.ts +4 -0
- package/dist/codegen/graphql/type/ingest-mapped.js +36 -0
- package/dist/codegen/graphql/type/ingest-mapped.js.map +1 -0
- package/dist/codegen/graphql/type/ingest.js +13 -27
- package/dist/codegen/graphql/type/ingest.js.map +1 -1
- package/dist/codegen/graphql/type/mapped-type-cache-keys.d.ts +4 -0
- package/dist/codegen/graphql/type/mapped-type-cache-keys.js +36 -0
- package/dist/codegen/graphql/type/mapped-type-cache-keys.js.map +1 -0
- package/dist/codegen/graphql/type/select.d.ts +2 -1
- package/dist/codegen/graphql/type/select.js +54 -48
- package/dist/codegen/graphql/type/select.js.map +1 -1
- package/dist/codegen/graphql/type/type-cache-keys.d.ts +2 -1
- package/dist/codegen/graphql/type/type-cache-keys.js +40 -27
- package/dist/codegen/graphql/type/type-cache-keys.js.map +1 -1
- package/dist/codegen/graphql/type/utils.d.ts +6 -1
- package/dist/codegen/graphql/type/utils.js +24 -1
- package/dist/codegen/graphql/type/utils.js.map +1 -1
- package/dist/codegen/graphql/union/select.js +5 -4
- package/dist/codegen/graphql/union/select.js.map +1 -1
- package/dist/codegen/graphql/union/type-cache-keys.js +4 -4
- package/dist/codegen/graphql/union/type-cache-keys.js.map +1 -1
- package/dist/codegen/pagination-utils/cursor-based.js +2 -0
- package/dist/codegen/pagination-utils/cursor-based.js.map +1 -1
- package/dist/codegen/shape/graphql/shape-cache-keys.js +2 -1
- package/dist/codegen/shape/graphql/shape-cache-keys.js.map +1 -1
- package/dist/codegen/shape/graphql/shape-select.js +2 -3
- package/dist/codegen/shape/graphql/shape-select.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/ingest.ts"],"names":[],"mappings":";;;;;;AACA,uEAA+C;AAE/C,sDAMgC;AAChC,
|
|
1
|
+
{"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/ingest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { LuvioGraphQLDSL } from '../../../intermediate/graphql';
|
|
2
|
+
import type { ModelInfo } from '../../../main';
|
|
3
|
+
import type { ImportContext } from '../../../utils/imports';
|
|
4
|
+
export declare function generateGetRamlMappingCacheKeys(graphqlDsl: LuvioGraphQLDSL, graphqlTypeName: string, importContext: ImportContext, modelInfo: ModelInfo): string;
|
|
@@ -0,0 +1,36 @@
|
|
|
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.generateGetRamlMappingCacheKeys = void 0;
|
|
7
|
+
const deindent_1 = __importDefault(require("../../../utils/deindent"));
|
|
8
|
+
const constants_1 = require("../../shared/constants");
|
|
9
|
+
const constants_2 = require("./constants");
|
|
10
|
+
const interface_1 = require("./interface");
|
|
11
|
+
const utils_1 = require("./utils");
|
|
12
|
+
function generateGetRamlMappingCacheKeys(graphqlDsl, graphqlTypeName, importContext, modelInfo) {
|
|
13
|
+
var _a;
|
|
14
|
+
const astNodeParamType = ((_a = graphqlDsl.schema.getQueryType()) === null || _a === void 0 ? void 0 : _a.name) === graphqlTypeName
|
|
15
|
+
? constants_1.LUVIO_GRAPHQL_OPERATION_DEFINITION_NODE_IMPORT
|
|
16
|
+
: constants_1.LUVIO_GRAPHQL_FIELD_NODE_IMPORT;
|
|
17
|
+
const mappedRamlTypeIdAndName = (0, utils_1.getMappedRamlTypeIdAndName)(graphqlDsl, graphqlTypeName, modelInfo);
|
|
18
|
+
if (mappedRamlTypeIdAndName === undefined) {
|
|
19
|
+
return '';
|
|
20
|
+
}
|
|
21
|
+
const convertGraphQLToRamlImport = importContext.importGraphQLArtifact('types', graphqlTypeName, constants_2.TYPE_CONVERT_IDENTIFIER);
|
|
22
|
+
const partialInterfaceImport = importContext.importGraphQLArtifact('types', graphqlTypeName, interface_1.PARTIAL_INTERFACE_IDENTIFIER);
|
|
23
|
+
const graphqlStateInterface = importContext.importGraphQLArtifact('types', constants_2.TYPE_UTIL_IDENTIFIER, constants_2.GRAPHQL_LUVIO_STATE_INTERFACE_IDENTIFIER);
|
|
24
|
+
const ramlTypeCacheKeysImport = importContext.importRamlArtifact(mappedRamlTypeIdAndName.id, constants_2.TYPE_CACHE_KEYS_IDENTIFIER);
|
|
25
|
+
return (0, deindent_1.default) `
|
|
26
|
+
export function ${constants_2.MAPPED_TYPE_CACHE_KEYS_IDENTIFIER}(astNode: ${astNodeParamType}, state: ${graphqlStateInterface}<${partialInterfaceImport}>): ${constants_1.ADAPTER_CACHE_KEY_SET_TYPE_IDENTIFIER} {
|
|
27
|
+
const convertedData = ${convertGraphQLToRamlImport}(astNode, state);
|
|
28
|
+
if(convertedData) {
|
|
29
|
+
return ${ramlTypeCacheKeysImport}(state.luvio, convertedData as any, () => state.path.fullPath);
|
|
30
|
+
}
|
|
31
|
+
return {};
|
|
32
|
+
}
|
|
33
|
+
`;
|
|
34
|
+
}
|
|
35
|
+
exports.generateGetRamlMappingCacheKeys = generateGetRamlMappingCacheKeys;
|
|
36
|
+
//# sourceMappingURL=mapped-type-cache-keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapped-type-cache-keys.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/mapped-type-cache-keys.ts"],"names":[],"mappings":";;;;;;AAEA,uEAA+C;AAE/C,sDAIgC;AAChC,2CAMqB;AACrB,2CAA2D;AAC3D,mCAAqD;AAErD,SAAgB,+BAA+B,CAC3C,UAA2B,EAC3B,eAAuB,EACvB,aAA4B,EAC5B,SAAoB;;IAEpB,MAAM,gBAAgB,GAClB,CAAA,MAAA,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,0CAAE,IAAI,MAAK,eAAe;QACtD,CAAC,CAAC,0DAA8C;QAChD,CAAC,CAAC,2CAA+B,CAAC;IAE1C,MAAM,uBAAuB,GAAG,IAAA,kCAA0B,EACtD,UAAU,EACV,eAAe,EACf,SAAS,CACZ,CAAC;IAEF,IAAI,uBAAuB,KAAK,SAAS,EAAE;QACvC,OAAO,EAAE,CAAC;KACb;IACD,MAAM,0BAA0B,GAAG,aAAa,CAAC,qBAAqB,CAClE,OAAO,EACP,eAAe,EACf,mCAAuB,CAC1B,CAAC;IACF,MAAM,sBAAsB,GAAG,aAAa,CAAC,qBAAqB,CAC9D,OAAO,EACP,eAAe,EACf,wCAA4B,CAC/B,CAAC;IACF,MAAM,qBAAqB,GAAG,aAAa,CAAC,qBAAqB,CAC7D,OAAO,EACP,gCAAoB,EACpB,oDAAwC,CAC3C,CAAC;IACF,MAAM,uBAAuB,GAAG,aAAa,CAAC,kBAAkB,CAC5D,uBAAuB,CAAC,EAAE,EAC1B,sCAA0B,CAC7B,CAAC;IACF,OAAO,IAAA,kBAAQ,EAAA;0BACO,6CAAiC,aAAa,gBAAgB,YAAY,qBAAqB,IAAI,sBAAsB,OAAO,iDAAqC;oCAC3J,0BAA0B;;yBAErC,uBAAuB;;;;KAI3C,CAAC;AACN,CAAC;AAhDD,0EAgDC"}
|
|
@@ -2,4 +2,5 @@ import type { ObjectTypeDefinitionNode } from '@luvio/graphql-parser';
|
|
|
2
2
|
import type { ImportContext } from '../../../utils/imports';
|
|
3
3
|
import type { LuvioGraphQLDSL } from '../../../intermediate/graphql';
|
|
4
4
|
import type { GraphQLCodegenMetadata } from '../source-printer';
|
|
5
|
-
|
|
5
|
+
import type { ModelInfo } from '../../../intermediate/model-info';
|
|
6
|
+
export declare function generateSelect(graphqlDsl: LuvioGraphQLDSL, graphqlTypeName: string, def: ObjectTypeDefinitionNode, importContext: ImportContext, _metadata: GraphQLCodegenMetadata, modelInfo: ModelInfo): string;
|
|
@@ -18,7 +18,7 @@ const constants_4 = require("../../pagination-utils/constants");
|
|
|
18
18
|
const pagination_1 = require("../../../intermediate/pagination");
|
|
19
19
|
const constants_5 = require("../../pagination-utils/constants");
|
|
20
20
|
const constants_6 = require("../../shape/constants");
|
|
21
|
-
function selectNamedType(field, typeNode, importContext, normalizableTypeMap, cursorConnectionTypes) {
|
|
21
|
+
function selectNamedType(field, typeNode, graphqlDsl, modelInfo, importContext, normalizableTypeMap, cursorConnectionTypes) {
|
|
22
22
|
const fieldName = field.name.value;
|
|
23
23
|
const identifier = fieldName;
|
|
24
24
|
const resolvedLinkIdentifier = `${identifier}ResolvedLink`;
|
|
@@ -30,7 +30,8 @@ function selectNamedType(field, typeNode, importContext, normalizableTypeMap, cu
|
|
|
30
30
|
return generateSelectScalar();
|
|
31
31
|
}
|
|
32
32
|
const namedTypeSelect = importContext.importGraphQLArtifact('types', typeNode.name.value, 'select');
|
|
33
|
-
const namedTypePartialInterface = importContext.importGraphQLArtifact('types', typeNode.name.value,
|
|
33
|
+
const namedTypePartialInterface = importContext.importGraphQLArtifact('types', typeNode.name.value, interface_1.PARTIAL_INTERFACE_IDENTIFIER);
|
|
34
|
+
const normalizedGraphQLTypeImport = (0, utils_1.getNormalizedDataType)(graphqlDsl, typeNode.name.value, importContext, modelInfo);
|
|
34
35
|
const namedTypeVersion = importContext.importGraphQLArtifact('types', typeNode.name.value, version_1.SHAPE_VERSION_IDENTIFIER);
|
|
35
36
|
return (0, deindent_1.default) `
|
|
36
37
|
const ${resolvedLinkIdentifier} = reader.read({
|
|
@@ -46,21 +47,21 @@ function selectNamedType(field, typeNode, importContext, normalizableTypeMap, cu
|
|
|
46
47
|
reader.markSeenId(${constants_3.FIELD_DATA_IDENTIFIER}.__ref);
|
|
47
48
|
if (${resolvedLinkIdentifier}.data !== undefined) {
|
|
48
49
|
${isCursorConnectionType
|
|
49
|
-
? resolveLinkWithPagination(resolvedLinkIdentifier, namedTypePartialInterface, namedTypeSelect, importContext)
|
|
50
|
-
: resolveLink(resolvedLinkIdentifier,
|
|
50
|
+
? resolveLinkWithPagination(resolvedLinkIdentifier, namedTypePartialInterface, normalizedGraphQLTypeImport, namedTypeSelect, importContext)
|
|
51
|
+
: resolveLink(resolvedLinkIdentifier, normalizedGraphQLTypeImport, namedTypeSelect)}
|
|
51
52
|
} else {
|
|
52
53
|
reader.markMissingLink(${constants_3.FIELD_DATA_IDENTIFIER}.__ref)
|
|
53
54
|
reader.markMissing();
|
|
54
55
|
}
|
|
55
56
|
`;
|
|
56
57
|
}
|
|
57
|
-
function resolveLink(resolvedLinkIdentifier,
|
|
58
|
+
function resolveLink(resolvedLinkIdentifier, normalizedGraphQLType, namedTypeSelect) {
|
|
58
59
|
return (0, deindent_1.default) `
|
|
59
|
-
const result = ${namedTypeSelect}(sel, variables, fragments)(${resolvedLinkIdentifier}.data as ${
|
|
60
|
+
const result = ${namedTypeSelect}(sel, variables, fragments)(${resolvedLinkIdentifier}.data as ${normalizedGraphQLType}, reader); // Should probably
|
|
60
61
|
reader.assignNonScalar(${constants_3.SINK_IDENTIFIER}, key, result);
|
|
61
62
|
`;
|
|
62
63
|
}
|
|
63
|
-
function resolveLinkWithPagination(resolvedLinkIdentifier, namedTypePartialInterface, namedTypeSelect, importContext) {
|
|
64
|
+
function resolveLinkWithPagination(resolvedLinkIdentifier, namedTypePartialInterface, normalizedGraphQLType, namedTypeSelect, importContext) {
|
|
64
65
|
const paginationMetadataType = importContext.importPaginationUtil(pagination_1.Strategy.Cursor, constants_4.PAGINATION_METADATA_TYPE_IDENTIFIER);
|
|
65
66
|
const paginationParamsType = importContext.importPaginationUtil(pagination_1.Strategy.Cursor, constants_4.PAGINATION_PARAMS_INTERFACE_IDENTIFIER);
|
|
66
67
|
const findMaxOffset = importContext.importPaginationUtil(pagination_1.Strategy.Cursor, constants_4.FIND_MAX_OFFSET_IDENTIFIER);
|
|
@@ -70,19 +71,20 @@ function resolveLinkWithPagination(resolvedLinkIdentifier, namedTypePartialInter
|
|
|
70
71
|
const getPageMetadata = importContext.importGraphQLArtifact('types', constants_3.TYPE_UTIL_IDENTIFIER, constants_6.GET_PAGE_METADATA);
|
|
71
72
|
const objectFreeze = importContext.importTypeUtil('ObjectFreeze');
|
|
72
73
|
return (0, deindent_1.default) `
|
|
74
|
+
const source = (${resolvedLinkIdentifier}.data as ${normalizedGraphQLType}).data;
|
|
75
|
+
const totalEdges = source.${constants_3.EDGES_IDENTIFIER} !== undefined ? source.${constants_3.EDGES_IDENTIFIER}.length : 0;
|
|
76
|
+
const metadata: ${paginationMetadataType} | undefined = reader.resolveMetadata(source, ${paginationVersion}) as ${paginationMetadataType};
|
|
77
|
+
|
|
73
78
|
const firstArg = sel.arguments?.find(argument => { return argument.name.value === 'first'});
|
|
74
|
-
const
|
|
79
|
+
const pageSize = firstArg?.value.kind === 'IntValue' ? firstArg.value.value : totalEdges;
|
|
75
80
|
|
|
76
81
|
const afterArg = sel.arguments?.find(argument => { return argument.name.value === 'after'});
|
|
77
82
|
const afterArgVal = afterArg?.value.kind === 'StringValue' ? afterArg?.value.value : undefined;
|
|
78
83
|
|
|
79
84
|
const paginationParams:${paginationParamsType} = {
|
|
80
|
-
pageSize: parseInt(
|
|
85
|
+
pageSize: parseInt(pageSize, 10),
|
|
81
86
|
token: afterArgVal
|
|
82
87
|
};
|
|
83
|
-
|
|
84
|
-
const source = (${resolvedLinkIdentifier}.data as ${namedTypePartialInterface}).data;
|
|
85
|
-
const metadata: ${paginationMetadataType} | undefined = reader.resolveMetadata(source, ${paginationVersion}) as ${paginationMetadataType};
|
|
86
88
|
let { startOffset, endOffset } = ${getPageMetadata}(metadata, paginationParams);
|
|
87
89
|
|
|
88
90
|
if (metadata === undefined || startOffset === undefined || endOffset === undefined) {
|
|
@@ -92,16 +94,19 @@ function resolveLinkWithPagination(resolvedLinkIdentifier, namedTypePartialInter
|
|
|
92
94
|
}
|
|
93
95
|
|
|
94
96
|
// gql paging semantics is "after" the requested cursor, so shift the offsets
|
|
95
|
-
if (
|
|
96
|
-
startOffset++;
|
|
97
|
+
if (afterArg !== undefined) {
|
|
98
|
+
startOffset++;
|
|
99
|
+
// if the "first" argument was not provided then the endOffset
|
|
100
|
+
// is already set to the index of the last edge.
|
|
101
|
+
if (firstArg !== undefined) {
|
|
102
|
+
endOffset++;
|
|
103
|
+
}
|
|
97
104
|
}
|
|
98
105
|
|
|
99
106
|
const trimmedEdges = ${trimEdges}(source.${constants_3.EDGES_IDENTIFIER}, startOffset, endOffset);
|
|
100
107
|
const listIsIncomplete = (metadata?.${constants_5.LIST_END_IDENTIFIER} === undefined);
|
|
101
108
|
const maxOffset = listIsIncomplete ? ${findMaxOffset}(metadata) : Object.keys(metadata||{}).length - 2;
|
|
102
|
-
const listHasEnoughItems =
|
|
103
|
-
(!listIsIncomplete) :
|
|
104
|
-
(endOffset - 1 <= maxOffset);
|
|
109
|
+
const listHasEnoughItems = (endOffset - 1 <= maxOffset);
|
|
105
110
|
|
|
106
111
|
if (trimmedEdges === undefined || !listHasEnoughItems) {
|
|
107
112
|
reader.markMissingLink(${constants_3.FIELD_DATA_IDENTIFIER}.__ref)
|
|
@@ -109,13 +114,13 @@ function resolveLinkWithPagination(resolvedLinkIdentifier, namedTypePartialInter
|
|
|
109
114
|
return;
|
|
110
115
|
}
|
|
111
116
|
|
|
112
|
-
const paginatedData
|
|
117
|
+
const paginatedData: ${normalizedGraphQLType} = {
|
|
113
118
|
data: {
|
|
114
119
|
...source,
|
|
115
120
|
edges: ${objectFreeze}(trimmedEdges),
|
|
116
121
|
}
|
|
117
122
|
};
|
|
118
|
-
const result
|
|
123
|
+
const result: ${namedTypePartialInterface} | undefined = ${namedTypeSelect}(sel, variables, fragments)(paginatedData as ${normalizedGraphQLType}, reader);
|
|
119
124
|
const pageInfo = ${createPageInfo}(result?.edges, startOffset, endOffset, maxOffset, metadata);
|
|
120
125
|
if (pageInfo !== undefined) {
|
|
121
126
|
const selectedPageInfo = selectPageInfo(sel.selectionSet?.selections, fragments, pageInfo);
|
|
@@ -130,14 +135,14 @@ function resolveLinkWithPagination(resolvedLinkIdentifier, namedTypePartialInter
|
|
|
130
135
|
reader.assignNonScalar(${constants_3.SINK_IDENTIFIER}, key, result);
|
|
131
136
|
`;
|
|
132
137
|
}
|
|
133
|
-
function selectType(field, typeNode, importContext, normalizableTypeMap, cursorConnectionTypes) {
|
|
138
|
+
function selectType(field, typeNode, graphqlDsl, modelInfo, importContext, normalizableTypeMap, cursorConnectionTypes) {
|
|
134
139
|
switch (typeNode.kind) {
|
|
135
140
|
case 'ListType':
|
|
136
141
|
case 'NonNullType': {
|
|
137
|
-
return selectType(field, typeNode.type, importContext, normalizableTypeMap, cursorConnectionTypes);
|
|
142
|
+
return selectType(field, typeNode.type, graphqlDsl, modelInfo, importContext, normalizableTypeMap, cursorConnectionTypes);
|
|
138
143
|
}
|
|
139
144
|
case 'NamedType': {
|
|
140
|
-
return selectNamedType(field, typeNode, importContext, normalizableTypeMap, cursorConnectionTypes);
|
|
145
|
+
return selectNamedType(field, typeNode, graphqlDsl, modelInfo, importContext, normalizableTypeMap, cursorConnectionTypes);
|
|
141
146
|
}
|
|
142
147
|
}
|
|
143
148
|
}
|
|
@@ -156,7 +161,7 @@ function generateGetMappedDataByType(graphqlField, typeNode, ramlFieldName, norm
|
|
|
156
161
|
return (0, deindent_1.default) `
|
|
157
162
|
case "${graphqlFieldName}": {
|
|
158
163
|
const ${constants_3.FIELD_KEY_IDENTIFIER} = "${ramlFieldName}";
|
|
159
|
-
return source.
|
|
164
|
+
return source.${constants_3.LINKED_DATA_IDENTIFIER} ? source.${constants_3.LINKED_DATA_IDENTIFIER}[${constants_3.FIELD_KEY_IDENTIFIER}] : undefined;
|
|
160
165
|
}
|
|
161
166
|
`;
|
|
162
167
|
}
|
|
@@ -180,7 +185,7 @@ function generateDataMapping(graphqlDsl, graphqlTypeName, def, normalizableTypeM
|
|
|
180
185
|
.filter((fieldIngestStatement) => fieldIngestStatement !== '')
|
|
181
186
|
.join('\n');
|
|
182
187
|
}
|
|
183
|
-
function generateSelect(graphqlDsl, graphqlTypeName, def, importContext, _metadata) {
|
|
188
|
+
function generateSelect(graphqlDsl, graphqlTypeName, def, importContext, _metadata, modelInfo) {
|
|
184
189
|
var _a;
|
|
185
190
|
const { schema, cursorConnectionTypes } = graphqlDsl;
|
|
186
191
|
const type = schema.getType(def.name.value);
|
|
@@ -193,7 +198,7 @@ function generateSelect(graphqlDsl, graphqlTypeName, def, importContext, _metada
|
|
|
193
198
|
.map((field) => {
|
|
194
199
|
const type = field.type;
|
|
195
200
|
const typename = (0, types_1.resolveTypeName)(type);
|
|
196
|
-
const body = selectType(field, type, importContext, normalizableTypeMap, cursorConnectionTypes);
|
|
201
|
+
const body = selectType(field, type, graphqlDsl, modelInfo, importContext, normalizableTypeMap, cursorConnectionTypes);
|
|
197
202
|
return (0, deindent_1.default) `
|
|
198
203
|
case '${typename}': {
|
|
199
204
|
${body}
|
|
@@ -211,16 +216,20 @@ function generateSelect(graphqlDsl, graphqlTypeName, def, importContext, _metada
|
|
|
211
216
|
const fieldTypeImport = importContext.importGraphQLArtifact('types', graphqlTypeName, constants_3.GET_FIELD_TYPE_IDENTIFIER);
|
|
212
217
|
const isFragmentApplicableImport = importContext.importGraphQLArtifact('types', graphqlTypeName, constants_3.IS_FRAGMENT_APPLICABLE_IDENTIFIER);
|
|
213
218
|
const isCursorConnectionType = cursorConnectionTypes.includes(graphqlTypeName);
|
|
219
|
+
const getFieldDataImport = importContext.importGraphQLArtifact('types', graphqlTypeName, constants_3.GET_FIELD_DATA_IDENTIFIER);
|
|
220
|
+
const selectTypeImport = importContext.importGraphQLArtifact('types', graphqlTypeName, constants_3.SELECT_TYPE_IDENTIFIER);
|
|
221
|
+
const denormalizeMappedDataString = getDenormalizeMappedDataString(graphqlDsl, graphqlTypeName, importContext, modelInfo);
|
|
222
|
+
const normalizedGraphQLDataType = (0, utils_1.getNormalizedDataType)(graphqlDsl, graphqlTypeName, importContext, modelInfo);
|
|
214
223
|
return (0, deindent_1.default) `
|
|
215
|
-
export function
|
|
216
|
-
source: ${
|
|
224
|
+
export function ${constants_3.GET_FIELD_DATA_IDENTIFIER}(
|
|
225
|
+
source: ${normalizedGraphQLDataType},
|
|
217
226
|
sel: ${constants_2.LUVIO_GRAPHQL_FIELD_NODE_IMPORT} ,
|
|
218
227
|
variables: ${graphqlVariablesImport}
|
|
219
228
|
) {
|
|
220
229
|
switch(sel.name.value){
|
|
221
230
|
${generateDataMapping(graphqlDsl, graphqlTypeName, def, normalizableTypeMap)}
|
|
222
231
|
default: {
|
|
223
|
-
const ${constants_3.FIELD_TYPE_IDENTIFIER} = ${
|
|
232
|
+
const ${constants_3.FIELD_TYPE_IDENTIFIER} = ${fieldTypeImport}(sel);
|
|
224
233
|
const ${constants_3.FIELD_KEY_IDENTIFIER} = ${`${getFieldKeyImport}(sel, variables, ${constants_3.FIELD_TYPE_IDENTIFIER})`};
|
|
225
234
|
return source.data[${constants_3.FIELD_KEY_IDENTIFIER}];
|
|
226
235
|
}
|
|
@@ -236,9 +245,9 @@ function generateSelect(graphqlDsl, graphqlTypeName, def, importContext, _metada
|
|
|
236
245
|
}
|
|
237
246
|
return ${constants_3.SINK_IDENTIFIER};
|
|
238
247
|
}
|
|
239
|
-
export function buildSelectionForField(source: ${
|
|
248
|
+
export function buildSelectionForField(source: ${normalizedGraphQLDataType}, reader: ${constants_1.ADAPTER_READER_IMPORT}<any>, sel: ${constants_2.LUVIO_GRAPHQL_FIELD_NODE_IMPORT} , variables: ${graphqlVariablesImport}, fragments: ${fragmentMapImport}) {
|
|
240
249
|
const ${constants_3.SINK_IDENTIFIER}: Record<string, any> = {}
|
|
241
|
-
const ${constants_3.FIELD_DATA_IDENTIFIER} =
|
|
250
|
+
const ${constants_3.FIELD_DATA_IDENTIFIER} = ${getFieldDataImport}(source, sel, variables);
|
|
242
251
|
const ${constants_3.REQUESTED_FIELD_NAME_IDENTIFIER} = sel.alias ? sel.alias.value : sel.name.value;
|
|
243
252
|
|
|
244
253
|
${isCursorConnectionType
|
|
@@ -263,17 +272,17 @@ function generateSelect(graphqlDsl, graphqlTypeName, def, importContext, _metada
|
|
|
263
272
|
const arraySink: any[] = [];
|
|
264
273
|
for(let i = 0, len = ${constants_3.FIELD_DATA_IDENTIFIER}.length; i < len; i += 1) {
|
|
265
274
|
reader.enterPath(i);
|
|
266
|
-
|
|
275
|
+
${selectTypeImport}(fieldType.typename, sel, ${constants_3.FIELD_DATA_IDENTIFIER}[i], reader, i, arraySink, variables, fragments);
|
|
267
276
|
reader.exitPath();
|
|
268
277
|
}
|
|
269
278
|
reader.assignNonScalar(${constants_3.SINK_IDENTIFIER}, ${constants_3.REQUESTED_FIELD_NAME_IDENTIFIER}, arraySink);
|
|
270
279
|
} else {
|
|
271
|
-
|
|
280
|
+
${selectTypeImport}(fieldType.typename, sel, ${constants_3.FIELD_DATA_IDENTIFIER}, reader, ${constants_3.REQUESTED_FIELD_NAME_IDENTIFIER}, ${constants_3.SINK_IDENTIFIER}, variables, fragments);
|
|
272
281
|
}
|
|
273
282
|
|
|
274
283
|
return ${constants_3.SINK_IDENTIFIER};
|
|
275
284
|
}
|
|
276
|
-
export function buildSelectionForNode(source: ${
|
|
285
|
+
export function buildSelectionForNode(source: ${normalizedGraphQLDataType}, reader: ${constants_1.ADAPTER_READER_IMPORT}<any>, parentNode: ${constants_2.LUVIO_GRAPHQL_FIELD_NODE_IMPORT} | ${constants_2.LUVIO_GRAPHQL_OPERATION_DEFINITION_NODE_IMPORT}, selectionNode: ${constants_2.LUVIO_GRAPHQL_SELECTION_NODE_IMPORT} , variables: ${graphqlVariablesImport}, fragments: ${fragmentMapImport}) {
|
|
277
286
|
const ${constants_3.SINK_IDENTIFIER}: Record<string, any> = {}
|
|
278
287
|
if(selectionNode.directives) {
|
|
279
288
|
const selectionWithDirectives = ${importContext.importGraphQLArtifact('directives', util_1.DIRECTIVE_UTIL_MODULE_IDENTIFIER, util_1.APPLY_DIRECTIVES_FOR_SELECTION_IDENTIFIER)}(selectionNode, variables);
|
|
@@ -306,22 +315,9 @@ function generateSelect(graphqlDsl, graphqlTypeName, def, importContext, _metada
|
|
|
306
315
|
return ${constants_3.SINK_IDENTIFIER};
|
|
307
316
|
}
|
|
308
317
|
export function select(field: ${astNodeParamType}, variables: ${graphqlVariablesImport}, fragments: ${fragmentMapImport}) {
|
|
309
|
-
return (source: ${
|
|
318
|
+
return (source: ${normalizedGraphQLDataType}, reader: ${constants_1.ADAPTER_READER_IMPORT}<any>): ${interface_1.PARTIAL_INTERFACE_IDENTIFIER} | undefined => {
|
|
310
319
|
const ${constants_3.SINK_IDENTIFIER}: Record<string, any> = {};
|
|
311
|
-
|
|
312
|
-
// careful - may need to get the reader fragment from each type in RAML in the future
|
|
313
|
-
if (source.__link !== undefined) {
|
|
314
|
-
source.__linkedData = reader.read({
|
|
315
|
-
recordId: source.__link.__ref,
|
|
316
|
-
node: {
|
|
317
|
-
kind: 'Fragment',
|
|
318
|
-
private: [],
|
|
319
|
-
opaque: true,
|
|
320
|
-
version: ${version_1.SHAPE_VERSION_IDENTIFIER}
|
|
321
|
-
},
|
|
322
|
-
variables: {}
|
|
323
|
-
});
|
|
324
|
-
}
|
|
320
|
+
${denormalizeMappedDataString}
|
|
325
321
|
field.selectionSet?.selections.forEach((sel) => {
|
|
326
322
|
Object.assign(${constants_3.SINK_IDENTIFIER}, buildSelectionForNode(source, reader, field, sel, variables, fragments));
|
|
327
323
|
});
|
|
@@ -376,4 +372,14 @@ function generateSelectScalar() {
|
|
|
376
372
|
reader.assignScalar(key, ${constants_3.SINK_IDENTIFIER}, ${constants_3.FIELD_DATA_IDENTIFIER});
|
|
377
373
|
`;
|
|
378
374
|
}
|
|
375
|
+
function getDenormalizeMappedDataString(graphqlDsl, graphqlTypeName, importContext, modelInfo) {
|
|
376
|
+
const ramlTypeInfo = (0, utils_1.getMappedRamlTypeIdAndName)(graphqlDsl, graphqlTypeName, modelInfo);
|
|
377
|
+
if (ramlTypeInfo !== undefined) {
|
|
378
|
+
const attachMappedDataImport = importContext.importGraphQLArtifact('types', graphqlTypeName, constants_3.ATTACH_MAPPED_DATA_IDENTIFIER);
|
|
379
|
+
return (0, deindent_1.default) `
|
|
380
|
+
source = ${attachMappedDataImport}(source, reader);
|
|
381
|
+
`;
|
|
382
|
+
}
|
|
383
|
+
return '';
|
|
384
|
+
}
|
|
379
385
|
//# sourceMappingURL=select.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/select.ts"],"names":[],"mappings":";;;;;;AAAA,uEAA+C;AAC/C,uDAAgE;AAQhE,sDAKgC;AAGhC,
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/select.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,8 @@ import type { ImportContext } from '../../../utils/imports';
|
|
|
3
3
|
import type { NormalizableTypes } from '../utils';
|
|
4
4
|
import type { LuvioGraphQLDSL } from '../../../intermediate/graphql';
|
|
5
5
|
import type { GraphQLCodegenMetadata } from '../source-printer';
|
|
6
|
+
import type { ModelInfo } from '../../../main';
|
|
6
7
|
export declare function getNamedTypeCacheKeys(field: FieldDefinitionNode, typeNode: NamedTypeNode, importContext: ImportContext, normalizableTypeMap: NormalizableTypes): string;
|
|
7
8
|
export declare function getListTypeCacheKeys(field: FieldDefinitionNode, typeNode: ListTypeNode, importContext: ImportContext, normalizableTypeMap: NormalizableTypes): string;
|
|
8
9
|
export declare function getFieldCacheKeys(field: FieldDefinitionNode, typeNode: TypeNode, importContext: ImportContext, normalizableTypeMap: NormalizableTypes): string;
|
|
9
|
-
export declare function generateGetTypeCacheKeys(graphqlDsl: LuvioGraphQLDSL, graphqlTypeName: string, def: ObjectTypeDefinitionNode, importContext: ImportContext, _metadata: GraphQLCodegenMetadata): string;
|
|
10
|
+
export declare function generateGetTypeCacheKeys(graphqlDsl: LuvioGraphQLDSL, graphqlTypeName: string, def: ObjectTypeDefinitionNode, importContext: ImportContext, _metadata: GraphQLCodegenMetadata, modelInfo: ModelInfo): string;
|
|
@@ -24,7 +24,7 @@ function getNamedTypeCacheKeys(field, typeNode, importContext, normalizableTypeM
|
|
|
24
24
|
const objectAssignImport = importContext.importTypeUtil('ObjectAssign');
|
|
25
25
|
const fieldStateIdentifier = `${fieldName}State`;
|
|
26
26
|
return (0, deindent_1.default) `
|
|
27
|
-
case '${
|
|
27
|
+
case '${graphqlTypeName}': {
|
|
28
28
|
const ${fieldStateIdentifier} = {
|
|
29
29
|
...state,
|
|
30
30
|
path: {
|
|
@@ -35,7 +35,6 @@ function getNamedTypeCacheKeys(field, typeNode, importContext, normalizableTypeM
|
|
|
35
35
|
data: ${constants_2.FIELD_DATA_IDENTIFIER},
|
|
36
36
|
};
|
|
37
37
|
${objectAssignImport}(${CACHE_KEY_SINK_IDENTIFIER}, ${typeCacheKeysImport}(
|
|
38
|
-
${constants_1.LUVIO_IDENTIFIER},
|
|
39
38
|
${constants_2.REQUESTED_FIELD_IDENTIFIER},
|
|
40
39
|
${fieldStateIdentifier}
|
|
41
40
|
));
|
|
@@ -57,7 +56,7 @@ function getListTypeCacheKeys(field, typeNode, importContext, normalizableTypeMa
|
|
|
57
56
|
const typeCacheKeysImport = importGraphQLArtifact('types', graphqlTypeName, constants_2.TYPE_CACHE_KEYS_IDENTIFIER);
|
|
58
57
|
const objectAssignImport = importContext.importTypeUtil('ObjectAssign');
|
|
59
58
|
return (0, deindent_1.default) `
|
|
60
|
-
case '${
|
|
59
|
+
case '${graphqlTypeName}': {
|
|
61
60
|
const ${fullPathIdentifier} = \`\${rootKey}__\${${constants_2.FIELD_KEY_IDENTIFIER}}\`;
|
|
62
61
|
for(let i = 0, len = ${constants_2.FIELD_DATA_IDENTIFIER}.length; i < len; i++) {
|
|
63
62
|
const item = ${constants_2.FIELD_DATA_IDENTIFIER}[i];
|
|
@@ -67,12 +66,11 @@ function getListTypeCacheKeys(field, typeNode, importContext, normalizableTypeMa
|
|
|
67
66
|
path: {
|
|
68
67
|
parent: null,
|
|
69
68
|
propertyName: null,
|
|
70
|
-
fullPath: ${fullPathIdentifier} + i
|
|
69
|
+
fullPath: ${fullPathIdentifier} + '__' + i
|
|
71
70
|
},
|
|
72
71
|
data: item,
|
|
73
72
|
};
|
|
74
73
|
${objectAssignImport}(${CACHE_KEY_SINK_IDENTIFIER}, ${typeCacheKeysImport}(
|
|
75
|
-
${constants_1.LUVIO_IDENTIFIER},
|
|
76
74
|
${constants_2.REQUESTED_FIELD_IDENTIFIER},
|
|
77
75
|
itemState
|
|
78
76
|
))
|
|
@@ -97,62 +95,74 @@ function getFieldCacheKeys(field, typeNode, importContext, normalizableTypeMap)
|
|
|
97
95
|
}
|
|
98
96
|
exports.getFieldCacheKeys = getFieldCacheKeys;
|
|
99
97
|
function generateObjectTypeCacheKeys(graphqlDsl, graphqlTypeName, importContext, def, normalizableTypeMap) {
|
|
100
|
-
const { typeNameToExtensions } = graphqlDsl;
|
|
101
98
|
const fields = (0, types_1.getObjectFields)(def);
|
|
102
|
-
const
|
|
99
|
+
const eachTypeCacheKeyStatements = fields
|
|
103
100
|
.filter((field) => field.type !== undefined)
|
|
104
101
|
.map((field) => {
|
|
105
|
-
const graphqlFieldName = field.name.value;
|
|
106
|
-
const ramlFieldName = (0, utils_2.getRamlFieldName)(typeNameToExtensions, graphqlTypeName, graphqlFieldName);
|
|
107
|
-
if (ramlFieldName !== undefined) {
|
|
108
|
-
return '';
|
|
109
|
-
}
|
|
110
102
|
return getFieldCacheKeys(field, field.type, importContext, normalizableTypeMap);
|
|
111
103
|
})
|
|
112
104
|
.filter((statement) => statement !== '');
|
|
113
|
-
const hasNormalizableFields =
|
|
105
|
+
const hasNormalizableFields = eachTypeCacheKeyStatements.length > 0;
|
|
114
106
|
if (!hasNormalizableFields) {
|
|
115
107
|
return ``;
|
|
116
108
|
}
|
|
117
|
-
const
|
|
118
|
-
const
|
|
109
|
+
const eachTypeHandling = eachTypeCacheKeyStatements.join('\n');
|
|
110
|
+
const typeCacheKeysStatements = [
|
|
119
111
|
(0, utils_2.getRequestedFieldsStatement)(importContext, graphqlTypeName),
|
|
120
|
-
iterateThroughResponseKeys(importContext,
|
|
112
|
+
iterateThroughResponseKeys(importContext, eachTypeHandling, graphqlTypeName),
|
|
121
113
|
];
|
|
122
|
-
return
|
|
114
|
+
return typeCacheKeysStatements.join('\n');
|
|
123
115
|
}
|
|
124
|
-
function iterateThroughResponseKeys(importContext,
|
|
116
|
+
function iterateThroughResponseKeys(importContext, individualFieldCacheKeysBlock, graphqlTypename) {
|
|
125
117
|
const getRequestedFieldImport = importContext.importGraphQLArtifact('types', constants_2.TYPE_UTIL_IDENTIFIER, constants_2.GET_REQUESTED_FIELD_IDENTIFIER);
|
|
126
118
|
const getFieldKeyImport = importContext.importGraphQLArtifact('types', constants_2.TYPE_UTIL_IDENTIFIER, constants_2.GET_SERIALIZED_KEY_FOR_FIELD_IDENTIFIER);
|
|
119
|
+
const isMappedFieldImport = importContext.importGraphQLArtifact('types', graphqlTypename, constants_2.IS_MAPPED_FIELD_IDENTIFIER);
|
|
120
|
+
const getFieldTypeImport = importContext.importGraphQLArtifact('types', graphqlTypename, constants_2.GET_FIELD_TYPE_IDENTIFIER);
|
|
127
121
|
return (0, deindent_1.default) `
|
|
128
122
|
for(const ${constants_2.FIELD_DATA_KEY_IDENTIFIER} of Object.keys(data)){
|
|
129
123
|
const ${constants_2.FIELD_DATA_IDENTIFIER} = data[${constants_2.FIELD_DATA_KEY_IDENTIFIER}];
|
|
130
124
|
const ${constants_2.REQUESTED_FIELD_IDENTIFIER} = ${getRequestedFieldImport}(${constants_2.FIELD_DATA_KEY_IDENTIFIER}, ${constants_2.REQUESTED_FIELDS_IDENTIFIER});
|
|
131
125
|
|
|
132
126
|
if(${constants_2.REQUESTED_FIELD_IDENTIFIER} === undefined) {
|
|
133
|
-
|
|
127
|
+
continue; // Skip unknown field.
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
const ${constants_2.FIELD_TYPE_IDENTIFIER} = ${getFieldTypeImport}(${constants_2.REQUESTED_FIELD_IDENTIFIER});
|
|
131
|
+
if(${isMappedFieldImport}(${constants_2.REQUESTED_FIELD_IDENTIFIER}) || ${constants_2.FIELD_TYPE_IDENTIFIER} === undefined) {
|
|
132
|
+
continue;
|
|
134
133
|
}
|
|
135
|
-
const ${constants_2.FIELD_TYPE_IDENTIFIER} = ${constants_2.GET_FIELD_TYPE_IDENTIFIER}(${constants_2.REQUESTED_FIELD_IDENTIFIER});
|
|
136
134
|
const ${constants_2.FIELD_KEY_IDENTIFIER} = ${getFieldKeyImport}(${constants_2.REQUESTED_FIELD_IDENTIFIER}, state.variables, ${constants_2.FIELD_TYPE_IDENTIFIER});
|
|
137
135
|
|
|
138
|
-
switch( ${constants_2.
|
|
139
|
-
${
|
|
136
|
+
switch( ${constants_2.FIELD_TYPE_IDENTIFIER}.typename) {
|
|
137
|
+
${individualFieldCacheKeysBlock}
|
|
140
138
|
}
|
|
141
139
|
}
|
|
142
140
|
`;
|
|
143
141
|
}
|
|
144
|
-
function
|
|
142
|
+
function generateRamlMappingCacheKeyString(graphqlDsl, graphqlTypeName, importContext, modelInfo) {
|
|
143
|
+
const mappedRamlTypeIdAndName = (0, utils_2.getMappedRamlTypeIdAndName)(graphqlDsl, graphqlTypeName, modelInfo);
|
|
144
|
+
if (mappedRamlTypeIdAndName === undefined) {
|
|
145
|
+
return '';
|
|
146
|
+
}
|
|
147
|
+
const objectAssignImport = importContext.importTypeUtil('ObjectAssign');
|
|
148
|
+
const getMappedTypeCacheKeysImport = importContext.importGraphQLArtifact('types', graphqlTypeName, constants_2.MAPPED_TYPE_CACHE_KEYS_IDENTIFIER);
|
|
149
|
+
return (0, deindent_1.default) `
|
|
150
|
+
${objectAssignImport}(${CACHE_KEY_SINK_IDENTIFIER}, ${getMappedTypeCacheKeysImport}(astNode, state));
|
|
151
|
+
`;
|
|
152
|
+
}
|
|
153
|
+
function generateGetTypeCacheKeys(graphqlDsl, graphqlTypeName, def, importContext, _metadata, modelInfo) {
|
|
145
154
|
var _a;
|
|
146
155
|
const { schema } = graphqlDsl;
|
|
147
156
|
const { importGraphQLArtifact } = importContext;
|
|
148
157
|
const normalizableTypeMap = (0, utils_1.getNormalizableTypeMap)(schema);
|
|
149
|
-
const graphqlStateInterface = importGraphQLArtifact('types', constants_2.TYPE_UTIL_IDENTIFIER, constants_2.
|
|
158
|
+
const graphqlStateInterface = importGraphQLArtifact('types', constants_2.TYPE_UTIL_IDENTIFIER, constants_2.GRAPHQL_LUVIO_STATE_INTERFACE_IDENTIFIER);
|
|
150
159
|
const astNodeParamType = ((_a = schema.getQueryType()) === null || _a === void 0 ? void 0 : _a.name) === graphqlTypeName
|
|
151
160
|
? constants_1.LUVIO_GRAPHQL_OPERATION_DEFINITION_NODE_IMPORT
|
|
152
161
|
: constants_1.LUVIO_GRAPHQL_FIELD_NODE_IMPORT;
|
|
162
|
+
const ramlMappingString = generateRamlMappingCacheKeyString(graphqlDsl, graphqlTypeName, importContext, modelInfo);
|
|
153
163
|
return (0, deindent_1.default) `
|
|
154
|
-
export function ${constants_2.TYPE_CACHE_KEYS_IDENTIFIER}(
|
|
155
|
-
const { path, data } = state;
|
|
164
|
+
export function ${constants_2.TYPE_CACHE_KEYS_IDENTIFIER}(astNode: ${astNodeParamType}, state: ${graphqlStateInterface}<${interface_1.PARTIAL_INTERFACE_IDENTIFIER}>): ${constants_1.ADAPTER_CACHE_KEY_SET_TYPE_IDENTIFIER} {
|
|
165
|
+
const { path, data, ${constants_1.LUVIO_IDENTIFIER}} = state;
|
|
156
166
|
const rootKey = ${constants_2.KEY_BUILDER_IDENTIFIER}(${constants_1.LUVIO_IDENTIFIER}, path, data);
|
|
157
167
|
const ${CACHE_KEY_SINK_IDENTIFIER} = {
|
|
158
168
|
[rootKey]: {
|
|
@@ -163,7 +173,10 @@ function generateGetTypeCacheKeys(graphqlDsl, graphqlTypeName, def, importContex
|
|
|
163
173
|
};
|
|
164
174
|
|
|
165
175
|
// get all cache keys from normalizable fields
|
|
166
|
-
${generateObjectTypeCacheKeys(graphqlDsl, graphqlTypeName, importContext, def, normalizableTypeMap)}
|
|
176
|
+
${generateObjectTypeCacheKeys(graphqlDsl, graphqlTypeName, importContext, def, normalizableTypeMap)}
|
|
177
|
+
|
|
178
|
+
// Deal with mapped types' cache keys
|
|
179
|
+
${ramlMappingString}
|
|
167
180
|
|
|
168
181
|
return ${CACHE_KEY_SINK_IDENTIFIER};
|
|
169
182
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-cache-keys.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/type-cache-keys.ts"],"names":[],"mappings":";;;;;;AAOA,uEAA+C;AAE/C,
|
|
1
|
+
{"version":3,"file":"type-cache-keys.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/type-cache-keys.ts"],"names":[],"mappings":";;;;;;AAOA,uEAA+C;AAE/C,sDAKgC;AAEhC,oCAAmE;AACnE,mCAAkF;AAClF,2CAgBqB;AAGrB,2CAA2D;AAC3D,0CAAiD;AAGjD,MAAM,yBAAyB,GAAG,cAAc,CAAC;AAEjD,SAAgB,qBAAqB,CACjC,KAA0B,EAC1B,QAAuB,EACvB,aAA4B,EAC5B,mBAAsC;IAEtC,MAAM,eAAe,GAAG,IAAA,uBAAe,EAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,EAAE,qBAAqB,EAAE,GAAG,aAAa,CAAC;IAChD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,eAAe,CAAC,KAAK,SAAS,CAAC;IACpE,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;IAEnC,IAAI,QAAQ,EAAE;QACV,OAAO,EAAE,CAAC;KACb;IAED,MAAM,mBAAmB,GAAG,qBAAqB,CAC7C,OAAO,EACP,eAAe,EACf,sCAA0B,CAC7B,CAAC;IACF,MAAM,kBAAkB,GAAG,aAAa,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAExE,MAAM,oBAAoB,GAAG,GAAG,SAAS,OAAO,CAAC;IACjD,OAAO,IAAA,kBAAQ,EAAA;gBACH,eAAe;oBACX,oBAAoB;;;;;iDAKS,gCAAoB;;wBAE7C,iCAAqB;;cAE/B,kBAAkB,IAAI,yBAAyB,KAAK,mBAAmB;kBACnE,sCAA0B;kBAC1B,oBAAoB;;;;KAIjC,CAAC;AACN,CAAC;AAzCD,sDAyCC;AAED,SAAgB,oBAAoB,CAChC,KAA0B,EAC1B,QAAsB,EACtB,aAA4B,EAC5B,mBAAsC;IAEtC,MAAM,EAAE,qBAAqB,EAAE,GAAG,aAAa,CAAC;IAChD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;IACnC,MAAM,eAAe,GAAG,IAAA,uBAAe,EAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,kBAAkB,GAAG,aAAa,SAAS,EAAE,CAAC;IACpD,MAAM,cAAc,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;IAE5D,yBAAyB;IACzB,IAAI,cAAc,KAAK,SAAS,EAAE;QAC9B,OAAO,EAAE,CAAC;KACb;IAED,MAAM,mBAAmB,GAAG,qBAAqB,CAC7C,OAAO,EACP,eAAe,EACf,sCAA0B,CAC7B,CAAC;IACF,MAAM,kBAAkB,GAAG,aAAa,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAExE,OAAO,IAAA,kBAAQ,EAAA;gBACH,eAAe;oBACX,kBAAkB,wBAAwB,gCAAoB;mCAC/C,iCAAqB;+BACzB,iCAAqB;;;;;;;oCAOhB,kBAAkB;;;;kBAIpC,kBAAkB,IAAI,yBAAyB,KAAK,mBAAmB;sBACnE,sCAA0B;;;;;;KAM3C,CAAC;AACN,CAAC;AA/CD,oDA+CC;AAED,SAAgB,iBAAiB,CAC7B,KAA0B,EAC1B,QAAkB,EAClB,aAA4B,EAC5B,mBAAsC;IAEtC,IAAI,KAAK,KAAK,SAAS,EAAE;QACrB,OAAO,EAAE,CAAC;KACb;IAED,QAAQ,QAAQ,CAAC,IAAI,EAAE;QACnB,KAAK,WAAW;YACZ,OAAO,qBAAqB,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;QACtF,KAAK,UAAU;YACX,OAAO,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;QACrF;YACI,OAAO,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;KAC1F;AACL,CAAC;AAlBD,8CAkBC;AAED,SAAS,2BAA2B,CAChC,UAA2B,EAC3B,eAAuB,EACvB,aAA4B,EAC5B,GAA6B,EAC7B,mBAAsC;IAEtC,MAAM,MAAM,GAAG,IAAA,uBAAe,EAAC,GAAG,CAAC,CAAC;IACpC,MAAM,0BAA0B,GAAG,MAAM;SACpC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;SAC3C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACX,OAAO,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;IACpF,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC;IAE7C,MAAM,qBAAqB,GAAG,0BAA0B,CAAC,MAAM,GAAG,CAAC,CAAC;IACpE,IAAI,CAAC,qBAAqB,EAAE;QACxB,OAAO,EAAE,CAAC;KACb;IACD,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,uBAAuB,GAAa;QACtC,IAAA,mCAA2B,EAAC,aAAa,EAAE,eAAe,CAAC;QAC3D,0BAA0B,CAAC,aAAa,EAAE,gBAAgB,EAAE,eAAe,CAAC;KAC/E,CAAC;IAEF,OAAO,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,0BAA0B,CAC/B,aAA4B,EAC5B,6BAAqC,EACrC,eAAuB;IAEvB,MAAM,uBAAuB,GAAG,aAAa,CAAC,qBAAqB,CAC/D,OAAO,EACP,gCAAoB,EACpB,0CAA8B,CACjC,CAAC;IACF,MAAM,iBAAiB,GAAG,aAAa,CAAC,qBAAqB,CACzD,OAAO,EACP,gCAAoB,EACpB,mDAAuC,CAC1C,CAAC;IAEF,MAAM,mBAAmB,GAAG,aAAa,CAAC,qBAAqB,CAC3D,OAAO,EACP,eAAe,EACf,sCAA0B,CAC7B,CAAC;IAEF,MAAM,kBAAkB,GAAG,aAAa,CAAC,qBAAqB,CAC1D,OAAO,EACP,eAAe,EACf,qCAAyB,CAC5B,CAAC;IAEF,OAAO,IAAA,kBAAQ,EAAA;oBACC,qCAAyB;oBACzB,iCAAqB,WAAW,qCAAyB;oBACzD,sCAA0B,MAAM,uBAAuB,IAAI,qCAAyB,KAAK,uCAA2B;;iBAEvH,sCAA0B;;;;oBAIvB,iCAAqB,MAAM,kBAAkB,IAAI,sCAA0B;iBAC9E,mBAAmB,IAAI,sCAA0B,QAAQ,iCAAqB;;;oBAG3E,gCAAoB,MAAM,iBAAiB,IAAI,sCAA0B,sBAAsB,iCAAqB;;sBAElH,iCAAqB;kBACzB,6BAA6B;;;KAG1C,CAAC;AACN,CAAC;AAED,SAAS,iCAAiC,CACtC,UAA2B,EAC3B,eAAuB,EACvB,aAA4B,EAC5B,SAAoB;IAEpB,MAAM,uBAAuB,GAAG,IAAA,kCAA0B,EACtD,UAAU,EACV,eAAe,EACf,SAAS,CACZ,CAAC;IAEF,IAAI,uBAAuB,KAAK,SAAS,EAAE;QACvC,OAAO,EAAE,CAAC;KACb;IACD,MAAM,kBAAkB,GAAG,aAAa,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IACxE,MAAM,4BAA4B,GAAG,aAAa,CAAC,qBAAqB,CACpE,OAAO,EACP,eAAe,EACf,6CAAiC,CACpC,CAAC;IAEF,OAAO,IAAA,kBAAQ,EAAA;UACT,kBAAkB,IAAI,yBAAyB,KAAK,4BAA4B;KACrF,CAAC;AACN,CAAC;AAED,SAAgB,wBAAwB,CACpC,UAA2B,EAC3B,eAAuB,EACvB,GAA6B,EAC7B,aAA4B,EAC5B,SAAiC,EACjC,SAAoB;;IAEpB,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;IAC9B,MAAM,EAAE,qBAAqB,EAAE,GAAG,aAAa,CAAC;IAChD,MAAM,mBAAmB,GAAG,IAAA,8BAAsB,EAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,qBAAqB,GAAG,qBAAqB,CAC/C,OAAO,EACP,gCAAoB,EACpB,oDAAwC,CAC3C,CAAC;IACF,MAAM,gBAAgB,GAClB,CAAA,MAAA,MAAM,CAAC,YAAY,EAAE,0CAAE,IAAI,MAAK,eAAe;QAC3C,CAAC,CAAC,0DAA8C;QAChD,CAAC,CAAC,2CAA+B,CAAC;IAE1C,MAAM,iBAAiB,GAAG,iCAAiC,CACvD,UAAU,EACV,eAAe,EACf,aAAa,EACb,SAAS,CACZ,CAAC;IAEF,OAAO,IAAA,kBAAQ,EAAA;0BACO,sCAA0B,aAAa,gBAAgB,YAAY,qBAAqB,IAAI,wCAA4B,OAAO,iDAAqC;kCAC5J,4BAAgB;8BACpB,kCAAsB,IAAI,4BAAgB;oBACpD,yBAAyB;;iCAEZ,aAAa,CAAC,iBAAiB,CAAC,WAAW,CAAC;;;;;;;cAO/D,2BAA2B,CACzB,UAAU,EACV,eAAe,EACf,aAAa,EACb,GAAG,EACH,mBAAmB,CACtB;;;cAGC,iBAAiB;;qBAEV,yBAAyB;;KAEzC,CAAC;AACN,CAAC;AAvDD,4DAuDC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { GraphQLAnnotation } from '../../../intermediate/graphql-annotation';
|
|
2
|
-
import type { GraphQLTypeExtension } from '../../../intermediate/graphql';
|
|
2
|
+
import type { GraphQLTypeExtension, LuvioGraphQLDSL } from '../../../intermediate/graphql';
|
|
3
3
|
import type { ModelInfo } from '../../../main';
|
|
4
4
|
import type { ImportContext } from '../../../utils/imports';
|
|
5
5
|
export declare function isTypeExtensionDefined(typeNameToExtensions: GraphQLAnnotation['typeNameToExtensions'] | undefined, graphqlTypeName: string, extensionName: keyof GraphQLTypeExtension): boolean;
|
|
@@ -7,3 +7,8 @@ export declare function getRamlTypeName(typeNameToExtensions: GraphQLAnnotation[
|
|
|
7
7
|
export declare function getRamlFieldName(typeNameToExtensions: GraphQLAnnotation['typeNameToExtensions'] | undefined, graphqlTypeName: string, graphqlFieldName: string): string | undefined;
|
|
8
8
|
export declare function getRamlTypeIdByName(ramlTypeName: string, modelInfo: ModelInfo): string | undefined;
|
|
9
9
|
export declare function getRequestedFieldsStatement(importContext: ImportContext, graphqlTypename: string): string;
|
|
10
|
+
export declare function getNormalizedDataType(graphqlDsl: LuvioGraphQLDSL, graphqlTypeName: string, importContext: ImportContext, modelInfo: ModelInfo): string;
|
|
11
|
+
export declare function getMappedRamlTypeIdAndName(graphqlDsl: LuvioGraphQLDSL, graphqlTypeName: string, modelInfo: ModelInfo): {
|
|
12
|
+
typename: string;
|
|
13
|
+
id: string;
|
|
14
|
+
} | undefined;
|
|
@@ -3,7 +3,7 @@ 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.getRequestedFieldsStatement = exports.getRamlTypeIdByName = exports.getRamlFieldName = exports.getRamlTypeName = exports.isTypeExtensionDefined = void 0;
|
|
6
|
+
exports.getMappedRamlTypeIdAndName = exports.getNormalizedDataType = exports.getRequestedFieldsStatement = exports.getRamlTypeIdByName = exports.getRamlFieldName = exports.getRamlTypeName = exports.isTypeExtensionDefined = void 0;
|
|
7
7
|
const deindent_1 = __importDefault(require("../../../utils/deindent"));
|
|
8
8
|
const constants_1 = require("../../shared/constants");
|
|
9
9
|
const constants_2 = require("./constants");
|
|
@@ -57,4 +57,27 @@ function getRequestedFieldsStatement(importContext, graphqlTypename) {
|
|
|
57
57
|
`;
|
|
58
58
|
}
|
|
59
59
|
exports.getRequestedFieldsStatement = getRequestedFieldsStatement;
|
|
60
|
+
function getNormalizedDataType(graphqlDsl, graphqlTypeName, importContext, modelInfo) {
|
|
61
|
+
const normalizedGraphQLTypeImport = importContext.importGraphQLArtifact('types', constants_2.TYPE_UTIL_IDENTIFIER, constants_2.NORMALIZED_GRAPHQL_TYPE);
|
|
62
|
+
const ramlTypeInfo = getMappedRamlTypeIdAndName(graphqlDsl, graphqlTypeName, modelInfo);
|
|
63
|
+
if (ramlTypeInfo !== undefined) {
|
|
64
|
+
const ramlShapeNameImport = importContext.importRamlArtifact(ramlTypeInfo.id, `${ramlTypeInfo.typename}Normalized`);
|
|
65
|
+
return `${normalizedGraphQLTypeImport}<${ramlShapeNameImport}>`;
|
|
66
|
+
}
|
|
67
|
+
return normalizedGraphQLTypeImport;
|
|
68
|
+
}
|
|
69
|
+
exports.getNormalizedDataType = getNormalizedDataType;
|
|
70
|
+
function getMappedRamlTypeIdAndName(graphqlDsl, graphqlTypeName, modelInfo) {
|
|
71
|
+
const mappedRamlTypeName = getRamlTypeName(graphqlDsl.typeNameToExtensions, graphqlTypeName);
|
|
72
|
+
if (mappedRamlTypeName) {
|
|
73
|
+
const ramlTypeId = getRamlTypeIdByName(mappedRamlTypeName, modelInfo);
|
|
74
|
+
if (ramlTypeId) {
|
|
75
|
+
return {
|
|
76
|
+
typename: mappedRamlTypeName,
|
|
77
|
+
id: ramlTypeId,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.getMappedRamlTypeIdAndName = getMappedRamlTypeIdAndName;
|
|
60
83
|
//# sourceMappingURL=utils.js.map
|