@luvio/compiler 0.91.0 → 0.94.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/adapter/adapter-network-cache-policy.js +3 -2
- package/dist/codegen/adapter/adapter-network-cache-policy.js.map +1 -1
- package/dist/codegen/adapter/adapter-network.d.ts +1 -1
- package/dist/codegen/adapter/adapter-network.js +6 -3
- package/dist/codegen/adapter/adapter-network.js.map +1 -1
- package/dist/codegen/adapter/adapter-notify-change.js +1 -1
- package/dist/codegen/adapter/adapter-resource-error.js +1 -1
- package/dist/codegen/adapter/constants.d.ts +2 -0
- package/dist/codegen/adapter/constants.js +4 -2
- package/dist/codegen/adapter/constants.js.map +1 -1
- package/dist/codegen/adapter/delete/adapter-browser-factory.js +1 -1
- package/dist/codegen/adapter/delete/adapter-browser-factory.js.map +1 -1
- package/dist/codegen/adapter/delete/adapter-network.js +2 -2
- package/dist/codegen/adapter/delete/adapter-network.js.map +1 -1
- package/dist/codegen/adapter/graphql/adapter-config-transformer.d.ts +3 -0
- package/dist/codegen/adapter/graphql/adapter-config-transformer.js +27 -0
- package/dist/codegen/adapter/graphql/adapter-config-transformer.js.map +1 -0
- package/dist/codegen/adapter/graphql/index.js +6 -1
- package/dist/codegen/adapter/graphql/index.js.map +1 -1
- package/dist/codegen/adapter/patch-post/adapter-network.js +1 -1
- package/dist/codegen/adapter-tests/expected-responses.js +1 -1
- package/dist/codegen/graphql/interface/index.js +2 -0
- package/dist/codegen/graphql/interface/index.js.map +1 -1
- package/dist/codegen/graphql/interface/query-transformer.d.ts +5 -0
- package/dist/codegen/graphql/interface/query-transformer.js +21 -0
- package/dist/codegen/graphql/interface/query-transformer.js.map +1 -0
- package/dist/codegen/graphql/interface/select.js +1 -1
- package/dist/codegen/graphql/source-printer/graphql-type-source-printer.d.ts +1 -0
- package/dist/codegen/graphql/source-printer/graphql-type-source-printer.js +7 -4
- package/dist/codegen/graphql/source-printer/graphql-type-source-printer.js.map +1 -1
- package/dist/codegen/graphql/type/constants.d.ts +5 -0
- package/dist/codegen/graphql/type/constants.js +6 -1
- package/dist/codegen/graphql/type/constants.js.map +1 -1
- package/dist/codegen/graphql/type/generateTypeUtil.d.ts +2 -1
- package/dist/codegen/graphql/type/generateTypeUtil.js +126 -1
- package/dist/codegen/graphql/type/generateTypeUtil.js.map +1 -1
- package/dist/codegen/graphql/type/index.d.ts +2 -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/ingest.d.ts +3 -2
- package/dist/codegen/graphql/type/ingest.js +103 -32
- package/dist/codegen/graphql/type/ingest.js.map +1 -1
- package/dist/codegen/graphql/type/interface.d.ts +3 -1
- package/dist/codegen/graphql/type/interface.js +10 -1
- package/dist/codegen/graphql/type/interface.js.map +1 -1
- package/dist/codegen/graphql/type/merge.js +4 -2
- package/dist/codegen/graphql/type/merge.js.map +1 -1
- package/dist/codegen/graphql/type/query-transformer.d.ts +8 -0
- package/dist/codegen/graphql/type/query-transformer.js +161 -0
- package/dist/codegen/graphql/type/query-transformer.js.map +1 -0
- package/dist/codegen/graphql/type/select.js +26 -23
- package/dist/codegen/graphql/type/select.js.map +1 -1
- package/dist/codegen/graphql/type/utils.d.ts +4 -0
- package/dist/codegen/graphql/type/utils.js +37 -1
- package/dist/codegen/graphql/type/utils.js.map +1 -1
- package/dist/codegen/resource/composite/ingest-success-child-resource-params.js +2 -1
- package/dist/codegen/resource/composite/ingest-success-child-resource-params.js.map +1 -1
- package/dist/codegen/resource/composite/select-child-resource-params.js +1 -1
- package/dist/codegen/resource/composite/select-child-resource-params.js.map +1 -1
- package/dist/codegen/resource/graphql/create-resource-request.js +0 -2
- package/dist/codegen/resource/graphql/create-resource-request.js.map +1 -1
- package/dist/codegen/resource/graphql/ingest-error.js +1 -1
- package/dist/codegen/resource/graphql/ingest-error.js.map +1 -1
- package/dist/codegen/resource/ingest-error.js +1 -1
- package/dist/codegen/resource/ingest-error.js.map +1 -1
- package/dist/codegen/shape/shape-utils-ingest.js +0 -22
- package/dist/codegen/shape/shape-utils-ingest.js.map +1 -1
- package/dist/codegen/shared/constants.d.ts +2 -0
- package/dist/codegen/shared/constants.js +3 -1
- package/dist/codegen/shared/constants.js.map +1 -1
- package/package.json +4 -4
|
@@ -10,8 +10,19 @@ const utils_1 = require("../utils");
|
|
|
10
10
|
const constants_1 = require("../../adapter/constants");
|
|
11
11
|
const constants_2 = require("../../shared/constants");
|
|
12
12
|
const constants_3 = require("./constants");
|
|
13
|
-
function generateTypeUtil(graphqlResource, metadata) {
|
|
13
|
+
function generateTypeUtil(graphqlResource, metadata, importContext) {
|
|
14
14
|
var _a;
|
|
15
|
+
// We shouldn't be able to get here without a queryType. graphqldsl should ensure this when constructed/validated.
|
|
16
|
+
const queryType = graphqlResource.graphqlDSL.schema.getQueryType();
|
|
17
|
+
if (!queryType) {
|
|
18
|
+
throw new Error('Invalid GraphQL Schema. You must include a Query Type.');
|
|
19
|
+
}
|
|
20
|
+
const queryTypeName = queryType.name;
|
|
21
|
+
const queryTransformerImport = importContext.importGraphQLArtifact(queryTypeName, 'getQueryTransformerForField');
|
|
22
|
+
const queryTransformerForTypeImport = importContext.importGraphQLArtifact(queryTypeName, 'getQueryTransformerForType');
|
|
23
|
+
const arrayIsArrayUtilsIdentifier = importContext.importTypeUtil('ArrayIsArray');
|
|
24
|
+
// TODO: W-11246519 improve readability of the applyMinimumFields function by replacing the AST visitor with
|
|
25
|
+
// manual node traversal
|
|
15
26
|
return (0, imports_1.resolveImports)((0, deindent_1.default) `
|
|
16
27
|
export type ${constants_3.GRAPHQL_VARIABLES_IDENTIFIER} = Record<string, any>;
|
|
17
28
|
export type ${constants_3.GRAPHQL_FRAGMENT_MAP_IDENTIFIER} = Record<string, ${constants_2.LUVIO_GRAPHQL_FRAGMENT_DEFINITION_NODE_IMPORT}>;
|
|
@@ -25,6 +36,19 @@ function generateTypeUtil(graphqlResource, metadata) {
|
|
|
25
36
|
${constants_3.TIMESTAMP_IDENTIFIER}: number
|
|
26
37
|
};
|
|
27
38
|
|
|
39
|
+
export interface QueryTransformerFunction {
|
|
40
|
+
(fieldId: string): ${constants_3.QUERY_TRANSFORMER_IDENTIFIER} | undefined;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface GetMinimumFieldsFunction {
|
|
44
|
+
(): ${constants_2.LUVIO_GRAPHQL_FIELD_NODE_IMPORT}[];
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export interface ${constants_3.QUERY_TRANSFORMER_IDENTIFIER} {
|
|
48
|
+
${constants_3.GET_QUERY_TRANSFORMER_FOR_FIELD_IDENTIFIER}: QueryTransformerFunction,
|
|
49
|
+
${constants_3.GET_MINIMUM_FIELDS_IDENTIFIER}: GetMinimumFieldsFunction
|
|
50
|
+
}
|
|
51
|
+
|
|
28
52
|
export function ${constants_3.CREATE_LINK_IDENTIFIER}(ref: string) {
|
|
29
53
|
return {
|
|
30
54
|
__ref: ref,
|
|
@@ -80,6 +104,107 @@ function generateTypeUtil(graphqlResource, metadata) {
|
|
|
80
104
|
|
|
81
105
|
export const TTL = ${(0, utils_1.getShapeTtl)(metadata.rootTtl, (_a = graphqlResource.returnShape) === null || _a === void 0 ? void 0 : _a.id, metadata.shapeTtls)};
|
|
82
106
|
|
|
107
|
+
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} {
|
|
108
|
+
const queryTransformerStack: ${constants_3.QUERY_TRANSFORMER_IDENTIFIER}[] = [];
|
|
109
|
+
const visitor: ${constants_2.LUVIO_GRAPHQL_AST_VISITOR_IMPORT} = {
|
|
110
|
+
OperationDefinition: {
|
|
111
|
+
enter(node) {
|
|
112
|
+
if (node.operation === 'query') {
|
|
113
|
+
queryTransformerStack.push({
|
|
114
|
+
${constants_3.GET_QUERY_TRANSFORMER_FOR_FIELD_IDENTIFIER}: ${queryTransformerImport},
|
|
115
|
+
${constants_3.GET_MINIMUM_FIELDS_IDENTIFIER}: () => {return []}
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
Field: {
|
|
121
|
+
enter(node) {
|
|
122
|
+
if (node.selectionSet?.selections !== undefined) {
|
|
123
|
+
const { ${constants_3.GET_QUERY_TRANSFORMER_FOR_FIELD_IDENTIFIER} } = queryTransformerStack[queryTransformerStack.length - 1];
|
|
124
|
+
const queryTransformer = ${constants_3.GET_QUERY_TRANSFORMER_FOR_FIELD_IDENTIFIER}(node.name.value);
|
|
125
|
+
if (queryTransformer === undefined) {
|
|
126
|
+
throw new Error("Invalid field in query '" + node.name.value
|
|
127
|
+
+ "' at line: " + node.name.loc?.startToken.line
|
|
128
|
+
+ " column: " + node.name.loc?.startToken.column);
|
|
129
|
+
}
|
|
130
|
+
queryTransformerStack.push(queryTransformer);
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
leave(node) {
|
|
134
|
+
if (node.selectionSet?.selections !== undefined) {
|
|
135
|
+
queryTransformerStack.pop();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
InlineFragment: {
|
|
140
|
+
enter(node, _key, parentFields) {
|
|
141
|
+
if (node.typeCondition !== undefined && node.typeCondition !== null) {
|
|
142
|
+
const queryTransformer = ${queryTransformerForTypeImport}(node.typeCondition.name.value)
|
|
143
|
+
if (queryTransformer === undefined) {
|
|
144
|
+
throw new Error("Invalid type in query fragment '" + node.typeCondition.name.value
|
|
145
|
+
+ "' at line: " + node.typeCondition.name.loc?.startToken.line
|
|
146
|
+
+ " column: " + node.typeCondition.name.loc?.startToken.column);
|
|
147
|
+
}
|
|
148
|
+
const { ${constants_3.GET_MINIMUM_FIELDS_IDENTIFIER} } = queryTransformer;
|
|
149
|
+
|
|
150
|
+
// create a wrapper for the getMinimumFields function that filters
|
|
151
|
+
// out any fields already present via encapsulation in the parent fields
|
|
152
|
+
let wrappedGetMinimumFields = ${constants_3.GET_MINIMUM_FIELDS_IDENTIFIER};
|
|
153
|
+
if (${arrayIsArrayUtilsIdentifier}(parentFields)) {
|
|
154
|
+
wrappedGetMinimumFields = ():${constants_2.LUVIO_GRAPHQL_FIELD_NODE_IMPORT}[] => {
|
|
155
|
+
return ${constants_3.GET_MINIMUM_FIELDS_IDENTIFIER}().filter((field) => {
|
|
156
|
+
const fieldIsAlreadyPresent = parentFields.some(parentField => {
|
|
157
|
+
return parentField.kind == 'Field' && parentField.name.value === field.name.value;
|
|
158
|
+
});
|
|
159
|
+
return !fieldIsAlreadyPresent;
|
|
160
|
+
});
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
queryTransformerStack.push({
|
|
164
|
+
...queryTransformer,
|
|
165
|
+
${constants_3.GET_MINIMUM_FIELDS_IDENTIFIER}: wrappedGetMinimumFields
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
leave(node) {
|
|
170
|
+
if (node.typeCondition !== undefined) {
|
|
171
|
+
queryTransformerStack.pop();
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
SelectionSet: {
|
|
176
|
+
enter(node, _key, _parent) {
|
|
177
|
+
// No changes if no selections.
|
|
178
|
+
const { selections } = node;
|
|
179
|
+
if (!selections) {
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// This node is always entered after a Field node. A query transformer for this node was pushed
|
|
184
|
+
// onto the stack when that Field node was entered. The query transformer provides a function
|
|
185
|
+
// to get the minimum fields for this node.
|
|
186
|
+
const { ${constants_3.GET_MINIMUM_FIELDS_IDENTIFIER} } = queryTransformerStack[queryTransformerStack.length - 1];
|
|
187
|
+
|
|
188
|
+
// Call the function to get the minimum fields for this node, filtering out any
|
|
189
|
+
// fields that are already present in the selection.
|
|
190
|
+
const minimumFields = ${constants_3.GET_MINIMUM_FIELDS_IDENTIFIER}().filter(field => {
|
|
191
|
+
const fieldIsAlreadyPresent = selections.some(selection => {
|
|
192
|
+
return selection.kind === 'Field' && (selection.name.value === field.name.value);
|
|
193
|
+
});
|
|
194
|
+
return !fieldIsAlreadyPresent;
|
|
195
|
+
});
|
|
196
|
+
|
|
197
|
+
// Return a new SelectionSet including minimum fields
|
|
198
|
+
return {
|
|
199
|
+
...node,
|
|
200
|
+
selections: [...selections, ...minimumFields],
|
|
201
|
+
};
|
|
202
|
+
},
|
|
203
|
+
},
|
|
204
|
+
};
|
|
205
|
+
return ${constants_2.LUVIO_GRAPHQL_VISIT_IMPORT}(query, visitor);
|
|
206
|
+
}
|
|
207
|
+
|
|
83
208
|
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 {
|
|
84
209
|
return requestedFields.find(fieldNode => (fieldNode.alias && fieldNode.alias.value === responseDataFieldName) || (!fieldNode.alias && fieldNode.name.value === responseDataFieldName));
|
|
85
210
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateTypeUtil.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/generateTypeUtil.ts"],"names":[],"mappings":";;;;;;AAAA,uEAA+C;AAC/C,oDAAwD;
|
|
1
|
+
{"version":3,"file":"generateTypeUtil.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/generateTypeUtil.ts"],"names":[],"mappings":";;;;;;AAAA,uEAA+C;AAC/C,oDAAwD;AAExD,oCAAuC;AAGvC,uDAAmF;AACnF,sDAagC;AAChC,2CAcqB;AAErB,SAAgB,gBAAgB,CAC5B,eAAgC,EAChC,QAAgC,EAChC,aAA4B;;IAE5B,kHAAkH;IAClH,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;IACnE,IAAI,CAAC,SAAS,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;KAC7E;IACD,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC;IACrC,MAAM,sBAAsB,GAAG,aAAa,CAAC,qBAAqB,CAC9D,aAAa,EACb,6BAA6B,CAChC,CAAC;IACF,MAAM,6BAA6B,GAAG,aAAa,CAAC,qBAAqB,CACrE,aAAa,EACb,4BAA4B,CAC/B,CAAC;IAEF,MAAM,2BAA2B,GAAG,aAAa,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAEjF,4GAA4G;IAC5G,wBAAwB;IACxB,OAAO,IAAA,wBAAc,EAAC,IAAA,kBAAQ,EAAA;sBACZ,wCAA4B;sBAC5B,2CAA+B,qBAAqB,yDAA6C;2BAC5F,8CAAkC;;yBAEpC,wCAA4B;yBAC5B,2CAA+B;oBACpC,oDAAwC;cAC9C,4BAAgB,KAAK,wBAAY;cACjC,kCAAsB,KAAK,8BAAkB;cAC7C,gCAAoB;;;;iCAID,wCAA4B;;;;kBAI3C,2CAA+B;;;2BAGtB,wCAA4B;cACzC,sDAA0C;cAC1C,yCAA6B;;;0BAGjB,kCAAsB;;;;;;0BAMtB,gDAAoC,4BAA4B,8CAAkC,mBAAmB,wCAA4B;;;;;;;;;;kDAUzH,8CAAkC,gBAAgB,wCAA4B;;;;;iDAK/E,2CAA+B,gBAAgB,wCAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAgC/F,IAAA,mBAAW,EAC5B,QAAQ,CAAC,OAAO,EAChB,MAAA,eAAe,CAAC,WAAW,0CAAE,EAAE,EAC/B,QAAQ,CAAC,SAAS,CACrB;;0BAEiB,oDAAwC,YAAY,8CAAkC,MAAM,8CAAkC;2CAC7G,wCAA4B;6BAC1C,4CAAgC;;;;;kCAK3B,sDAA0C,KAAK,sBAAsB;kCACrE,yCAA6B;;;;;;;;sCAQzB,sDAA0C;uDACzB,sDAA0C;;;;;;;;;;;;;;;;;;uDAkB1C,6BAA6B;;;;;;sCAM9C,yCAA6B;;;;4DAIP,yCAA6B;kCACvD,2BAA2B;+DACE,2CAA+B;6CACjD,yCAA6B;;;;;;;;;;kCAUxC,yCAA6B;;;;;;;;;;;;;;;;;;;;;kCAqB7B,yCAA6B;;;;gDAIf,yCAA6B;;;;;;;;;;;;;;;qBAexD,sCAA0B;;;0BAGrB,0CAA8B,oDAAoD,2CAA+B,QAAQ,2CAA+B;;;;0BAIxJ,mDAAuC,WAAW,2CAA+B,gBAAgB,wCAA4B;;qGAElD,gDAAoC;;;;0BAI/G,oDAAwC,oCAAoC,mDAAuC,wBAAwB,2CAA+B,MAAM,2CAA+B;;;;;;;sBAOnN,oDAAwC;;;;;;0BAMpC,oDAAwC;;;;;;;KAO7D,CAAC,CAAC;AACP,CAAC;AAjPD,4CAiPC"}
|
|
@@ -2,4 +2,5 @@ import type { ImportContext } from '../../../utils/imports';
|
|
|
2
2
|
import type { ObjectTypeDefinitionNode } from '@luvio/graphql-parser';
|
|
3
3
|
import type { LuvioGraphQLDSL } from '../../../intermediate/graphql';
|
|
4
4
|
import type { GraphQLCodegenMetadata } from '../source-printer';
|
|
5
|
-
|
|
5
|
+
import type { ModelInfo } from '../../../main';
|
|
6
|
+
export declare function generateType(graphqlDsl: LuvioGraphQLDSL, graphqlTypeName: string, def: ObjectTypeDefinitionNode, importContext: ImportContext, metadata: GraphQLCodegenMetadata, modelInfo: ModelInfo): string;
|
|
@@ -12,15 +12,17 @@ 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
|
-
|
|
15
|
+
const query_transformer_1 = require("./query-transformer");
|
|
16
|
+
function generateType(graphqlDsl, graphqlTypeName, def, importContext, metadata, modelInfo) {
|
|
16
17
|
return (0, imports_1.resolveImports)((0, deindent_1.default) `
|
|
17
18
|
export const name = '${graphqlTypeName}';
|
|
18
19
|
${(0, ttl_1.generateTtl)(graphqlDsl, graphqlTypeName)}
|
|
19
20
|
${(0, interface_1.generateInterfaces)(graphqlDsl, graphqlTypeName, def, importContext, metadata)}
|
|
20
21
|
${(0, key_1.generateKey)(def, importContext, graphqlDsl.schemaName)}
|
|
21
22
|
${(0, merge_1.generateMerge)(importContext)}
|
|
22
|
-
${(0, ingest_1.generateIngest)(graphqlDsl, graphqlTypeName, def, importContext, metadata)}
|
|
23
|
+
${(0, ingest_1.generateIngest)(graphqlDsl, graphqlTypeName, def, importContext, metadata, modelInfo)}
|
|
23
24
|
${(0, select_1.generateSelect)(graphqlDsl, graphqlTypeName, def, importContext, metadata)}
|
|
25
|
+
${(0, query_transformer_1.generate)(graphqlDsl, graphqlTypeName, def, importContext, metadata)}
|
|
24
26
|
`);
|
|
25
27
|
}
|
|
26
28
|
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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/index.ts"],"names":[],"mappings":";;;;;;AAAA,uEAA+C;AAC/C,+BAAoC;AACpC,2CAAiD;AACjD,qCAA0C;AAC1C,+BAAoC;AACpC,mCAAwC;AACxC,oDAAwD;AAKxD,qCAA0C;AAC1C,2DAA2E;AAG3E,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,8BAAkB,EAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UAC7E,IAAA,iBAAW,EAAC,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC,UAAU,CAAC;UACtD,IAAA,qBAAa,EAAC,aAAa,CAAC;UAC5B,IAAA,uBAAc,EAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC;UACpF,IAAA,uBAAc,EAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;UACzE,IAAA,4BAAwB,EAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;KACxF,CAAC,CAAC;AACP,CAAC;AAlBD,oCAkBC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type { FieldDefinitionNode, ListTypeNode, NamedTypeNode,
|
|
1
|
+
import type { FieldDefinitionNode, ListTypeNode, NamedTypeNode, TypeNode, ObjectTypeDefinitionNode } from '@luvio/graphql-parser';
|
|
2
2
|
import type { ImportContext } from '../../../utils/imports';
|
|
3
3
|
import type { NormalizableTypes } from '../utils';
|
|
4
4
|
import type { LuvioGraphQLDSL } from '../../../intermediate/graphql';
|
|
5
5
|
import type { GraphQLCodegenMetadata } from '../source-printer';
|
|
6
|
+
import type { ModelInfo } from '../../../main';
|
|
6
7
|
export declare function ingestNamedType(field: FieldDefinitionNode, typeNode: NamedTypeNode, importContext: ImportContext, normalizableTypeMap: NormalizableTypes): string;
|
|
7
8
|
export declare function ingestListType(field: FieldDefinitionNode, typeNode: ListTypeNode, importContext: ImportContext, normalizableTypeMap: NormalizableTypes): string;
|
|
8
9
|
export declare function ingestType(field: FieldDefinitionNode, typeNode: TypeNode, importContext: ImportContext, normalizableTypeMap: NormalizableTypes): string;
|
|
9
|
-
export declare function generateIngest(graphqlDsl: LuvioGraphQLDSL,
|
|
10
|
+
export declare function generateIngest(graphqlDsl: LuvioGraphQLDSL, graphqlTypeName: string, def: ObjectTypeDefinitionNode, importContext: ImportContext, _metadata: GraphQLCodegenMetadata, modelInfo: ModelInfo): string;
|
|
@@ -13,17 +13,17 @@ const interface_1 = require("./interface");
|
|
|
13
13
|
const types_1 = require("../utils/types");
|
|
14
14
|
const REQUESTED_FIELDS_IDENTIFIER = 'requestedFields';
|
|
15
15
|
function ingestNamedType(field, typeNode, importContext, normalizableTypeMap) {
|
|
16
|
-
const
|
|
16
|
+
const graphqlTypeName = (0, utils_1.resolveTypeName)(typeNode);
|
|
17
17
|
const { importGraphQLArtifact } = importContext;
|
|
18
|
-
const isScalar = normalizableTypeMap[
|
|
18
|
+
const isScalar = normalizableTypeMap[graphqlTypeName] === undefined;
|
|
19
19
|
const fieldName = field.name.value;
|
|
20
20
|
if (isScalar) {
|
|
21
21
|
return generateIngestScalarField(fieldName);
|
|
22
22
|
}
|
|
23
|
-
const typeNameIngestImport = importGraphQLArtifact(
|
|
23
|
+
const typeNameIngestImport = importGraphQLArtifact(graphqlTypeName, constants_2.TYPE_INGEST_IDENTIFIER);
|
|
24
24
|
const fieldStateIdentifier = `${fieldName}State`;
|
|
25
25
|
return (0, deindent_1.default) `
|
|
26
|
-
|
|
26
|
+
case '${fieldName}': {
|
|
27
27
|
const ${fieldStateIdentifier} = {
|
|
28
28
|
...state,
|
|
29
29
|
path: {
|
|
@@ -37,25 +37,26 @@ function ingestNamedType(field, typeNode, importContext, normalizableTypeMap) {
|
|
|
37
37
|
${constants_2.REQUESTED_FIELD_IDENTIFIER},
|
|
38
38
|
${fieldStateIdentifier}
|
|
39
39
|
) as any;
|
|
40
|
-
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
41
42
|
`;
|
|
42
43
|
}
|
|
43
44
|
exports.ingestNamedType = ingestNamedType;
|
|
44
45
|
function ingestListType(field, typeNode, importContext, normalizableTypeMap) {
|
|
45
46
|
const { importGraphQLArtifact } = importContext;
|
|
46
47
|
const fieldName = field.name.value;
|
|
47
|
-
const
|
|
48
|
+
const graphqlTypeName = (0, utils_1.resolveTypeName)(typeNode);
|
|
48
49
|
const fullPathIdentifier = `fullPath__${fieldName}`;
|
|
49
|
-
const typeDefinition = normalizableTypeMap[
|
|
50
|
+
const typeDefinition = normalizableTypeMap[graphqlTypeName];
|
|
50
51
|
const collectionIdentifier = `${fieldName}__items`;
|
|
51
52
|
const dataIdentifier = `data[${constants_2.FIELD_KEY_IDENTIFIER}]`;
|
|
52
53
|
// Non-normalizable types
|
|
53
54
|
if (typeDefinition === undefined) {
|
|
54
55
|
return generateIngestScalarField(fieldName);
|
|
55
56
|
}
|
|
56
|
-
const typeNameIngestImport = importGraphQLArtifact(
|
|
57
|
+
const typeNameIngestImport = importGraphQLArtifact(graphqlTypeName, constants_2.TYPE_INGEST_IDENTIFIER);
|
|
57
58
|
return (0, deindent_1.default) `
|
|
58
|
-
|
|
59
|
+
case '${fieldName}': {
|
|
59
60
|
const ${collectionIdentifier}: ${constants_1.LUVIO_STORE_LINK_IMPORT}[] = [];
|
|
60
61
|
const ${fullPathIdentifier} = \`\${key}__\${${constants_2.FIELD_KEY_IDENTIFIER}}\`;
|
|
61
62
|
for(let i = 0, len = ${dataIdentifier}.length; i < len; i++) {
|
|
@@ -75,16 +76,17 @@ function ingestListType(field, typeNode, importContext, normalizableTypeMap) {
|
|
|
75
76
|
itemState
|
|
76
77
|
)
|
|
77
78
|
}
|
|
78
|
-
|
|
79
79
|
dataSink[${constants_2.FIELD_KEY_IDENTIFIER}] = ${collectionIdentifier};
|
|
80
|
-
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
81
82
|
`;
|
|
82
83
|
}
|
|
83
84
|
exports.ingestListType = ingestListType;
|
|
84
85
|
function generateIngestScalarField(fieldName) {
|
|
85
86
|
return (0, deindent_1.default) `
|
|
86
|
-
|
|
87
|
+
case '${fieldName}': {
|
|
87
88
|
dataSink[${constants_2.FIELD_KEY_IDENTIFIER}] = ${constants_2.FIELD_DATA_IDENTIFIER};
|
|
89
|
+
break;
|
|
88
90
|
}
|
|
89
91
|
`;
|
|
90
92
|
}
|
|
@@ -102,16 +104,20 @@ function ingestType(field, typeNode, importContext, normalizableTypeMap) {
|
|
|
102
104
|
}
|
|
103
105
|
}
|
|
104
106
|
exports.ingestType = ingestType;
|
|
105
|
-
function generateObjectTypeIngest(
|
|
106
|
-
const
|
|
107
|
+
function generateObjectTypeIngest(graphqlDsl, graphqlTypeName, importContext, def, normalizableTypeMap) {
|
|
108
|
+
const { typeNameToExtensions } = graphqlDsl;
|
|
109
|
+
const fields = (0, types_1.getObjectFields)(def);
|
|
107
110
|
const fieldIngestStatements = fields
|
|
111
|
+
.filter((field) => field.type !== undefined)
|
|
108
112
|
.map((field) => {
|
|
109
|
-
|
|
113
|
+
// omit the fields that are mapped to RAML fields and delegate to RAML ingestion
|
|
114
|
+
const graphqlFieldName = field.name.value;
|
|
115
|
+
const ramlFieldName = (0, utils_2.getRamlFieldName)(typeNameToExtensions, graphqlTypeName, graphqlFieldName);
|
|
116
|
+
if (ramlFieldName !== undefined) {
|
|
110
117
|
return '';
|
|
111
118
|
}
|
|
112
119
|
return ingestType(field, field.type, importContext, normalizableTypeMap);
|
|
113
|
-
})
|
|
114
|
-
.filter((statement) => statement !== '');
|
|
120
|
+
});
|
|
115
121
|
const eachFieldHandling = fieldIngestStatements.join('\n');
|
|
116
122
|
const ingestStatements = [
|
|
117
123
|
getRequestedFieldsStatement(importContext),
|
|
@@ -132,60 +138,125 @@ function iterateThroughResponseKeys(importContext, individualFieldIngestBlock) {
|
|
|
132
138
|
const getRequestedFieldImport = importContext.importGraphQLArtifact(constants_2.TYPE_UTIL_IDENTIFIER, constants_2.GET_REQUESTED_FIELD_IDENTIFIER);
|
|
133
139
|
const getFieldKeyImport = importContext.importGraphQLArtifact(constants_2.TYPE_UTIL_IDENTIFIER, constants_2.GET_SERIALIZED_KEY_FOR_FIELD_IDENTIFIER);
|
|
134
140
|
return (0, deindent_1.default) `
|
|
135
|
-
const
|
|
136
|
-
for(var responseFieldIndex = 0; responseFieldIndex < responseKeys.length; responseFieldIndex++){
|
|
137
|
-
const ${constants_2.FIELD_DATA_KEY_IDENTIFIER} = responseKeys[responseFieldIndex];
|
|
141
|
+
for(const ${constants_2.FIELD_DATA_KEY_IDENTIFIER} of Object.keys(data)){
|
|
138
142
|
const ${constants_2.FIELD_DATA_IDENTIFIER} = data[${constants_2.FIELD_DATA_KEY_IDENTIFIER}];
|
|
139
143
|
const ${constants_2.REQUESTED_FIELD_IDENTIFIER} = ${getRequestedFieldImport}(${constants_2.FIELD_DATA_KEY_IDENTIFIER}, ${REQUESTED_FIELDS_IDENTIFIER});
|
|
144
|
+
|
|
140
145
|
if(${constants_2.REQUESTED_FIELD_IDENTIFIER} === undefined) {
|
|
141
146
|
break; // TODO: (W-11132802) We got a field back we didn't ask for. Call handleUnknownField.
|
|
142
147
|
}
|
|
143
148
|
const ${constants_2.FIELD_KEY_IDENTIFIER} = ${getFieldKeyImport}(${constants_2.REQUESTED_FIELD_IDENTIFIER}, state.variables);
|
|
144
|
-
|
|
149
|
+
|
|
150
|
+
switch( ${constants_2.REQUESTED_FIELD_IDENTIFIER}.name.value) {
|
|
151
|
+
${individualFieldIngestBlock}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
`;
|
|
155
|
+
}
|
|
156
|
+
function generateRamlIngestDelegation(graphqlDsl, graphqlTypeName, importContext, def, modelInfo, graphqlStateInterface) {
|
|
157
|
+
// get the target RAML type ingest function
|
|
158
|
+
const { typeNameToExtensions } = graphqlDsl;
|
|
159
|
+
const { importRamlArtifact } = importContext;
|
|
160
|
+
const ramlTypeName = (0, utils_2.getRamlTypeName)(typeNameToExtensions, graphqlTypeName);
|
|
161
|
+
if (ramlTypeName === undefined) {
|
|
162
|
+
return '';
|
|
163
|
+
}
|
|
164
|
+
const ramlTypeId = (0, utils_2.getRamlTypeIdByName)(ramlTypeName, modelInfo);
|
|
165
|
+
if (ramlTypeId === undefined) {
|
|
166
|
+
return '';
|
|
167
|
+
}
|
|
168
|
+
const ramlIngest = importRamlArtifact(ramlTypeId, constants_2.TYPE_INGEST_IDENTIFIER);
|
|
169
|
+
// get RAML mapping
|
|
170
|
+
const graphqlFields = (0, types_1.getObjectFields)(def);
|
|
171
|
+
const ramlIngestStatements = graphqlFields
|
|
172
|
+
.filter((graphqlField) => graphqlField.type !== undefined)
|
|
173
|
+
.map((graphqlField) => {
|
|
174
|
+
const graphqlFieldName = graphqlField.name.value;
|
|
175
|
+
const ramlFieldName = (0, utils_2.getRamlFieldName)(typeNameToExtensions, graphqlTypeName, graphqlFieldName);
|
|
176
|
+
if (ramlFieldName === undefined) {
|
|
177
|
+
return '';
|
|
178
|
+
}
|
|
179
|
+
return (0, deindent_1.default) `
|
|
180
|
+
if (responseKey === "${graphqlFieldName}") {
|
|
181
|
+
ramlSink["${ramlFieldName}"] = data["${graphqlFieldName}"];
|
|
182
|
+
}
|
|
183
|
+
`;
|
|
184
|
+
});
|
|
185
|
+
if (ramlIngestStatements.length === 0) {
|
|
186
|
+
return '';
|
|
187
|
+
}
|
|
188
|
+
return (0, deindent_1.default) `
|
|
189
|
+
export function convertGraphQLToRaml (state: ${graphqlStateInterface}<${interface_1.PARTIAL_INTERFACE_IDENTIFIER}>) {
|
|
190
|
+
const { path, data, ${constants_1.LUVIO_IDENTIFIER}, ${constants_1.LUVIO_STORE_IDENTIFIER}, ${constants_2.TIMESTAMP_IDENTIFIER} } = state;
|
|
191
|
+
const ramlSink = {};
|
|
192
|
+
const responseKeys = Object.keys(data);
|
|
193
|
+
for (const responseKey of responseKeys) {
|
|
194
|
+
${ramlIngestStatements.join('\n')}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
// delegate type ingest to RAML ingest if the type is in RAML mapping
|
|
198
|
+
if (Object.keys(ramlSink).length === 0) {
|
|
199
|
+
return undefined;
|
|
200
|
+
}
|
|
201
|
+
const ramlTypeRef = ${ramlIngest}(ramlSink, path, ${constants_1.LUVIO_IDENTIFIER}, ${constants_1.LUVIO_STORE_IDENTIFIER}, ${constants_2.TIMESTAMP_IDENTIFIER});
|
|
202
|
+
return ramlTypeRef;
|
|
145
203
|
}
|
|
146
204
|
`;
|
|
147
205
|
}
|
|
148
|
-
function generateIngest(graphqlDsl,
|
|
206
|
+
function generateIngest(graphqlDsl, graphqlTypeName, def, importContext, _metadata, modelInfo) {
|
|
149
207
|
var _a;
|
|
150
|
-
const { schema } = graphqlDsl;
|
|
208
|
+
const { schema, typeNameToExtensions } = graphqlDsl;
|
|
151
209
|
const { importGraphQLArtifact, importAdapterUtil } = importContext;
|
|
152
210
|
const normalizableTypeMap = (0, utils_1.getNormalizableTypeMap)(schema);
|
|
153
211
|
const createLink = importGraphQLArtifact(constants_2.TYPE_UTIL_IDENTIFIER, constants_2.CREATE_LINK_IDENTIFIER);
|
|
154
212
|
const graphqlStateInterface = importGraphQLArtifact(constants_2.TYPE_UTIL_IDENTIFIER, constants_2.GRAPHQL_STATE_INTERFACE_IDENTIFIER);
|
|
155
213
|
const keyPrefix = importAdapterUtil('keyPrefix');
|
|
156
|
-
const ttl = (0, utils_2.isTypeExtensionDefined)(
|
|
214
|
+
const ttl = (0, utils_2.isTypeExtensionDefined)(typeNameToExtensions, graphqlTypeName, 'ttl')
|
|
157
215
|
? 'TTL'
|
|
158
216
|
: importGraphQLArtifact(constants_2.TYPE_UTIL_IDENTIFIER, 'TTL');
|
|
159
|
-
const astNodeParamType = ((_a = schema.getQueryType()) === null || _a === void 0 ? void 0 : _a.name) ===
|
|
217
|
+
const astNodeParamType = ((_a = schema.getQueryType()) === null || _a === void 0 ? void 0 : _a.name) === graphqlTypeName
|
|
160
218
|
? constants_1.LUVIO_GRAPHQL_OPERATION_DEFINITION_NODE_IMPORT
|
|
161
219
|
: constants_1.LUVIO_GRAPHQL_FIELD_NODE_IMPORT;
|
|
220
|
+
const converToRaml = generateRamlIngestDelegation(graphqlDsl, graphqlTypeName, importContext, def, modelInfo, graphqlStateInterface);
|
|
162
221
|
return (0, deindent_1.default) `
|
|
222
|
+
|
|
223
|
+
${converToRaml}
|
|
224
|
+
|
|
163
225
|
export function ingest(astNode: ${astNodeParamType}, state: ${graphqlStateInterface}<${interface_1.PARTIAL_INTERFACE_IDENTIFIER}>) {
|
|
164
|
-
const { path, ${constants_1.LUVIO_IDENTIFIER}, ${constants_1.LUVIO_STORE_IDENTIFIER} } = state;
|
|
226
|
+
const { path, ${constants_1.LUVIO_IDENTIFIER}, ${constants_1.LUVIO_STORE_IDENTIFIER}, ${constants_2.TIMESTAMP_IDENTIFIER} } = state;
|
|
165
227
|
const data = state.data;
|
|
166
228
|
const key = ${constants_2.KEY_BUILDER_IDENTIFIER}(path, data);
|
|
167
|
-
|
|
168
|
-
// normalize fields
|
|
169
229
|
const dataSink = <PartialInterface>({});
|
|
170
|
-
|
|
230
|
+
|
|
231
|
+
// normalize fields
|
|
232
|
+
${generateObjectTypeIngest(graphqlDsl, graphqlTypeName, importContext, def, normalizableTypeMap)}
|
|
171
233
|
|
|
172
234
|
// merge existing cache data and new request response data
|
|
173
|
-
let mergedData
|
|
235
|
+
let mergedData;
|
|
174
236
|
const existingData = ${constants_1.LUVIO_STORE_IDENTIFIER}.readEntry<${interface_1.PARTIAL_INTERFACE_IDENTIFIER}>(key);
|
|
175
237
|
if (existingData !== undefined && existingData.__type !== "error") {
|
|
176
238
|
mergedData = mergeData(existingData as PartialInterface, dataSink);
|
|
177
239
|
}
|
|
178
240
|
else {
|
|
179
|
-
mergedData = dataSink;
|
|
241
|
+
mergedData = {data: dataSink};
|
|
180
242
|
}
|
|
181
243
|
|
|
244
|
+
${converToRaml === ''
|
|
245
|
+
? ''
|
|
246
|
+
: (0, deindent_1.default) `
|
|
247
|
+
// partially ingest with RAML
|
|
248
|
+
const ramlTypeRef = convertGraphQLToRaml(state);
|
|
249
|
+
if (ramlTypeRef !== undefined) {
|
|
250
|
+
mergedData["__link"] = ramlTypeRef;
|
|
251
|
+
}`}
|
|
252
|
+
|
|
182
253
|
// publish
|
|
183
254
|
${constants_1.LUVIO_IDENTIFIER}.storePublish(key, mergedData);
|
|
184
255
|
|
|
185
256
|
const storeMetadataParams = {
|
|
186
257
|
ttl: ${ttl},
|
|
187
258
|
namespace: ${keyPrefix},
|
|
188
|
-
representationName: "${
|
|
259
|
+
representationName: "${graphqlTypeName}",
|
|
189
260
|
};
|
|
190
261
|
${constants_1.LUVIO_IDENTIFIER}.publishStoreMetadata(key, storeMetadataParams);
|
|
191
262
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/ingest.ts"],"names":[],"mappings":";;;;;;AAOA,uEAA+C;AAE/C,sDAMgC;AAEhC,oCAAmE;AACnE,
|
|
1
|
+
{"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/ingest.ts"],"names":[],"mappings":";;;;;;AAOA,uEAA+C;AAE/C,sDAMgC;AAEhC,oCAAmE;AACnE,mCAKiB;AACjB,2CAcqB;AAGrB,2CAA2D;AAC3D,0CAAiD;AAGjD,MAAM,2BAA2B,GAAG,iBAAiB,CAAC;AAEtD,SAAgB,eAAe,CAC3B,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,yBAAyB,CAAC,SAAS,CAAC,CAAC;KAC/C;IAED,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,eAAe,EAAE,kCAAsB,CAAC,CAAC;IAE5F,MAAM,oBAAoB,GAAG,GAAG,SAAS,OAAO,CAAC;IACjD,OAAO,IAAA,kBAAQ,EAAA;gBACH,SAAS;oBACL,oBAAoB;;;;oCAIJ,gCAAoB;6CACX,gCAAoB;;wBAEzC,iCAAqB;;uBAEtB,gCAAoB,OAAO,oBAAoB;kBACpD,sCAA0B;kBAC1B,oBAAoB;;;;KAIjC,CAAC;AACN,CAAC;AApCD,0CAoCC;AAED,SAAgB,cAAc,CAC1B,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;IAC5D,MAAM,oBAAoB,GAAG,GAAG,SAAS,SAAS,CAAC;IACnD,MAAM,cAAc,GAAG,QAAQ,gCAAoB,GAAG,CAAC;IAEvD,yBAAyB;IACzB,IAAI,cAAc,KAAK,SAAS,EAAE;QAC9B,OAAO,yBAAyB,CAAC,SAAS,CAAC,CAAC;KAC/C;IAED,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,eAAe,EAAE,kCAAsB,CAAC,CAAC;IAE5F,OAAO,IAAA,kBAAQ,EAAA;gBACH,SAAS;oBACL,oBAAoB,KAAK,mCAAuB;oBAChD,kBAAkB,oBAAoB,gCAAoB;mCAC3C,cAAc;+BAClB,cAAc;;;;;;;oCAOT,kBAAkB;;;;kBAIpC,oBAAoB,SAAS,oBAAoB;sBAC7C,sCAA0B;;;;uBAIzB,gCAAoB,OAAO,oBAAoB;;;KAGjE,CAAC;AACN,CAAC;AA9CD,wCA8CC;AAED,SAAS,yBAAyB,CAAC,SAAiB;IAChD,OAAO,IAAA,kBAAQ,EAAA;gBACH,SAAS;uBACF,gCAAoB,OAAO,iCAAqB;;;KAGlE,CAAC;AACN,CAAC;AAED,SAAgB,UAAU,CACtB,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,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;QAChF,KAAK,UAAU;YACX,OAAO,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;QAC/E;YACI,OAAO,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;KACnF;AACL,CAAC;AAlBD,gCAkBC;AAED,SAAS,wBAAwB,CAC7B,UAA2B,EAC3B,eAAuB,EACvB,aAA4B,EAC5B,GAA6B,EAC7B,mBAAsC;IAEtC,MAAM,EAAE,oBAAoB,EAAE,GAAG,UAAU,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAA,uBAAe,EAAC,GAAG,CAAC,CAAC;IACpC,MAAM,qBAAqB,GAAG,MAAM;SAC/B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;SAC3C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACX,gFAAgF;QAChF,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1C,MAAM,aAAa,GAAG,IAAA,wBAAgB,EAClC,oBAAoB,EACpB,eAAe,EACf,gBAAgB,CACnB,CAAC;QACF,IAAI,aAAa,KAAK,SAAS,EAAE;YAC7B,OAAO,EAAE,CAAC;SACb;QACD,OAAO,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEP,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GAAa;QAC/B,2BAA2B,CAAC,aAAa,CAAC;QAC1C,0BAA0B,CAAC,aAAa,EAAE,iBAAiB,CAAC;KAC/D,CAAC;IAEF,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,2BAA2B,CAAC,aAA4B;IAC7D,MAAM,wBAAwB,GAAG,aAAa,CAAC,qBAAqB,CAChE,gCAAoB,EACpB,oDAAwC,CAC3C,CAAC;IACF,OAAO,IAAA,kBAAQ,EAAA;gBACH,2BAA2B,KAAK,2CAA+B;;cAEjE,wBAAwB;;KAEjC,CAAC;AACN,CAAC;AAED,SAAS,0BAA0B,CAC/B,aAA4B,EAC5B,0BAAkC;IAElC,MAAM,uBAAuB,GAAG,aAAa,CAAC,qBAAqB,CAC/D,gCAAoB,EACpB,0CAA8B,CACjC,CAAC;IACF,MAAM,iBAAiB,GAAG,aAAa,CAAC,qBAAqB,CACzD,gCAAoB,EACpB,mDAAuC,CAC1C,CAAC;IACF,OAAO,IAAA,kBAAQ,EAAA;oBACC,qCAAyB;oBACzB,iCAAqB,WAAW,qCAAyB;oBACzD,sCAA0B,MAAM,uBAAuB,IAAI,qCAAyB,KAAK,2BAA2B;;iBAEvH,sCAA0B;;;oBAGvB,gCAAoB,MAAM,iBAAiB,IAAI,sCAA0B;;sBAEvE,sCAA0B;kBAC9B,0BAA0B;;;KAGvC,CAAC;AACN,CAAC;AAED,SAAS,4BAA4B,CACjC,UAA2B,EAC3B,eAAuB,EACvB,aAA4B,EAC5B,GAA6B,EAC7B,SAAoB,EACpB,qBAA6B;IAE7B,2CAA2C;IAC3C,MAAM,EAAE,oBAAoB,EAAE,GAAG,UAAU,CAAC;IAC5C,MAAM,EAAE,kBAAkB,EAAE,GAAG,aAAa,CAAC;IAC7C,MAAM,YAAY,GAAG,IAAA,uBAAe,EAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;IAC5E,IAAI,YAAY,KAAK,SAAS,EAAE;QAC5B,OAAO,EAAE,CAAC;KACb;IACD,MAAM,UAAU,GAAG,IAAA,2BAAmB,EAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAChE,IAAI,UAAU,KAAK,SAAS,EAAE;QAC1B,OAAO,EAAE,CAAC;KACb;IACD,MAAM,UAAU,GAAG,kBAAkB,CAAC,UAAU,EAAE,kCAAsB,CAAC,CAAC;IAE1E,mBAAmB;IACnB,MAAM,aAAa,GAAG,IAAA,uBAAe,EAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,oBAAoB,GAAG,aAAa;SACrC,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,KAAK,SAAS,CAAC;SACzD,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;QAClB,MAAM,gBAAgB,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;QACjD,MAAM,aAAa,GAAG,IAAA,wBAAgB,EAClC,oBAAoB,EACpB,eAAe,EACf,gBAAgB,CACnB,CAAC;QACF,IAAI,aAAa,KAAK,SAAS,EAAE;YAC7B,OAAO,EAAE,CAAC;SACb;QACD,OAAO,IAAA,kBAAQ,EAAA;uCACY,gBAAgB;gCACvB,aAAa,cAAc,gBAAgB;;aAE9D,CAAC;IACN,CAAC,CAAC,CAAC;IAEP,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE;QACnC,OAAO,EAAE,CAAC;KACb;IACD,OAAO,IAAA,kBAAQ,EAAA;uDACoC,qBAAqB,IAAI,wCAA4B;kCAC1E,4BAAgB,KAAK,kCAAsB,KAAK,gCAAoB;;;;kBAIpF,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;kCAOf,UAAU,oBAAoB,4BAAgB,KAAK,kCAAsB,KAAK,gCAAoB;;;KAG/H,CAAC;AACN,CAAC;AAED,SAAgB,cAAc,CAC1B,UAA2B,EAC3B,eAAuB,EACvB,GAA6B,EAC7B,aAA4B,EAC5B,SAAiC,EACjC,SAAoB;;IAEpB,MAAM,EAAE,MAAM,EAAE,oBAAoB,EAAE,GAAG,UAAU,CAAC;IACpD,MAAM,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,GAAG,aAAa,CAAC;IACnE,MAAM,mBAAmB,GAAG,IAAA,8BAAsB,EAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,qBAAqB,CAAC,gCAAoB,EAAE,kCAAsB,CAAC,CAAC;IACvF,MAAM,qBAAqB,GAAG,qBAAqB,CAC/C,gCAAoB,EACpB,8CAAkC,CACrC,CAAC;IACF,MAAM,SAAS,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,IAAA,8BAAsB,EAAC,oBAAoB,EAAE,eAAe,EAAE,KAAK,CAAC;QAC5E,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,qBAAqB,CAAC,gCAAoB,EAAE,KAAK,CAAC,CAAC;IACzD,MAAM,gBAAgB,GAClB,CAAA,MAAA,MAAM,CAAC,YAAY,EAAE,0CAAE,IAAI,MAAK,eAAe;QAC3C,CAAC,CAAC,0DAA8C;QAChD,CAAC,CAAC,2CAA+B,CAAC;IAC1C,MAAM,YAAY,GAAG,4BAA4B,CAC7C,UAAU,EACV,eAAe,EACf,aAAa,EACb,GAAG,EACH,SAAS,EACT,qBAAqB,CACxB,CAAC;IAEF,OAAO,IAAA,kBAAQ,EAAA;;UAET,YAAY;;0CAEoB,gBAAgB,YAAY,qBAAqB,IAAI,wCAA4B;4BAC/F,4BAAgB,KAAK,kCAAsB,KAAK,gCAAoB;;0BAEtE,kCAAsB;;;;cAIlC,wBAAwB,CACtB,UAAU,EACV,eAAe,EACf,aAAa,EACb,GAAG,EACH,mBAAmB,CACtB;;;;mCAIsB,kCAAsB,cAAc,wCAA4B;;;;;;;;cASnF,YAAY,KAAK,EAAE;QACf,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,IAAA,kBAAQ,EAAA;;;;;cAMlB;;;cAGE,4BAAgB;;;uBAGP,GAAG;6BACG,SAAS;uCACC,eAAe;;cAExC,4BAAgB;;qBAET,UAAU;;KAE1B,CAAC;AACN,CAAC;AAtFD,wCAsFC"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import type { ObjectTypeDefinitionNode, TypeNode } from '@luvio/graphql-parser';
|
|
1
|
+
import type { FieldDefinitionNode, ObjectTypeDefinitionNode, TypeNode } from '@luvio/graphql-parser';
|
|
2
2
|
import type { GraphQLCodegenMetadata } from '../source-printer/graphql-source-printer';
|
|
3
3
|
import type { ImportContext } from '../../../utils/imports';
|
|
4
4
|
import type { LuvioGraphQLDSL } from '../../../intermediate/graphql';
|
|
5
5
|
export declare const TYPE_INTERFACE_IDENTIFIER = "Interface";
|
|
6
|
+
export declare const TYPE_NAME_IDENTIFIER = "__typename";
|
|
6
7
|
export declare const MINIMUM_INTERFACE_IDENTIFIER: string;
|
|
7
8
|
export declare const PARTIAL_INTERFACE_IDENTIFIER: string;
|
|
8
9
|
export declare function generateTypeReference(type: TypeNode, importContext: ImportContext, scalarToPrimitiveMap: Record<string, string>, state: {
|
|
9
10
|
required: boolean;
|
|
10
11
|
array: boolean;
|
|
11
12
|
}): string;
|
|
13
|
+
export declare function getMinimumFields(idNode: FieldDefinitionNode | undefined): string[];
|
|
12
14
|
export declare function generateInterfaces(graphqlDsl: LuvioGraphQLDSL, graphqlTypeName: string, def: ObjectTypeDefinitionNode, importContext: ImportContext, metadata: GraphQLCodegenMetadata): string;
|
|
@@ -3,11 +3,12 @@ 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.generateTypeReference = exports.PARTIAL_INTERFACE_IDENTIFIER = exports.MINIMUM_INTERFACE_IDENTIFIER = exports.TYPE_INTERFACE_IDENTIFIER = void 0;
|
|
6
|
+
exports.generateInterfaces = exports.getMinimumFields = 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
10
|
exports.TYPE_INTERFACE_IDENTIFIER = 'Interface';
|
|
11
|
+
exports.TYPE_NAME_IDENTIFIER = '__typename';
|
|
11
12
|
exports.MINIMUM_INTERFACE_IDENTIFIER = `Minimum${exports.TYPE_INTERFACE_IDENTIFIER}`;
|
|
12
13
|
exports.PARTIAL_INTERFACE_IDENTIFIER = `Partial${exports.TYPE_INTERFACE_IDENTIFIER}`;
|
|
13
14
|
function generateNamedTypeReference(type, importContext, scalarToPrimitiveMap) {
|
|
@@ -42,6 +43,14 @@ function generateTypeReference(type, importContext, scalarToPrimitiveMap, state)
|
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
exports.generateTypeReference = generateTypeReference;
|
|
46
|
+
function getMinimumFields(idNode) {
|
|
47
|
+
const minimumFields = [exports.TYPE_NAME_IDENTIFIER];
|
|
48
|
+
if (idNode !== undefined) {
|
|
49
|
+
minimumFields.push(idNode.name.value);
|
|
50
|
+
}
|
|
51
|
+
return minimumFields;
|
|
52
|
+
}
|
|
53
|
+
exports.getMinimumFields = getMinimumFields;
|
|
45
54
|
// Interface contains all fields of a GraphQL type
|
|
46
55
|
function generateInterface(def, importContext, scalarToPrimitiveMap) {
|
|
47
56
|
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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"}
|
|
@@ -8,8 +8,10 @@ const interface_1 = require("./interface");
|
|
|
8
8
|
const deindent_1 = __importDefault(require("../../../utils/deindent"));
|
|
9
9
|
function generateMerge(importContext) {
|
|
10
10
|
return (0, deindent_1.default) `
|
|
11
|
-
export function mergeData(existingData: ${interface_1.PARTIAL_INTERFACE_IDENTIFIER}, newData: ${interface_1.PARTIAL_INTERFACE_IDENTIFIER})
|
|
12
|
-
return
|
|
11
|
+
export function mergeData(existingData: ${interface_1.PARTIAL_INTERFACE_IDENTIFIER}, newData: ${interface_1.PARTIAL_INTERFACE_IDENTIFIER}) {
|
|
12
|
+
return {
|
|
13
|
+
data: ${importContext.importTypeUtil('ObjectAssign')}(existingData["data"], newData),
|
|
14
|
+
}
|
|
13
15
|
}
|
|
14
16
|
`;
|
|
15
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/merge.ts"],"names":[],"mappings":";;;;;;AAAA,2CAA2D;AAC3D,uEAA+C;AAG/C,SAAgB,aAAa,CAAC,aAA4B;IACtD,OAAO,IAAA,kBAAQ,EAAA;kDAC+B,wCAA4B,cAAc,wCAA4B,
|
|
1
|
+
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/merge.ts"],"names":[],"mappings":";;;;;;AAAA,2CAA2D;AAC3D,uEAA+C;AAG/C,SAAgB,aAAa,CAAC,aAA4B;IACtD,OAAO,IAAA,kBAAQ,EAAA;kDAC+B,wCAA4B,cAAc,wCAA4B;;wBAEhG,aAAa,CAAC,cAAc,CAChC,cAAc,CACjB;;;KAGZ,CAAC;AACN,CAAC;AAVD,sCAUC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
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): string;
|
|
6
|
+
export declare function generateQueryTransformerForQueryReturnTypes(schema: GraphQLSchema, importContext: ImportContext): string;
|
|
7
|
+
export declare function generateGetMinimumFields(isQueryType: boolean, def: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode): string;
|
|
8
|
+
export declare function generate(graphqlDsl: LuvioGraphQLDSL, typeName: string, def: ObjectTypeDefinitionNode, importContext: ImportContext, _metadata: GraphQLCodegenMetadata): string;
|