@luvio/compiler 0.121.0 → 0.121.1-242.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/codegen/graphql/interface/index.d.ts +1 -1
  2. package/dist/codegen/graphql/interface/index.js +10 -8
  3. package/dist/codegen/graphql/interface/index.js.map +1 -1
  4. package/dist/codegen/graphql/type/constants.d.ts +7 -3
  5. package/dist/codegen/graphql/type/constants.js +9 -5
  6. package/dist/codegen/graphql/type/constants.js.map +1 -1
  7. package/dist/codegen/graphql/type/fragment-type.d.ts +4 -0
  8. package/dist/codegen/graphql/type/fragment-type.js +20 -0
  9. package/dist/codegen/graphql/type/fragment-type.js.map +1 -0
  10. package/dist/codegen/graphql/type/generateTypeUtil.js +142 -46
  11. package/dist/codegen/graphql/type/generateTypeUtil.js.map +1 -1
  12. package/dist/codegen/graphql/type/index.js +4 -2
  13. package/dist/codegen/graphql/type/index.js.map +1 -1
  14. package/dist/codegen/graphql/type/ingest-field-by-type.d.ts +2 -2
  15. package/dist/codegen/graphql/type/ingest-field-by-type.js +13 -8
  16. package/dist/codegen/graphql/type/ingest-field-by-type.js.map +1 -1
  17. package/dist/codegen/graphql/type/ingest.js +18 -3
  18. package/dist/codegen/graphql/type/ingest.js.map +1 -1
  19. package/dist/codegen/graphql/type/interface.d.ts +2 -2
  20. package/dist/codegen/graphql/type/interface.js +3 -8
  21. package/dist/codegen/graphql/type/interface.js.map +1 -1
  22. package/dist/codegen/graphql/type/key.d.ts +2 -2
  23. package/dist/codegen/graphql/type/key.js +1 -1
  24. package/dist/codegen/graphql/type/key.js.map +1 -1
  25. package/dist/codegen/graphql/type/minimumFields.d.ts +6 -0
  26. package/dist/codegen/graphql/type/minimumFields.js +68 -0
  27. package/dist/codegen/graphql/type/minimumFields.js.map +1 -0
  28. package/dist/codegen/graphql/type/select.js +10 -5
  29. package/dist/codegen/graphql/type/select.js.map +1 -1
  30. package/dist/codegen/graphql/type/type-from-field.d.ts +2 -2
  31. package/dist/codegen/graphql/type/type-from-field.js.map +1 -1
  32. package/dist/codegen/graphql/union/index.d.ts +1 -1
  33. package/dist/codegen/graphql/union/index.js +12 -6
  34. package/dist/codegen/graphql/union/index.js.map +1 -1
  35. package/dist/codegen/graphql/utils/types.d.ts +3 -3
  36. package/dist/codegen/graphql/utils/types.js +3 -0
  37. package/dist/codegen/graphql/utils/types.js.map +1 -1
  38. package/dist/codegen/shape/graphql/shape-cache-keys.js +2 -6
  39. package/dist/codegen/shape/graphql/shape-cache-keys.js.map +1 -1
  40. package/dist/codegen/shape/graphql/shape-ingest.js +2 -6
  41. package/dist/codegen/shape/graphql/shape-ingest.js.map +1 -1
  42. package/dist/codegen/shared/constants.d.ts +1 -0
  43. package/dist/codegen/shared/constants.js +2 -1
  44. package/dist/codegen/shared/constants.js.map +1 -1
  45. package/package.json +6 -5
  46. package/dist/codegen/graphql/interface/query-transformer.d.ts +0 -5
  47. package/dist/codegen/graphql/interface/query-transformer.js +0 -21
  48. package/dist/codegen/graphql/interface/query-transformer.js.map +0 -1
  49. package/dist/codegen/graphql/type/query-transformer.d.ts +0 -8
  50. package/dist/codegen/graphql/type/query-transformer.js +0 -193
  51. package/dist/codegen/graphql/type/query-transformer.js.map +0 -1
