@luvio/compiler 0.97.0 → 0.97.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/adapter/create-resource-params.js +21 -6
- package/dist/codegen/adapter/create-resource-params.js.map +1 -1
- package/dist/codegen/adapter/graphql/adapter-config-transformer.js +8 -2
- package/dist/codegen/adapter/graphql/adapter-config-transformer.js.map +1 -1
- package/dist/codegen/adapter/graphql/adapter-fragment.d.ts +4 -0
- package/dist/codegen/adapter/graphql/adapter-fragment.js +24 -0
- package/dist/codegen/adapter/graphql/adapter-fragment.js.map +1 -0
- package/dist/codegen/adapter/graphql/adapter-resource-error.d.ts +4 -0
- package/dist/codegen/adapter/graphql/adapter-resource-error.js +33 -0
- package/dist/codegen/adapter/graphql/adapter-resource-error.js.map +1 -0
- package/dist/codegen/adapter/graphql/adapter-resource-success.d.ts +4 -0
- package/dist/codegen/adapter/graphql/adapter-resource-success.js +35 -0
- package/dist/codegen/adapter/graphql/adapter-resource-success.js.map +1 -0
- package/dist/codegen/adapter/graphql/index.js +3 -3
- package/dist/codegen/adapter/graphql/index.js.map +1 -1
- package/dist/codegen/adapter/util.d.ts +0 -1
- package/dist/codegen/adapter/util.js +1 -34
- package/dist/codegen/adapter/util.js.map +1 -1
- package/dist/codegen/graphql/type/constants.d.ts +2 -0
- package/dist/codegen/graphql/type/constants.js +3 -1
- package/dist/codegen/graphql/type/constants.js.map +1 -1
- package/dist/codegen/graphql/type/convert.d.ts +6 -0
- package/dist/codegen/graphql/type/convert.js +174 -0
- package/dist/codegen/graphql/type/convert.js.map +1 -0
- package/dist/codegen/graphql/type/generateTypeUtil.js +4 -4
- package/dist/codegen/graphql/type/generateTypeUtil.js.map +1 -1
- package/dist/codegen/graphql/type/index.js +2 -0
- package/dist/codegen/graphql/type/index.js.map +1 -1
- package/dist/codegen/graphql/type/ingest.d.ts +3 -3
- package/dist/codegen/graphql/type/ingest.js +72 -110
- package/dist/codegen/graphql/type/ingest.js.map +1 -1
- package/dist/codegen/graphql/type/key.js +4 -4
- package/dist/codegen/graphql/type/key.js.map +1 -1
- package/dist/codegen/graphql/type/select.d.ts +1 -1
- package/dist/codegen/graphql/type/select.js +112 -70
- package/dist/codegen/graphql/type/select.js.map +1 -1
- package/dist/codegen/graphql/type/type-from-field.d.ts +6 -0
- package/dist/codegen/graphql/type/type-from-field.js +66 -0
- package/dist/codegen/graphql/type/type-from-field.js.map +1 -0
- package/dist/codegen/graphql/utils/types.js +1 -1
- package/dist/codegen/resource/graphql/ingest-error.js +4 -1
- package/dist/codegen/resource/graphql/ingest-error.js.map +1 -1
- package/dist/codegen/resource/graphql/ingest-success.js +5 -2
- package/dist/codegen/resource/graphql/ingest-success.js.map +1 -1
- package/dist/codegen/resource/graphql/key-builder.d.ts +2 -1
- package/dist/codegen/resource/graphql/key-builder.js +10 -2
- package/dist/codegen/resource/graphql/key-builder.js.map +1 -1
- package/dist/codegen/resource/graphql/select.js +6 -5
- package/dist/codegen/resource/graphql/select.js.map +1 -1
- package/dist/codegen/shape/graphql/shape-select.js +2 -2
- package/dist/codegen/shape/shape-utils.js +17 -1
- package/dist/codegen/shape/shape-utils.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
|
@@ -8,57 +8,18 @@ const deindent_1 = __importDefault(require("../../../utils/deindent"));
|
|
|
8
8
|
const constants_1 = require("../../adapter/constants");
|
|
9
9
|
const constants_2 = require("../../shared/constants");
|
|
10
10
|
const constants_3 = require("./constants");
|
|
11
|
-
const utils_1 = require("
|
|
11
|
+
const utils_1 = require("./utils");
|
|
12
12
|
const utils_2 = require("../utils");
|
|
13
13
|
const types_1 = require("../utils/types");
|
|
14
14
|
const interface_1 = require("./interface");
|
|
15
15
|
const util_1 = require("../directive/util");
|
|
16
|
-
|
|
17
|
-
if (typeNode.type === null) {
|
|
18
|
-
return '';
|
|
19
|
-
}
|
|
20
|
-
const typeName = (0, utils_1.resolveTypeName)(typeNode);
|
|
21
|
-
const isScalar = normalizableTypeMap[typeName] === undefined;
|
|
22
|
-
if (isScalar) {
|
|
23
|
-
return (0, deindent_1.default) `
|
|
24
|
-
if (${constants_3.FIELD_DATA_IDENTIFIER} !== undefined) {
|
|
25
|
-
reader.assignNonScalar(${constants_3.SINK_IDENTIFIER}, ${constants_3.REQUESTED_FIELD_NAME_IDENTIFIER}, ${constants_3.FIELD_DATA_IDENTIFIER});
|
|
26
|
-
}
|
|
27
|
-
`;
|
|
28
|
-
}
|
|
29
|
-
const identifier = `data__${field.name.value}`;
|
|
30
|
-
const resolvedLinkIdentifier = `${identifier}ResolvedLink`;
|
|
31
|
-
const namedTypeSelect = importContext.importGraphQLArtifact('types', typeName, 'select');
|
|
32
|
-
const namedTypePartialInterface = importContext.importGraphQLArtifact('types', typeName, 'PartialInterface');
|
|
33
|
-
return (0, deindent_1.default) `
|
|
34
|
-
const arraySink: ${namedTypePartialInterface}[] = [];
|
|
35
|
-
for(let i = 0, len = ${constants_3.FIELD_DATA_IDENTIFIER}.length; i < len; i += 1) {
|
|
36
|
-
reader.enterPath(i);
|
|
37
|
-
const ${resolvedLinkIdentifier} = reader.read({
|
|
38
|
-
recordId: ${constants_3.FIELD_DATA_IDENTIFIER}[i].__ref,
|
|
39
|
-
node: {
|
|
40
|
-
kind: 'Fragment',
|
|
41
|
-
private: [],
|
|
42
|
-
opaque: true
|
|
43
|
-
},
|
|
44
|
-
variables: {}
|
|
45
|
-
});
|
|
46
|
-
if (${resolvedLinkIdentifier}.data === undefined) {
|
|
47
|
-
continue;
|
|
48
|
-
}
|
|
49
|
-
const selected = ${namedTypeSelect}(sel, variables, fragments)(${resolvedLinkIdentifier}.data as ${namedTypePartialInterface}, reader);
|
|
50
|
-
reader.assignNonScalar(arraySink, i, selected);
|
|
51
|
-
reader.exitPath();
|
|
52
|
-
}
|
|
53
|
-
reader.assignNonScalar(${constants_3.SINK_IDENTIFIER}, ${constants_3.REQUESTED_FIELD_NAME_IDENTIFIER}, arraySink);
|
|
54
|
-
`;
|
|
55
|
-
}
|
|
16
|
+
const type_from_field_1 = require("./type-from-field");
|
|
56
17
|
function selectNamedType(field, typeNode, importContext, normalizableTypeMap) {
|
|
57
18
|
const fieldName = field.name.value;
|
|
58
19
|
const identifier = fieldName;
|
|
59
20
|
const resolvedLinkIdentifier = `${identifier}ResolvedLink`;
|
|
60
|
-
const
|
|
61
|
-
const isScalar = normalizableTypeMap[
|
|
21
|
+
const graphqlTypeName = typeNode.name.value;
|
|
22
|
+
const isScalar = normalizableTypeMap[graphqlTypeName] === undefined;
|
|
62
23
|
// non-normalizable
|
|
63
24
|
if (isScalar) {
|
|
64
25
|
return generateSelectScalar();
|
|
@@ -71,30 +32,69 @@ function selectNamedType(field, typeNode, importContext, normalizableTypeMap) {
|
|
|
71
32
|
node: {
|
|
72
33
|
kind: 'Fragment',
|
|
73
34
|
private: [],
|
|
74
|
-
opaque: true
|
|
35
|
+
opaque: true,
|
|
75
36
|
},
|
|
76
37
|
variables: {}
|
|
77
38
|
});
|
|
78
39
|
if (${resolvedLinkIdentifier}.data !== undefined) {
|
|
79
40
|
const result = ${namedTypeSelect}(sel, variables, fragments)(${resolvedLinkIdentifier}.data as ${namedTypePartialInterface}, reader);
|
|
80
|
-
reader.assignNonScalar(${constants_3.SINK_IDENTIFIER},
|
|
41
|
+
reader.assignNonScalar(${constants_3.SINK_IDENTIFIER}, key, result);
|
|
42
|
+
} else {
|
|
43
|
+
reader.markMissing();
|
|
81
44
|
}
|
|
82
45
|
`;
|
|
83
46
|
}
|
|
84
47
|
function selectType(field, typeNode, importContext, normalizableTypeMap) {
|
|
85
48
|
switch (typeNode.kind) {
|
|
86
|
-
case '
|
|
87
|
-
return selectNamedType(field, typeNode, importContext, normalizableTypeMap);
|
|
88
|
-
}
|
|
49
|
+
case 'ListType':
|
|
89
50
|
case 'NonNullType': {
|
|
90
51
|
return selectType(field, typeNode.type, importContext, normalizableTypeMap);
|
|
91
52
|
}
|
|
53
|
+
case 'NamedType': {
|
|
54
|
+
return selectNamedType(field, typeNode, importContext, normalizableTypeMap);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function generateGetMappedDataByType(graphqlField, typeNode, ramlFieldName, normalizableTypeMap) {
|
|
59
|
+
if (graphqlField === undefined) {
|
|
60
|
+
return '';
|
|
61
|
+
}
|
|
62
|
+
switch (typeNode.kind) {
|
|
63
|
+
case 'NamedType':
|
|
92
64
|
case 'ListType': {
|
|
93
|
-
|
|
65
|
+
// only select from linked data if the field is scalar and is mapped to a RAML field
|
|
66
|
+
const graphqlFieldName = graphqlField.name.value;
|
|
67
|
+
const graphqlTypeName = (0, types_1.resolveTypeName)(typeNode);
|
|
68
|
+
const isScalar = normalizableTypeMap[graphqlTypeName] === undefined;
|
|
69
|
+
if (isScalar && ramlFieldName !== undefined) {
|
|
70
|
+
return (0, deindent_1.default) `
|
|
71
|
+
case "${graphqlFieldName}": {
|
|
72
|
+
const ${constants_3.FIELD_KEY_IDENTIFIER} = "${ramlFieldName}";
|
|
73
|
+
return source.__linkedData.data[${constants_3.FIELD_KEY_IDENTIFIER}];
|
|
74
|
+
}
|
|
75
|
+
`;
|
|
76
|
+
}
|
|
77
|
+
return '';
|
|
78
|
+
}
|
|
79
|
+
default: {
|
|
80
|
+
return generateGetMappedDataByType(graphqlField, typeNode.type, ramlFieldName, normalizableTypeMap);
|
|
94
81
|
}
|
|
95
82
|
}
|
|
96
83
|
}
|
|
97
|
-
function
|
|
84
|
+
function generateDataMapping(graphqlDsl, graphqlTypeName, def, normalizableTypeMap) {
|
|
85
|
+
const graphqlFields = (0, types_1.getObjectFields)(def);
|
|
86
|
+
return graphqlFields
|
|
87
|
+
.filter((graphqlField) => graphqlField.type !== undefined)
|
|
88
|
+
.map((graphqlField) => {
|
|
89
|
+
const { typeNameToExtensions } = graphqlDsl;
|
|
90
|
+
const graphqlFieldName = graphqlField.name.value;
|
|
91
|
+
const ramlFieldName = (0, utils_1.getRamlFieldName)(typeNameToExtensions, graphqlTypeName, graphqlFieldName);
|
|
92
|
+
return generateGetMappedDataByType(graphqlField, graphqlField.type, ramlFieldName, normalizableTypeMap);
|
|
93
|
+
})
|
|
94
|
+
.filter((fieldIngestStatement) => fieldIngestStatement !== '')
|
|
95
|
+
.join('\n');
|
|
96
|
+
}
|
|
97
|
+
function generateSelect(graphqlDsl, graphqlTypeName, def, importContext, metadata) {
|
|
98
98
|
var _a;
|
|
99
99
|
const { schema } = graphqlDsl;
|
|
100
100
|
const type = schema.getType(def.name.value);
|
|
@@ -102,42 +102,73 @@ function generateSelect(graphqlDsl, typeName, def, importContext, _metadata) {
|
|
|
102
102
|
return '';
|
|
103
103
|
}
|
|
104
104
|
const normalizableTypeMap = (0, utils_2.getNormalizableTypeMap)(schema);
|
|
105
|
-
|
|
105
|
+
// TODO: Dedupe type statements
|
|
106
|
+
const fieldSelectionByTypeCaseStatements = (0, types_1.getObjectFields)(def)
|
|
106
107
|
.map((field) => {
|
|
107
|
-
const fieldName = field.name.value;
|
|
108
108
|
const type = field.type;
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
}
|
|
112
|
-
const body = selectType(field, field.type, importContext, normalizableTypeMap);
|
|
109
|
+
const typename = (0, type_from_field_1.getTypeName)(type, importContext, metadata.scalarToPrimitiveMap);
|
|
110
|
+
const body = selectType(field, type, importContext, normalizableTypeMap);
|
|
113
111
|
return (0, deindent_1.default) `
|
|
114
|
-
case
|
|
112
|
+
case ${typename}: {
|
|
115
113
|
${body}
|
|
116
114
|
break;
|
|
117
115
|
}
|
|
118
116
|
`;
|
|
119
117
|
})
|
|
120
118
|
.join('\n');
|
|
121
|
-
const astNodeParamType = ((_a = schema.getQueryType()) === null || _a === void 0 ? void 0 : _a.name) ===
|
|
119
|
+
const astNodeParamType = ((_a = schema.getQueryType()) === null || _a === void 0 ? void 0 : _a.name) === graphqlTypeName
|
|
122
120
|
? constants_2.LUVIO_GRAPHQL_OPERATION_DEFINITION_NODE_IMPORT
|
|
123
121
|
: constants_2.LUVIO_GRAPHQL_FIELD_NODE_IMPORT;
|
|
124
122
|
const graphqlVariablesImport = importContext.importGraphQLArtifact('types', constants_3.TYPE_UTIL_IDENTIFIER, constants_3.GRAPHQL_VARIABLES_IDENTIFIER);
|
|
125
123
|
const getFieldKeyImport = importContext.importGraphQLArtifact('types', constants_3.TYPE_UTIL_IDENTIFIER, constants_3.GET_SERIALIZED_KEY_FOR_FIELD_IDENTIFIER);
|
|
126
124
|
const fragmentMapImport = importContext.importGraphQLArtifact('types', constants_3.TYPE_UTIL_IDENTIFIER, constants_3.GRAPHQL_FRAGMENT_MAP_IDENTIFIER);
|
|
127
125
|
return (0, deindent_1.default) `
|
|
126
|
+
export function getFieldData(
|
|
127
|
+
source: ${interface_1.PARTIAL_INTERFACE_IDENTIFIER},
|
|
128
|
+
sel: ${constants_2.LUVIO_GRAPHQL_FIELD_NODE_IMPORT} ,
|
|
129
|
+
variables: ${graphqlVariablesImport}
|
|
130
|
+
) {
|
|
131
|
+
switch(sel.name.value){
|
|
132
|
+
${generateDataMapping(graphqlDsl, graphqlTypeName, def, normalizableTypeMap)}
|
|
133
|
+
default: {
|
|
134
|
+
const ${constants_3.FIELD_KEY_IDENTIFIER} = ${`${getFieldKeyImport}(sel, variables)`};
|
|
135
|
+
return source.data[${constants_3.FIELD_KEY_IDENTIFIER}];
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
function selectType(typename: string, sel: ${constants_2.LUVIO_GRAPHQL_FIELD_NODE_IMPORT}, fieldData: any, reader: ${constants_1.ADAPTER_READER_IMPORT}<any>, key: ${constants_2.LUVIO_SELECTION_PROPERTY_KEY_IMPORT}, sink: any, variables: ${graphqlVariablesImport}, fragments: ${fragmentMapImport}) {
|
|
140
|
+
switch(typename) {
|
|
141
|
+
${fieldSelectionByTypeCaseStatements}
|
|
142
|
+
}
|
|
143
|
+
return sink;
|
|
144
|
+
}
|
|
128
145
|
export function buildSelectionForField(source: ${interface_1.PARTIAL_INTERFACE_IDENTIFIER}, reader: ${constants_1.ADAPTER_READER_IMPORT}<any>, sel: ${constants_2.LUVIO_GRAPHQL_FIELD_NODE_IMPORT} , variables: ${graphqlVariablesImport}, fragments: ${fragmentMapImport} ) {
|
|
129
|
-
|
|
130
|
-
const ${constants_3.
|
|
131
|
-
const ${constants_3.FIELD_KEY_IDENTIFIER} = ${getFieldKeyImport}(sel, variables);
|
|
132
|
-
const ${constants_3.FIELD_DATA_IDENTIFIER} = source.data[${constants_3.FIELD_KEY_IDENTIFIER}];
|
|
146
|
+
const ${constants_3.SINK_IDENTIFIER}: Record<string, any> = {}
|
|
147
|
+
const ${constants_3.FIELD_DATA_IDENTIFIER} = getFieldData(source, sel, variables);
|
|
133
148
|
const ${constants_3.REQUESTED_FIELD_NAME_IDENTIFIER} = sel.alias ? sel.alias.value : sel.name.value;
|
|
134
|
-
|
|
135
|
-
|
|
149
|
+
|
|
150
|
+
if(${constants_3.FIELD_DATA_IDENTIFIER} === undefined) {
|
|
151
|
+
reader.markMissing();
|
|
152
|
+
return;
|
|
136
153
|
}
|
|
154
|
+
|
|
155
|
+
const fieldType = ${constants_3.GET_FIELD_TYPE_IDENTIFIER}(sel);
|
|
156
|
+
if(fieldType.isArray) {
|
|
157
|
+
const arraySink: any[] = [];
|
|
158
|
+
for(let i = 0, len = ${constants_3.FIELD_DATA_IDENTIFIER}.length; i < len; i += 1) {
|
|
159
|
+
reader.enterPath(i);
|
|
160
|
+
selectType(fieldType.typename, sel, ${constants_3.FIELD_DATA_IDENTIFIER}[i], reader, i, arraySink, variables, fragments);
|
|
161
|
+
reader.exitPath();
|
|
162
|
+
}
|
|
163
|
+
reader.assignNonScalar(${constants_3.SINK_IDENTIFIER}, ${constants_3.REQUESTED_FIELD_NAME_IDENTIFIER}, arraySink);
|
|
164
|
+
} else {
|
|
165
|
+
selectType(fieldType.typename, sel, ${constants_3.FIELD_DATA_IDENTIFIER}, reader, ${constants_3.REQUESTED_FIELD_NAME_IDENTIFIER}, ${constants_3.SINK_IDENTIFIER}, variables, fragments);
|
|
166
|
+
}
|
|
167
|
+
|
|
137
168
|
return sink;
|
|
138
169
|
}
|
|
139
170
|
export function buildSelectionForNode(source: ${interface_1.PARTIAL_INTERFACE_IDENTIFIER}, reader: ${constants_1.ADAPTER_READER_IMPORT}<any>, selectionNode: ${constants_2.LUVIO_GRAPHQL_SELECTION_NODE_IMPORT} , variables: ${graphqlVariablesImport}, fragments: ${fragmentMapImport}) {
|
|
140
|
-
const ${constants_3.SINK_IDENTIFIER}: any = {}
|
|
171
|
+
const ${constants_3.SINK_IDENTIFIER}: Record<string, any> = {}
|
|
141
172
|
if(selectionNode.directives) {
|
|
142
173
|
const selectionWithDirectives = ${importContext.importGraphQLArtifact('directives', util_1.DIRECTIVE_UTIL_MODULE_IDENTIFIER, util_1.APPLY_DIRECTIVES_FOR_SELECTION_IDENTIFIER)}(selectionNode, variables);
|
|
143
174
|
if (selectionWithDirectives === undefined) {
|
|
@@ -170,11 +201,24 @@ function generateSelect(graphqlDsl, typeName, def, importContext, _metadata) {
|
|
|
170
201
|
}
|
|
171
202
|
export function select(field: ${astNodeParamType}, variables: ${graphqlVariablesImport}, fragments: ${fragmentMapImport}) {
|
|
172
203
|
return (source: ${interface_1.PARTIAL_INTERFACE_IDENTIFIER}, reader: ${constants_1.ADAPTER_READER_IMPORT}<any>): ${interface_1.PARTIAL_INTERFACE_IDENTIFIER} | undefined => {
|
|
173
|
-
const ${constants_3.SINK_IDENTIFIER}: any = {}
|
|
204
|
+
const ${constants_3.SINK_IDENTIFIER}: Record<string, any> = {};
|
|
205
|
+
|
|
206
|
+
// careful - may need to get the reader fragment from each type in RAML in the future
|
|
207
|
+
if (source.__link !== undefined) {
|
|
208
|
+
source.__linkedData = reader.read({
|
|
209
|
+
recordId: source.__link.__ref,
|
|
210
|
+
node: {
|
|
211
|
+
kind: 'Fragment',
|
|
212
|
+
private: [],
|
|
213
|
+
opaque: true,
|
|
214
|
+
},
|
|
215
|
+
variables: {}
|
|
216
|
+
});
|
|
217
|
+
}
|
|
174
218
|
field.selectionSet?.selections.forEach((sel) => {
|
|
175
219
|
Object.assign(sink, buildSelectionForNode(source, reader, sel, variables, fragments));
|
|
176
220
|
});
|
|
177
|
-
return ${constants_3.SINK_IDENTIFIER};
|
|
221
|
+
return ${constants_3.SINK_IDENTIFIER} as ${interface_1.PARTIAL_INTERFACE_IDENTIFIER};
|
|
178
222
|
}
|
|
179
223
|
}
|
|
180
224
|
`;
|
|
@@ -182,9 +226,7 @@ function generateSelect(graphqlDsl, typeName, def, importContext, _metadata) {
|
|
|
182
226
|
exports.generateSelect = generateSelect;
|
|
183
227
|
function generateSelectScalar() {
|
|
184
228
|
return (0, deindent_1.default) `
|
|
185
|
-
|
|
186
|
-
reader.assignScalar(${constants_3.REQUESTED_FIELD_NAME_IDENTIFIER}, ${constants_3.SINK_IDENTIFIER}, ${constants_3.FIELD_DATA_IDENTIFIER});
|
|
187
|
-
}
|
|
229
|
+
reader.assignScalar(key, ${constants_3.SINK_IDENTIFIER}, ${constants_3.FIELD_DATA_IDENTIFIER});
|
|
188
230
|
`;
|
|
189
231
|
}
|
|
190
232
|
//# 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;
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/select.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ObjectTypeDefinitionNode, TypeNode } from '@luvio/graphql-parser';
|
|
2
|
+
import type { LuvioGraphQLDSL } from '../../../intermediate/graphql';
|
|
3
|
+
import type { ImportContext } from '../../../utils/imports';
|
|
4
|
+
import type { GraphQLCodegenMetadata } from '../source-printer';
|
|
5
|
+
export declare function generateGetFieldType(graphqlDsl: LuvioGraphQLDSL, def: ObjectTypeDefinitionNode, importContext: ImportContext, metadata: GraphQLCodegenMetadata): string;
|
|
6
|
+
export declare function getTypeName(type: TypeNode, importContext: ImportContext, scalarToPrimitiveMap: Record<string, string>): string;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTypeName = exports.generateGetFieldType = void 0;
|
|
4
|
+
const constants_1 = require("../../shared/constants");
|
|
5
|
+
const types_1 = require("../utils/types");
|
|
6
|
+
const constants_2 = require("./constants");
|
|
7
|
+
function generateGetFieldType(graphqlDsl, def, importContext, metadata) {
|
|
8
|
+
const { schema } = graphqlDsl;
|
|
9
|
+
const type = schema.getType(def.name.value);
|
|
10
|
+
if (!type) {
|
|
11
|
+
return '';
|
|
12
|
+
}
|
|
13
|
+
const fieldCaseStatements = (0, types_1.getObjectFields)(def)
|
|
14
|
+
.map((field) => {
|
|
15
|
+
const fieldName = field.name.value;
|
|
16
|
+
const type = field.type;
|
|
17
|
+
const isArrayAsString = isListType(type) ? 'true' : 'false';
|
|
18
|
+
const typeName = getTypeName(type, importContext, metadata.scalarToPrimitiveMap);
|
|
19
|
+
return `
|
|
20
|
+
case '${fieldName}': {
|
|
21
|
+
return {
|
|
22
|
+
isArray: ${isArrayAsString},
|
|
23
|
+
typename: ${typeName}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
`;
|
|
27
|
+
})
|
|
28
|
+
.join('\n');
|
|
29
|
+
return `export function ${constants_2.GET_FIELD_TYPE_IDENTIFIER}(field: ${constants_1.LUVIO_GRAPHQL_FIELD_NODE_IMPORT}): { isArray: boolean, typename: string } {
|
|
30
|
+
switch(field.name.value) {
|
|
31
|
+
${fieldCaseStatements}
|
|
32
|
+
default:
|
|
33
|
+
throw new Error(\`No type found for \${field.name.value}\`)
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
`;
|
|
37
|
+
}
|
|
38
|
+
exports.generateGetFieldType = generateGetFieldType;
|
|
39
|
+
function isListType(type) {
|
|
40
|
+
switch (type.kind) {
|
|
41
|
+
case 'ListType':
|
|
42
|
+
return true;
|
|
43
|
+
case 'NamedType':
|
|
44
|
+
return false;
|
|
45
|
+
case 'NonNullType':
|
|
46
|
+
return isListType(type.type);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function getTypeName(type, importContext, scalarToPrimitiveMap) {
|
|
50
|
+
switch (type.kind) {
|
|
51
|
+
case 'ListType':
|
|
52
|
+
case 'NonNullType':
|
|
53
|
+
return getTypeName(type.type, importContext, scalarToPrimitiveMap);
|
|
54
|
+
case 'NamedType':
|
|
55
|
+
return generateNamedTypeReference(type, importContext, scalarToPrimitiveMap);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.getTypeName = getTypeName;
|
|
59
|
+
function generateNamedTypeReference(type, importContext, scalarToPrimitiveMap) {
|
|
60
|
+
const typeName = type.name.value;
|
|
61
|
+
if (scalarToPrimitiveMap[typeName] !== undefined) {
|
|
62
|
+
return `'${scalarToPrimitiveMap[typeName]}'`;
|
|
63
|
+
}
|
|
64
|
+
return importContext.importGraphQLArtifact('types', typeName, 'name');
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=type-from-field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-from-field.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/type-from-field.ts"],"names":[],"mappings":";;;AAGA,sDAAyE;AAEzE,0CAAiD;AACjD,2CAAwD;AAExD,SAAgB,oBAAoB,CAChC,UAA2B,EAC3B,GAA6B,EAC7B,aAA4B,EAC5B,QAAgC;IAEhC,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,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QAEjF,OAAO;wBACK,SAAS;;mCAEE,eAAe;oCACd,QAAQ;;;aAG/B,CAAC;IACN,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhB,OAAO,mBAAmB,qCAAyB,WAAW,2CAA+B;;kBAE/E,mBAAmB;;;;;SAK5B,CAAC;AACV,CAAC;AAtCD,oDAsCC;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;AAED,SAAgB,WAAW,CACvB,IAAc,EACd,aAA4B,EAC5B,oBAA4C;IAE5C,QAAQ,IAAI,CAAC,IAAI,EAAE;QACf,KAAK,UAAU,CAAC;QAChB,KAAK,aAAa;YACd,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC;QACvE,KAAK,WAAW;YACZ,OAAO,0BAA0B,CAAC,IAAI,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC;KACpF;AACL,CAAC;AAZD,kCAYC;AACD,SAAS,0BAA0B,CAC/B,IAAmB,EACnB,aAA4B,EAC5B,oBAA4C;IAE5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IAEjC,IAAI,oBAAoB,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE;QAC9C,OAAO,IAAI,oBAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC;KAChD;IAED,OAAO,aAAa,CAAC,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -9,6 +9,7 @@ const constants_1 = require("../../adapter/constants");
|
|
|
9
9
|
const constants_2 = require("../../shared/constants");
|
|
10
10
|
const key_builder_1 = require("../key-builder");
|
|
11
11
|
const resource_params_1 = require("./resource-params");
|
|
12
|
+
const util_1 = require("../../adapter/util");
|
|
12
13
|
const RESOURCE_PARAMS_IDENTIFIER = 'params';
|
|
13
14
|
const SNAPSHOT_REFRESH_IDENTIFIER = 'snapshotRefresh';
|
|
14
15
|
const KEY_IDENTIFIER = 'key';
|
|
@@ -50,8 +51,10 @@ function generateGraphQLIngestError(importContext, resource, modelInfo) {
|
|
|
50
51
|
const resourceTypeIdentifier = importRamlArtifact(returnShapeId, returnShapeName);
|
|
51
52
|
const resourceRequestConfig = importRamlArtifact(id, resource_params_1.RESOURCE_PARAMS_INTERFACE);
|
|
52
53
|
const keyBuilder = importRamlArtifact(id, key_builder_1.RESOURCE_KEY_BUILDER_IDENTIFIER);
|
|
54
|
+
const { name: adapterName, id: adapterId } = resource.adapter;
|
|
55
|
+
const configInterfaceIdentifier = importRamlArtifact(adapterId, (0, util_1.buildConfigInterfaceName)(adapterName));
|
|
53
56
|
return (0, deindent_1.default) `
|
|
54
|
-
export function ${exports.RESOURCE_INGEST_ERROR_IDENTIFIER}(${constants_2.LUVIO_IDENTIFIER}: ${constants_2.LUVIO_IMPORT}, ${RESOURCE_PARAMS_IDENTIFIER}: ${resourceRequestConfig}, ${RESPONSE_IDENTIFIER}: ${constants_1.ADAPTER_ERROR_RESPONSE_INTERFACE_IDENTIFIER}, ${SNAPSHOT_REFRESH_IDENTIFIER}?: ${constants_1.ADAPTER_SNAPSHOT_REFRESH_INTERFACE}<${resourceTypeIdentifier}>): ${constants_1.ADAPTER_ERROR_SNAPSHOT_IMPORT} {
|
|
57
|
+
export function ${exports.RESOURCE_INGEST_ERROR_IDENTIFIER}(${constants_2.LUVIO_IDENTIFIER}: ${constants_2.LUVIO_IMPORT}, ${constants_1.ADAPTER_CONFIG_IDENTIFIER}: ${configInterfaceIdentifier}, ${RESOURCE_PARAMS_IDENTIFIER}: ${resourceRequestConfig}, ${RESPONSE_IDENTIFIER}: ${constants_1.ADAPTER_ERROR_RESPONSE_INTERFACE_IDENTIFIER}, ${SNAPSHOT_REFRESH_IDENTIFIER}?: ${constants_1.ADAPTER_SNAPSHOT_REFRESH_INTERFACE}<${resourceTypeIdentifier}>): ${constants_1.ADAPTER_ERROR_SNAPSHOT_IMPORT} {
|
|
55
58
|
const ${KEY_IDENTIFIER} = ${keyBuilder}(${constants_2.LUVIO_IDENTIFIER}, ${RESOURCE_PARAMS_IDENTIFIER});
|
|
56
59
|
const ${ERROR_SNAPSHOT_IDENTIFIER} = ${constants_2.LUVIO_IDENTIFIER}.errorSnapshot(${RESPONSE_IDENTIFIER}, ${SNAPSHOT_REFRESH_IDENTIFIER});
|
|
57
60
|
${getIngestCode(importContext, returnShapeId, modelInfo)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ingest-error.js","sourceRoot":"","sources":["../../../../src/codegen/resource/graphql/ingest-error.ts"],"names":[],"mappings":";;;;;;AACA,uEAA+C;AAC/C,
|
|
1
|
+
{"version":3,"file":"ingest-error.js","sourceRoot":"","sources":["../../../../src/codegen/resource/graphql/ingest-error.ts"],"names":[],"mappings":";;;;;;AACA,uEAA+C;AAC/C,uDAKiC;AACjC,sDAAwE;AACxE,gDAAiE;AACjE,uDAA8D;AAG9D,6CAA8D;AAE9D,MAAM,0BAA0B,GAAG,QAAQ,CAAC;AAC5C,MAAM,2BAA2B,GAAG,iBAAiB,CAAC;AACtD,MAAM,cAAc,GAAG,KAAK,CAAC;AAC7B,MAAM,yBAAyB,GAAG,eAAe,CAAC;AAClD,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAEvB,QAAA,gCAAgC,GAAG,aAAa,CAAC;AAE9D,SAAS,aAAa,CAAC,aAA4B,EAAE,OAAe,EAAE,SAAoB;IACtF,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,QAAQ,EAAE;QACV,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,GAAG,aAAa,CAAC;QAChE,MAAM,aAAa,GAAG,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAClD,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAE9E,OAAO,IAAA,kBAAQ,EAAA;;uBAEA,aAAa;6BACP,UAAU;sCACD,mBAAmB;;cAE3C,4BAAgB,qBAAqB,cAAc,KAAK,yBAAyB;SACtF,CAAC;KACL;IAED,OAAO,IAAA,kBAAQ,EAAA;UACT,4BAAgB,qBAAqB,cAAc,KAAK,yBAAyB;KACtF,CAAC;AACN,CAAC;AAED,iFAAiF;AACjF,4FAA4F;AAC5F,yFAAyF;AACzF,SAAgB,0BAA0B,CACtC,aAA4B,EAC5B,QAAyB,EACzB,SAAoB;IAEpB,MAAM,EAAE,kBAAkB,EAAE,GAAG,aAAa,CAAC;IAC7C,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC;IAErC,IAAI,WAAW,KAAK,SAAS,EAAE;QAC3B,6BAA6B;QAC7B,OAAO,EAAE,CAAC;KACb;IAED,MAAM,aAAa,GAAG,WAAW,CAAC,EAAE,CAAC;IACrC,MAAM,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC;IACzC,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAClF,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,EAAE,EAAE,2CAAyB,CAAC,CAAC;IAChF,MAAM,UAAU,GAAG,kBAAkB,CAAC,EAAE,EAAE,6CAA+B,CAAC,CAAC;IAE3E,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,OAAQ,CAAC;IAC/D,MAAM,yBAAyB,GAAG,kBAAkB,CAChD,SAAS,EACT,IAAA,+BAAwB,EAAC,WAAW,CAAC,CACxC,CAAC;IAEF,OAAO,IAAA,kBAAQ,EAAA;0BACO,wCAAgC,IAAI,4BAAgB,KAAK,wBAAY,KAAK,qCAAyB,KAAK,yBAAyB,KAAK,0BAA0B,KAAK,qBAAqB,KAAK,mBAAmB,KAAK,uDAA2C,KAAK,2BAA2B,MAAM,8CAAkC,IAAI,sBAAsB,OAAO,yCAA6B;oBAC9Y,cAAc,MAAM,UAAU,IAAI,4BAAgB,KAAK,0BAA0B;oBACjF,yBAAyB,MAAM,4BAAgB,kBAAkB,mBAAmB,KAAK,2BAA2B;cAC1H,aAAa,CAAC,aAAa,EAAE,aAAa,EAAE,SAAS,CAAC;qBAC/C,yBAAyB;;KAEzC,CAAC;AACN,CAAC;AAjCD,gEAiCC"}
|
|
@@ -12,6 +12,7 @@ const key_builder_1 = require("../key-builder");
|
|
|
12
12
|
const resource_params_1 = require("./resource-params");
|
|
13
13
|
const constants_3 = require("../constants");
|
|
14
14
|
const constants_4 = require("../../graphql/type/constants");
|
|
15
|
+
const util_1 = require("../../adapter/util");
|
|
15
16
|
exports.RESOURCE_INGEST_SUCCESS_IDENTIFIER = 'ingestSuccess';
|
|
16
17
|
const RESPONSE_IDENTIFIER = 'response';
|
|
17
18
|
const KEY_IDENTIFIER = 'key';
|
|
@@ -32,15 +33,17 @@ function generateGraphQLIngestSuccess(importContext, resource) {
|
|
|
32
33
|
const resourceRequestConfig = importRamlArtifact(resourceId, resource_params_1.RESOURCE_PARAMS_INTERFACE);
|
|
33
34
|
const select = importRamlArtifact(resourceId, constants_3.RESOURCE_SELECT_IDENTIFIER);
|
|
34
35
|
const graphqlVariablesImport = importContext.importGraphQLArtifact('types', constants_4.TYPE_UTIL_IDENTIFIER, constants_4.GRAPHQL_VARIABLES_IDENTIFIER);
|
|
36
|
+
const { name: adapterName, id: adapterId } = resource.adapter;
|
|
37
|
+
const configInterfaceIdentifier = importRamlArtifact(adapterId, (0, util_1.buildConfigInterfaceName)(adapterName));
|
|
35
38
|
return (0, deindent_1.default) `
|
|
36
|
-
export function ${exports.RESOURCE_INGEST_SUCCESS_IDENTIFIER}(${constants_2.LUVIO_IDENTIFIER}: ${constants_2.LUVIO_IMPORT}, ${constants_1.ADAPTER_RESOURCE_PARAMS_IDENTIFIER}: ${resourceRequestConfig}, ${RESPONSE_IDENTIFIER}: ${constants_1.ADAPTER_RESOURCE_RESPONSE_INTERFACE_IDENTIFIER}<${resourceTypeIdentifier}>${snapshotRefreshArgument}): ${constants_1.ADAPTER_FULFILLED_SNAPSHOT_IMPORT}<${resourceTypeIdentifier}, {}> | ${constants_1.ADAPTER_STALE_SNAPSHOT_IMPORT}<${resourceTypeIdentifier}, {}> | ${constants_1.ADAPTER_PENDING_SNAPSHOT_IMPORT}<${resourceTypeIdentifier}, any> {
|
|
39
|
+
export function ${exports.RESOURCE_INGEST_SUCCESS_IDENTIFIER}(${constants_2.LUVIO_IDENTIFIER}: ${constants_2.LUVIO_IMPORT}, ${constants_1.ADAPTER_CONFIG_IDENTIFIER}: ${configInterfaceIdentifier}, ${constants_1.ADAPTER_RESOURCE_PARAMS_IDENTIFIER}: ${resourceRequestConfig}, ${RESPONSE_IDENTIFIER}: ${constants_1.ADAPTER_RESOURCE_RESPONSE_INTERFACE_IDENTIFIER}<${resourceTypeIdentifier}>${snapshotRefreshArgument}): ${constants_1.ADAPTER_FULFILLED_SNAPSHOT_IMPORT}<${resourceTypeIdentifier}, {}> | ${constants_1.ADAPTER_STALE_SNAPSHOT_IMPORT}<${resourceTypeIdentifier}, {}> | ${constants_1.ADAPTER_PENDING_SNAPSHOT_IMPORT}<${resourceTypeIdentifier}, any> {
|
|
37
40
|
const { ${constants_1.ADAPTER_RESPONSE_BODY_IDENTIFIER} } = ${RESPONSE_IDENTIFIER};
|
|
38
41
|
const ${KEY_IDENTIFIER} = ${keyStatement};
|
|
39
42
|
const { query, variables } = ${constants_1.ADAPTER_RESOURCE_PARAMS_IDENTIFIER}.body;
|
|
40
43
|
${constants_2.LUVIO_IDENTIFIER}.storeIngest<${resourceTypeIdentifier}>(${KEY_IDENTIFIER}, ${ingestIdentifier}(query, variables as ${graphqlVariablesImport}), ${constants_1.ADAPTER_RESPONSE_BODY_IDENTIFIER});
|
|
41
44
|
const ${SNAPSHOT_IDENTIFIER} = ${constants_2.LUVIO_IDENTIFIER}.storeLookup<${resourceTypeIdentifier}>({
|
|
42
45
|
recordId: ${KEY_IDENTIFIER},
|
|
43
|
-
node: ${select}(${constants_2.LUVIO_IDENTIFIER}, ${constants_1.
|
|
46
|
+
node: ${select}(${constants_2.LUVIO_IDENTIFIER}, ${constants_1.ADAPTER_CONFIG_IDENTIFIER}),
|
|
44
47
|
variables: {},
|
|
45
48
|
}${snapshotRefreshIdentifier});
|
|
46
49
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ingest-success.js","sourceRoot":"","sources":["../../../../src/codegen/resource/graphql/ingest-success.ts"],"names":[],"mappings":";;;;;;AACA,uEAA+C;AAE/C,
|
|
1
|
+
{"version":3,"file":"ingest-success.js","sourceRoot":"","sources":["../../../../src/codegen/resource/graphql/ingest-success.ts"],"names":[],"mappings":";;;;;;AACA,uEAA+C;AAE/C,uDAUiC;AACjC,sDAAwE;AACxE,2DAAmE;AACnE,gDAAiE;AACjE,uDAA8D;AAC9D,4CAA0D;AAC1D,4DAAkG;AAClG,6CAA8D;AAEjD,QAAA,kCAAkC,GAAG,eAAe,CAAC;AAClE,MAAM,mBAAmB,GAAG,UAAU,CAAC;AACvC,MAAM,cAAc,GAAG,KAAK,CAAC;AAC7B,MAAM,mBAAmB,GAAG,UAAU,CAAC;AAEvC,SAAgB,4BAA4B,CACxC,aAA4B,EAC5B,QAAyB;IAEzB,MAAM,EAAE,kBAAkB,EAAE,GAAG,aAAa,CAAC;IAC7C,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC;IACjD,IAAI,WAAW,KAAK,SAAS,EAAE;QAC3B,6BAA6B;QAC7B,OAAO,EAAE,CAAC;KACb;IAED,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC;IACjE,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,aAAa,EAAE,sCAAuB,CAAC,CAAC;IAEpF,MAAM,YAAY,GAAG,GAAG,kBAAkB,CACtC,UAAU,EACV,6CAA+B,CAClC,IAAI,4BAAgB,KAAK,8CAAkC,GAAG,CAAC;IAEhE,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAElF,MAAM,uBAAuB,GAAG,KAAK,+CAAmC,MAAM,8CAAkC,IAAI,sBAAsB,GAAG,CAAC;IAC9I,MAAM,yBAAyB,GAAG,IAAI,GAAG,+CAAmC,CAAC;IAC7E,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,UAAU,EAAE,2CAAyB,CAAC,CAAC;IACxF,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,EAAE,sCAA0B,CAAC,CAAC;IAC1E,MAAM,sBAAsB,GAAG,aAAa,CAAC,qBAAqB,CAC9D,OAAO,EACP,gCAAoB,EACpB,wCAA4B,CAC/B,CAAC;IAEF,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,OAAQ,CAAC;IAC/D,MAAM,yBAAyB,GAAG,kBAAkB,CAChD,SAAS,EACT,IAAA,+BAAwB,EAAC,WAAW,CAAC,CACxC,CAAC;IAEF,OAAO,IAAA,kBAAQ,EAAA;0BACO,0CAAkC,IAAI,4BAAgB,KAAK,wBAAY,KAAK,qCAAyB,KAAK,yBAAyB,KAAK,8CAAkC,KAAK,qBAAqB,KAAK,mBAAmB,KAAK,0DAA8C,IAAI,sBAAsB,IAAI,uBAAuB,MAAM,6CAAiC,IAAI,sBAAsB,WAAW,yCAA6B,IAAI,sBAAsB,WAAW,2CAA+B,IAAI,sBAAsB;sBAC/gB,4CAAgC,QAAQ,mBAAmB;oBAC7D,cAAc,MAAM,YAAY;2CACT,8CAAkC;cAC/D,4BAAgB,gBAAgB,sBAAsB,KAAK,cAAc,KAAK,gBAAgB,wBAAwB,sBAAsB,MAAM,4CAAgC;oBAC5K,mBAAmB,MAAM,4BAAgB,gBAAgB,sBAAsB;4BACvE,cAAc;wBAClB,MAAM,IAAI,4BAAgB,KAAK,qCAAyB;;eAEjE,yBAAyB;;;qBAGnB,mBAAmB;;;;;qBAKnB,mBAAmB,QAAQ,6CAAiC,IAAI,sBAAsB,WAAW,yCAA6B,IAAI,sBAAsB;;KAExK,CAAC;AACN,CAAC;AA1DD,oEA0DC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { ImportContext } from '../../../utils/imports';
|
|
2
|
-
import type { GraphQLResource } from '../../../intermediate/resource';
|
|
2
|
+
import type { GraphQLResource, Resource } from '../../../intermediate/resource';
|
|
3
3
|
export declare function generateGraphQLKeyBuilder(importContext: ImportContext, resource: GraphQLResource): string;
|
|
4
|
+
export declare function generateGraphQLKey(importContext: ImportContext, returnShapeName: string, resource: Resource): string;
|
|
@@ -3,18 +3,20 @@ 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.generateGraphQLKeyBuilder = void 0;
|
|
6
|
+
exports.generateGraphQLKey = exports.generateGraphQLKeyBuilder = void 0;
|
|
7
7
|
const deindent_1 = __importDefault(require("../../../utils/deindent"));
|
|
8
8
|
const resource_params_1 = require("./resource-params");
|
|
9
9
|
const key_builder_1 = require("../key-builder");
|
|
10
|
+
const resource_1 = require("../../../intermediate/resource");
|
|
10
11
|
const constants_1 = require("../../shared/constants");
|
|
12
|
+
const constants_2 = require("../constants");
|
|
11
13
|
function generateGraphQLKeyBuilder(importContext, resource) {
|
|
12
14
|
let code;
|
|
13
15
|
const { id: resourceId, returnShape } = resource;
|
|
14
16
|
const resourceRequestConfig = importContext.importRamlArtifact(resourceId, resource_params_1.RESOURCE_PARAMS_INTERFACE);
|
|
15
17
|
code =
|
|
16
18
|
returnShape !== undefined //TODO: cleanup in W-11069204
|
|
17
|
-
? (
|
|
19
|
+
? generateGraphQLKey(importContext, returnShape === null || returnShape === void 0 ? void 0 : returnShape.name, resource)
|
|
18
20
|
: '';
|
|
19
21
|
return (0, deindent_1.default) `
|
|
20
22
|
export function ${key_builder_1.RESOURCE_KEY_BUILDER_IDENTIFIER}(${constants_1.LUVIO_IDENTIFIER}: ${constants_1.LUVIO_IMPORT}, params: ${resourceRequestConfig}): string {
|
|
@@ -23,4 +25,10 @@ function generateGraphQLKeyBuilder(importContext, resource) {
|
|
|
23
25
|
`;
|
|
24
26
|
}
|
|
25
27
|
exports.generateGraphQLKeyBuilder = generateGraphQLKeyBuilder;
|
|
28
|
+
function generateGraphQLKey(importContext, returnShapeName, resource) {
|
|
29
|
+
const keyCode = (0, key_builder_1.generateKeyFallback)(importContext, returnShapeName, resource);
|
|
30
|
+
// TODO: This is hacky, but I'm not sure of a better way without duplicating or refactoring a ton of code...
|
|
31
|
+
return keyCode.replace(`${constants_2.RESOURCE_PARAMS_IDENTIFIER}.${resource_1.CONFIG_PROPERTY_BODY}.query`, `${constants_1.LUVIO_GRAPHQL_PRINT_IMPORT}(${constants_2.RESOURCE_PARAMS_IDENTIFIER}.${resource_1.CONFIG_PROPERTY_BODY}.query)`);
|
|
32
|
+
}
|
|
33
|
+
exports.generateGraphQLKey = generateGraphQLKey;
|
|
26
34
|
//# sourceMappingURL=key-builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-builder.js","sourceRoot":"","sources":["../../../../src/codegen/resource/graphql/key-builder.ts"],"names":[],"mappings":";;;;;;AAAA,uEAA+C;AAE/C,uDAA8D;AAC9D,gDAAsF;
|
|
1
|
+
{"version":3,"file":"key-builder.js","sourceRoot":"","sources":["../../../../src/codegen/resource/graphql/key-builder.ts"],"names":[],"mappings":";;;;;;AAAA,uEAA+C;AAE/C,uDAA8D;AAC9D,gDAAsF;AACtF,6DAAsE;AAGtE,sDAAoG;AACpG,4CAA0D;AAE1D,SAAgB,yBAAyB,CACrC,aAA4B,EAC5B,QAAyB;IAEzB,IAAI,IAAI,CAAC;IACT,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC;IAEjD,MAAM,qBAAqB,GAAG,aAAa,CAAC,kBAAkB,CAC1D,UAAU,EACV,2CAAyB,CAC5B,CAAC;IAEF,IAAI;QACA,WAAW,KAAK,SAAS,CAAC,6BAA6B;YACnD,CAAC,CAAC,kBAAkB,CAAC,aAAa,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,EAAE,QAAQ,CAAC;YAChE,CAAC,CAAC,EAAE,CAAC;IAEb,OAAO,IAAA,kBAAQ,EAAA;8BACW,6CAA+B,IAAI,4BAAgB,KAAK,wBAAY,aAAa,qBAAqB;yBAC3G,IAAI;;SAEpB,CAAC;AACV,CAAC;AAtBD,8DAsBC;AAED,SAAgB,kBAAkB,CAC9B,aAA4B,EAC5B,eAAuB,EACvB,QAAkB;IAElB,MAAM,OAAO,GAAG,IAAA,iCAAmB,EAAC,aAAa,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;IAC9E,4GAA4G;IAC5G,OAAO,OAAO,CAAC,OAAO,CAClB,GAAG,sCAA0B,IAAI,+BAAoB,QAAQ,EAC7D,GAAG,sCAA0B,IAAI,sCAA0B,IAAI,+BAAoB,SAAS,CAC/F,CAAC;AACN,CAAC;AAXD,gDAWC"}
|
|
@@ -7,23 +7,24 @@ exports.generateGraphQLSelect = void 0;
|
|
|
7
7
|
const deindent_1 = __importDefault(require("../../../utils/deindent"));
|
|
8
8
|
const constants_1 = require("../../adapter/constants");
|
|
9
9
|
const constants_2 = require("../../shared/constants");
|
|
10
|
-
const resource_params_1 = require("./resource-params");
|
|
11
10
|
const constants_3 = require("../constants");
|
|
12
11
|
const constants_4 = require("../../graphql/type/constants");
|
|
12
|
+
const util_1 = require("../../adapter/util");
|
|
13
13
|
function generateGraphQLSelect(importContext, resource) {
|
|
14
14
|
const { importRamlArtifact } = importContext;
|
|
15
|
-
const {
|
|
15
|
+
const { returnShape } = resource;
|
|
16
16
|
if (returnShape === undefined) {
|
|
17
17
|
//TODO: cleanup in W-11069204
|
|
18
18
|
return '';
|
|
19
19
|
}
|
|
20
20
|
const { id: returnShapeId } = returnShape;
|
|
21
21
|
const typeSelect = importRamlArtifact(returnShapeId, 'select');
|
|
22
|
-
const resourceRequestConfig = importRamlArtifact(resourceId, resource_params_1.RESOURCE_PARAMS_INTERFACE);
|
|
23
22
|
const graphqlVariablesImport = importContext.importGraphQLArtifact('types', constants_4.TYPE_UTIL_IDENTIFIER, constants_4.GRAPHQL_VARIABLES_IDENTIFIER);
|
|
23
|
+
const { name: adapterName, id: adapterId } = resource.adapter;
|
|
24
|
+
const configInterfaceIdentifier = importRamlArtifact(adapterId, (0, util_1.buildConfigInterfaceName)(adapterName));
|
|
24
25
|
return (0, deindent_1.default) `
|
|
25
|
-
export function ${constants_3.RESOURCE_SELECT_IDENTIFIER}(${constants_2.LUVIO_IDENTIFIER}: ${constants_2.LUVIO_IMPORT}, ${
|
|
26
|
-
const { query, variables } = ${
|
|
26
|
+
export function ${constants_3.RESOURCE_SELECT_IDENTIFIER}(${constants_2.LUVIO_IDENTIFIER}: ${constants_2.LUVIO_IMPORT}, ${constants_1.ADAPTER_CONFIG_IDENTIFIER}: ${configInterfaceIdentifier}): ${constants_1.ADAPTER_FRAGMENT_IDENTIFIER} {
|
|
27
|
+
const { query, variables } = ${constants_1.ADAPTER_CONFIG_IDENTIFIER};
|
|
27
28
|
return ${typeSelect}(${constants_2.LUVIO_IDENTIFIER}, query, variables as ${graphqlVariablesImport});
|
|
28
29
|
}
|
|
29
30
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../src/codegen/resource/graphql/select.ts"],"names":[],"mappings":";;;;;;AACA,uEAA+C;AAE/C,
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../src/codegen/resource/graphql/select.ts"],"names":[],"mappings":";;;;;;AACA,uEAA+C;AAE/C,uDAAiG;AACjG,sDAAwE;AACxE,4CAA0D;AAC1D,4DAAkG;AAClG,6CAA8D;AAE9D,SAAgB,qBAAqB,CAAC,aAA4B,EAAE,QAAyB;IACzF,MAAM,EAAE,kBAAkB,EAAE,GAAG,aAAa,CAAC;IAC7C,MAAM,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC;IACjC,IAAI,WAAW,KAAK,SAAS,EAAE;QAC3B,6BAA6B;QAC7B,OAAO,EAAE,CAAC;KACb;IAED,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC;IAE1C,MAAM,UAAU,GAAG,kBAAkB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAC/D,MAAM,sBAAsB,GAAG,aAAa,CAAC,qBAAqB,CAC9D,OAAO,EACP,gCAAoB,EACpB,wCAA4B,CAC/B,CAAC;IAEF,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,OAAQ,CAAC;IAC/D,MAAM,yBAAyB,GAAG,kBAAkB,CAChD,SAAS,EACT,IAAA,+BAAwB,EAAC,WAAW,CAAC,CACxC,CAAC;IAEF,OAAO,IAAA,kBAAQ,EAAA;0BACO,sCAA0B,IAAI,4BAAgB,KAAK,wBAAY,KAAK,qCAAyB,KAAK,yBAAyB,MAAM,uCAA2B;2CAC3I,qCAAyB;qBAC/C,UAAU,IAAI,4BAAgB,yBAAyB,sBAAsB;;KAE7F,CAAC;AACN,CAAC;AA7BD,sDA6BC"}
|
|
@@ -47,13 +47,13 @@ function generateGraphQLInteropTypeSelect(shapeConfig, graphQLResource) {
|
|
|
47
47
|
node: {
|
|
48
48
|
kind: 'Fragment',
|
|
49
49
|
private: [],
|
|
50
|
-
opaque: true
|
|
50
|
+
opaque: true,
|
|
51
51
|
},
|
|
52
52
|
variables: {}
|
|
53
53
|
})
|
|
54
54
|
|
|
55
55
|
if(snapshot.data === undefined) {
|
|
56
|
-
return;
|
|
56
|
+
return {};
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
const data = ${GRAPHQL_QUERY_TYPE_SELECT_IMPORT}(def, variables, fragments)(snapshot.data as ${GRAPHQL_QUERY_TYPE_PARTIAL_INTERFACE_IMPORT}, builder);
|
|
@@ -10,6 +10,14 @@ const LANGUAGE = (0, deindent_1.default) `
|
|
|
10
10
|
export const { isArray: ArrayIsArray } = Array;
|
|
11
11
|
export const { stringify: JSONStringify } = JSON;
|
|
12
12
|
`;
|
|
13
|
+
const INTERFACE = (0, deindent_1.default) `
|
|
14
|
+
type AllowedPrimitives = boolean | string | number | Date /* add any types than should be considered as a value, say, DateTimeOffset */;
|
|
15
|
+
type Value<T> = T extends AllowedPrimitives ? T : RecursivePartial<T>;
|
|
16
|
+
export type RecursivePartial<T> = {
|
|
17
|
+
[P in keyof T]?:
|
|
18
|
+
T[P] extends Array<infer U> ? Array<Value<U>> : Value<T[P]>;
|
|
19
|
+
};
|
|
20
|
+
`;
|
|
13
21
|
const EQUALS_ARRAY = (0, deindent_1.default) `
|
|
14
22
|
export function equalsArray<U, V extends U[]>(
|
|
15
23
|
a: V,
|
|
@@ -96,7 +104,15 @@ const ASSIGN_METADATA = (0, deindent_1.default) `
|
|
|
96
104
|
}
|
|
97
105
|
`;
|
|
98
106
|
function generateShapeUtils() {
|
|
99
|
-
return [
|
|
107
|
+
return [
|
|
108
|
+
LANGUAGE,
|
|
109
|
+
INTERFACE,
|
|
110
|
+
EQUALS_ARRAY,
|
|
111
|
+
EQUALS_OBJECT,
|
|
112
|
+
DEEP_FREEZE,
|
|
113
|
+
CREATE_LINK,
|
|
114
|
+
ASSIGN_METADATA,
|
|
115
|
+
].join('\n\n');
|
|
100
116
|
}
|
|
101
117
|
exports.generateShapeUtils = generateShapeUtils;
|
|
102
118
|
//# sourceMappingURL=shape-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shape-utils.js","sourceRoot":"","sources":["../../../src/codegen/shape/shape-utils.ts"],"names":[],"mappings":";;;;;;AAAA,oEAA4C;AAE5C,MAAM,QAAQ,GAAG,IAAA,kBAAQ,EAAA;;;;CAIxB,CAAC;AAEF,MAAM,YAAY,GAAG,IAAA,kBAAQ,EAAA;;;;;;;;;;;;;;;;;;;;;CAqB5B,CAAC;AAEF,MAAM,aAAa,GAAG,IAAA,kBAAQ,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8B7B,CAAC;AAEF,MAAM,WAAW,GAAG,IAAA,kBAAQ,EAAA;;;;;;;;;;;;;;;;;;;CAmB3B,CAAC;AAEF,MAAM,WAAW,GAAG,IAAA,kBAAQ,EAAA;;;;;;CAM3B,CAAC;AAEF,MAAM,eAAe,GAAG,IAAA,kBAAQ,EAAA;;;;CAI/B,CAAC;AAEF,SAAgB,kBAAkB;IAC9B,OAAO,
|
|
1
|
+
{"version":3,"file":"shape-utils.js","sourceRoot":"","sources":["../../../src/codegen/shape/shape-utils.ts"],"names":[],"mappings":";;;;;;AAAA,oEAA4C;AAE5C,MAAM,QAAQ,GAAG,IAAA,kBAAQ,EAAA;;;;CAIxB,CAAC;AAEF,MAAM,SAAS,GAAG,IAAA,kBAAQ,EAAA;;;;;;;CAOzB,CAAC;AAEF,MAAM,YAAY,GAAG,IAAA,kBAAQ,EAAA;;;;;;;;;;;;;;;;;;;;;CAqB5B,CAAC;AAEF,MAAM,aAAa,GAAG,IAAA,kBAAQ,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8B7B,CAAC;AAEF,MAAM,WAAW,GAAG,IAAA,kBAAQ,EAAA;;;;;;;;;;;;;;;;;;;CAmB3B,CAAC;AAEF,MAAM,WAAW,GAAG,IAAA,kBAAQ,EAAA;;;;;;CAM3B,CAAC;AAEF,MAAM,eAAe,GAAG,IAAA,kBAAQ,EAAA;;;;CAI/B,CAAC;AAEF,SAAgB,kBAAkB;IAC9B,OAAO;QACH,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,aAAa;QACb,WAAW;QACX,WAAW;QACX,eAAe;KAClB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACnB,CAAC;AAVD,gDAUC"}
|