@@ -1,5 +0,0 @@
1
- import type { InterfaceTypeDefinitionNode } from '@luvio/graphql-parser';
2
- import type { ImportContext } from '../../../utils/imports';
3
- import type { LuvioGraphQLDSL } from '../../../intermediate/graphql';
4
- import type { GraphQLCodegenMetadata } from '../source-printer';
5
- export declare function generate(graphqlDsl: LuvioGraphQLDSL, typeName: string, def: InterfaceTypeDefinitionNode, importContext: ImportContext, _metadata: GraphQLCodegenMetadata): string;
@@ -1,21 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.generate = void 0;
7
- const deindent_1 = __importDefault(require("../../../utils/deindent"));
8
- const query_transformer_1 = require("../type/query-transformer");
9
- function generate(graphqlDsl, typeName, def, importContext, _metadata) {
10
- var _a;
11
- const { schema } = graphqlDsl;
12
- const isQueryType = ((_a = schema.getQueryType()) === null || _a === void 0 ? void 0 : _a.name) === typeName;
13
- const queryTransform = (0, query_transformer_1.generateQueryTransformerForFields)(graphqlDsl, def, importContext, typeName);
14
- const minimumFields = (0, query_transformer_1.generateGetMinimumFields)(isQueryType, def, graphqlDsl);
15
- return (0, deindent_1.default) `
16
- ${queryTransform}
17
- ${minimumFields}
18
- `;
19
- }
20
- exports.generate = generate;
21
- //# sourceMappingURL=query-transformer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-transformer.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/interface/query-transformer.ts"],"names":[],"mappings":";;;;;;AACA,uEAA+C;AAI/C,iEAGmC;AAEnC,SAAgB,QAAQ,CACpB,UAA2B,EAC3B,QAAgB,EAChB,GAAgC,EAChC,aAA4B,EAC5B,SAAiC;;IAEjC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;IAC9B,MAAM,WAAW,GAAG,CAAA,MAAA,MAAM,CAAC,YAAY,EAAE,0CAAE,IAAI,MAAK,QAAQ,CAAC;IAE7D,MAAM,cAAc,GAAG,IAAA,qDAAiC,EACpD,UAAU,EACV,GAAG,EACH,aAAa,EACb,QAAQ,CACX,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,4CAAwB,EAAC,WAAW,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IAE7E,OAAO,IAAA,kBAAQ,EAAA;UACT,cAAc;UACd,aAAa;KAClB,CAAC;AACN,CAAC;AAtBD,4BAsBC"}
@@ -1,8 +0,0 @@
1
- import type { GraphQLSchema, InterfaceTypeDefinitionNode, ObjectTypeDefinitionNode } from '@luvio/graphql-parser';
2
- import type { ImportContext } from '../../../utils/imports';
3
- import type { LuvioGraphQLDSL } from '../../../intermediate/graphql';
4
- import type { GraphQLCodegenMetadata } from '../source-printer';
5
- export declare function generateQueryTransformerForFields(graphqlDsl: LuvioGraphQLDSL, def: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode, importContext: ImportContext, typeName: string): string;
6
- export declare function generateQueryTransformerForQueryReturnTypes(schema: GraphQLSchema, importContext: ImportContext): string;
7
- export declare function generateGetMinimumFields(isQueryType: boolean, def: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode, graphqlDsl: LuvioGraphQLDSL): string;
8
- export declare function generate(graphqlDsl: LuvioGraphQLDSL, typeName: string, def: ObjectTypeDefinitionNode, importContext: ImportContext, _metadata: GraphQLCodegenMetadata): string;
@@ -1,193 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.generate = exports.generateGetMinimumFields = exports.generateQueryTransformerForQueryReturnTypes = exports.generateQueryTransformerForFields = void 0;
7
- const deindent_1 = __importDefault(require("../../../utils/deindent"));
8
- const constants_1 = require("../../shared/constants");
9
- const utils_1 = require("../utils");
10
- const interface_1 = require("./interface");
11
- const constants_2 = require("./constants");
12
- const FIELD_TYPENAME_IDENTIFIER = 'fieldTypeName';
13
- const minFieldsForCursorConnections = {
14
- [constants_2.EDGES_IDENTIFIER]: [constants_2.NODE_IDENTIFIER, constants_2.CURSOR_IDENTIFIER],
15
- [constants_2.PAGE_INFO_IDENTIFIER]: [
16
- constants_2.HAS_NEXT_PAGE_IDENTIFIER,
17
- constants_2.END_CURSOR_IDENTIFIER,
18
- constants_2.START_CURSOR_IDENTIFIER,
19
- ],
20
- };
21
- function generateQueryTransformerForFields(graphqlDsl, def, importContext, typeName) {
22
- const { schema, cursorConnectionTypes } = graphqlDsl;
23
- const type = schema.getType(typeName);
24
- const fieldMap = type.getFields();
25
- const fieldList = Object.keys(fieldMap);
26
- const isCursorConnectionType = cursorConnectionTypes.includes(def.name.value);
27
- const queryTransformerStatements = fieldList
28
- .map((fieldName) => {
29
- var _a;
30
- const field = fieldMap[fieldName];
31
- if (field !== undefined &&
32
- field !== null &&
33
- field.astNode !== undefined &&
34
- field.astNode !== null) {
35
- const fieldTypeName = (0, utils_1.resolveTypeName)((_a = field.astNode) === null || _a === void 0 ? void 0 : _a.type);
36
- const schemaType = schema.getType(fieldTypeName);
37
- if (schemaType === undefined ||
38
- schemaType === null ||
39
- schemaType.astNode === undefined ||
40
- schemaType.astNode === null) {
41
- return '';
42
- }
43
- // Interface or Object Type
44
- if (schemaType.astNode.kind === 'InterfaceTypeDefinition' ||
45
- schemaType.astNode.kind === 'ObjectTypeDefinition') {
46
- const getQueryTransformHelperImport = importContext.importGraphQLArtifact('types', fieldTypeName, constants_2.GET_QUERY_TRANSFORM_HELPER_FOR_FIELD_IDENTIFIER);
47
- const getMinimumSelectionsImport = importContext.importGraphQLArtifact('types', fieldTypeName, constants_2.GET_MINIMUM_SELECTIONS_IDENTIFIER);
48
- // the pageInfo and edges fields of Cursor Connection types can have additional
49
- // minimum fields required for pagination.
50
- const connectionFields = isCursorConnectionType
51
- ? minFieldsForCursorConnections[fieldName]
52
- : undefined;
53
- const getMinimumSelectionsFunction = connectionFields !== undefined
54
- ? `function(): ${constants_1.LUVIO_GRAPHQL_SELECTION_NODE_IMPORT}[] {
55
- const minSelections: ${constants_1.LUVIO_GRAPHQL_SELECTION_NODE_IMPORT}[] = ${getMinimumSelectionsImport}();
56
- ['${connectionFields.join("','")}'].forEach(connectionField => {
57
- minSelections.push({
58
- kind: 'Field',
59
- name: {
60
- kind: 'Name',
61
- value: connectionField,
62
- }
63
- })
64
- })
65
- return minSelections;
66
- }`
67
- : getMinimumSelectionsImport;
68
- return (0, deindent_1.default) `
69
- if (${FIELD_TYPENAME_IDENTIFIER} === '${fieldTypeName}') {
70
- return {
71
- ${constants_2.GET_QUERY_TRANSFORM_HELPER_FOR_FIELD_IDENTIFIER}: ${getQueryTransformHelperImport},
72
- ${constants_2.GET_MINIMUM_SELECTIONS_IDENTIFIER}: ${getMinimumSelectionsFunction}
73
- };
74
- }
75
- `;
76
- }
77
- // Union Type
78
- if (schemaType.astNode.kind === 'UnionTypeDefinition') {
79
- return (0, deindent_1.default) `
80
- if (${FIELD_TYPENAME_IDENTIFIER} === '${fieldTypeName}') {
81
- return {
82
- ${constants_2.GET_QUERY_TRANSFORM_HELPER_FOR_FIELD_IDENTIFIER}: (field: ${constants_1.LUVIO_GRAPHQL_FIELD_NODE_IMPORT}) => { return undefined },
83
- ${constants_2.GET_MINIMUM_SELECTIONS_IDENTIFIER}: () => { return [] }
84
- };
85
- }
86
- `;
87
- }
88
- }
89
- return '';
90
- })
91
- .filter((statement) => statement !== '');
92
- // default return when field does not have a schema defined type
93
- queryTransformerStatements.push('return undefined;');
94
- const eachFieldHandling = queryTransformerStatements.join('\n');
95
- const queryTransformerFunctionsImport = importContext.importGraphQLArtifact('types', constants_2.TYPE_UTIL_IDENTIFIER, constants_2.QUERY_TRANSFORM_HELPER_IDENTIFIER);
96
- const getFieldTypeImport = importContext.importGraphQLArtifact('types', typeName, constants_2.GET_FIELD_TYPE_IDENTIFIER);
97
- return (0, deindent_1.default) `
98
- export function ${constants_2.GET_QUERY_TRANSFORM_HELPER_FOR_FIELD_IDENTIFIER}(field: ${constants_1.LUVIO_GRAPHQL_FIELD_NODE_IMPORT}): ${queryTransformerFunctionsImport} | undefined {
99
- const fieldType = ${getFieldTypeImport}(field);
100
- if(fieldType === undefined) return undefined;
101
- const ${FIELD_TYPENAME_IDENTIFIER} = fieldType.typename;
102
- ${eachFieldHandling}
103
- }
104
- `;
105
- }
106
- exports.generateQueryTransformerForFields = generateQueryTransformerForFields;
107
- function generateQueryTransformerForQueryReturnTypes(schema, importContext) {
108
- const queryType = schema.getQueryType();
109
- if (queryType === null || queryType === undefined) {
110
- return '';
111
- }
112
- // Get the list of potential query return types
113
- let queryReturnTypes = Object.values(queryType.getFields()).reduce((acc, queryField) => {
114
- const queryReturnTypeName = queryField.type.name;
115
- return [queryReturnTypeName, ...acc];
116
- }, []);
117
- queryReturnTypes = [...new Set(queryReturnTypes)];
118
- const queryTransformerStatements = queryReturnTypes
119
- .map((typeName) => {
120
- const schemaType = schema.getType(typeName);
121
- if (schemaType !== undefined &&
122
- schemaType !== null &&
123
- schemaType.astNode !== undefined &&
124
- schemaType.astNode !== null &&
125
- (schemaType.astNode.kind === 'InterfaceTypeDefinition' ||
126
- schemaType.astNode.kind === 'ObjectTypeDefinition')) {
127
- const getQueryTransformerImport = importContext.importGraphQLArtifact('types', typeName, constants_2.GET_QUERY_TRANSFORM_HELPER_FOR_FIELD_IDENTIFIER);
128
- const getMinimumSelectionsImport = importContext.importGraphQLArtifact('types', typeName, constants_2.GET_MINIMUM_SELECTIONS_IDENTIFIER);
129
- return (0, deindent_1.default) `
130
- if (typeName === '${typeName}') {
131
- return {
132
- ${constants_2.GET_QUERY_TRANSFORM_HELPER_FOR_FIELD_IDENTIFIER}: ${getQueryTransformerImport},
133
- ${constants_2.GET_MINIMUM_SELECTIONS_IDENTIFIER}: ${getMinimumSelectionsImport}
134
- };
135
- }
136
- `;
137
- }
138
- return '';
139
- })
140
- .filter((statement) => statement !== '');
141
- // default return when type is not defined in the schema
142
- queryTransformerStatements.push('return undefined;');
143
- const eachTypeHandling = queryTransformerStatements.join('\n');
144
- const queryTransformerFunctionsImport = importContext.importGraphQLArtifact('types', constants_2.TYPE_UTIL_IDENTIFIER, constants_2.QUERY_TRANSFORM_HELPER_IDENTIFIER);
145
- return (0, deindent_1.default) `
146
- export function ${constants_2.GET_QUERY_TRANSFORM_HELPER_FOR_TYPE_IDENTIFIER}(typeName: string): ${queryTransformerFunctionsImport} | undefined {
147
- ${eachTypeHandling}
148
- }
149
- `;
150
- }
151
- exports.generateQueryTransformerForQueryReturnTypes = generateQueryTransformerForQueryReturnTypes;
152
- function generateGetMinimumFields(isQueryType, def, graphqlDsl) {
153
- const minFieldStatements = isQueryType
154
- ? ''
155
- : (0, interface_1.getMinimumFields)(def, graphqlDsl)
156
- .map((field) => {
157
- return (0, deindent_1.default) `
158
- minimumSelections.push({
159
- kind: 'Field',
160
- name: {
161
- kind: 'Name',
162
- value: '${field}',
163
- }
164
- });
165
- `;
166
- })
167
- .join('\n');
168
- return (0, deindent_1.default) `
169
- export function ${constants_2.GET_MINIMUM_SELECTIONS_IDENTIFIER}(): ${constants_1.LUVIO_GRAPHQL_SELECTION_NODE_IMPORT}[] {
170
- const minimumSelections: ${constants_1.LUVIO_GRAPHQL_SELECTION_NODE_IMPORT}[] = [];
171
- ${minFieldStatements}
172
- return minimumSelections;
173
- }
174
- `;
175
- }
176
- exports.generateGetMinimumFields = generateGetMinimumFields;
177
- function generate(graphqlDsl, typeName, def, importContext, _metadata) {
178
- var _a;
179
- const { schema } = graphqlDsl;
180
- const isQueryType = ((_a = schema.getQueryType()) === null || _a === void 0 ? void 0 : _a.name) === typeName;
181
- const queryTransformerForFields = generateQueryTransformerForFields(graphqlDsl, def, importContext, typeName);
182
- const queryTransformerForAllTypes = isQueryType
183
- ? generateQueryTransformerForQueryReturnTypes(schema, importContext)
184
- : '';
185
- const minimumFields = generateGetMinimumFields(isQueryType, def, graphqlDsl);
186
- return (0, deindent_1.default) `
187
- ${queryTransformerForFields}
188
- ${queryTransformerForAllTypes}
189
- ${minimumFields}
190
- `;
191
- }
192
- exports.generate = generate;
193
- //# sourceMappingURL=query-transformer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-transformer.js","sourceRoot":"","sources":["../../../../src/codegen/graphql/type/query-transformer.ts"],"names":[],"mappings":"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"}