@wix/graphql-codegen-ts-builders 1.0.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.
Files changed (50) hide show
  1. package/README.md +207 -0
  2. package/dist/es/src/documents-to-operations.d.ts +18 -0
  3. package/dist/es/src/documents-to-operations.d.ts.map +1 -0
  4. package/dist/es/src/documents-to-operations.js +200 -0
  5. package/dist/es/src/documents-to-operations.js.map +1 -0
  6. package/dist/es/src/helpers.d.ts +10 -0
  7. package/dist/es/src/helpers.d.ts.map +1 -0
  8. package/dist/es/src/helpers.js +84 -0
  9. package/dist/es/src/helpers.js.map +1 -0
  10. package/dist/es/src/index.d.ts +24 -0
  11. package/dist/es/src/index.d.ts.map +1 -0
  12. package/dist/es/src/index.js +362 -0
  13. package/dist/es/src/index.js.map +1 -0
  14. package/dist/es/src/mock-value-generator.d.ts +51 -0
  15. package/dist/es/src/mock-value-generator.d.ts.map +1 -0
  16. package/dist/es/src/mock-value-generator.js +370 -0
  17. package/dist/es/src/mock-value-generator.js.map +1 -0
  18. package/dist/es/src/types.d.ts +87 -0
  19. package/dist/es/src/types.d.ts.map +1 -0
  20. package/dist/es/src/types.js +6 -0
  21. package/dist/es/src/types.js.map +1 -0
  22. package/dist/es/src/utility-types.d.ts +10 -0
  23. package/dist/es/src/utility-types.d.ts.map +1 -0
  24. package/dist/es/src/utility-types.js +12 -0
  25. package/dist/es/src/utility-types.js.map +1 -0
  26. package/dist/src/documents-to-operations.d.ts +18 -0
  27. package/dist/src/documents-to-operations.d.ts.map +1 -0
  28. package/dist/src/documents-to-operations.js +207 -0
  29. package/dist/src/documents-to-operations.js.map +1 -0
  30. package/dist/src/helpers.d.ts +10 -0
  31. package/dist/src/helpers.d.ts.map +1 -0
  32. package/dist/src/helpers.js +96 -0
  33. package/dist/src/helpers.js.map +1 -0
  34. package/dist/src/index.d.ts +24 -0
  35. package/dist/src/index.d.ts.map +1 -0
  36. package/dist/src/index.js +366 -0
  37. package/dist/src/index.js.map +1 -0
  38. package/dist/src/mock-value-generator.d.ts +51 -0
  39. package/dist/src/mock-value-generator.d.ts.map +1 -0
  40. package/dist/src/mock-value-generator.js +377 -0
  41. package/dist/src/mock-value-generator.js.map +1 -0
  42. package/dist/src/types.d.ts +87 -0
  43. package/dist/src/types.d.ts.map +1 -0
  44. package/dist/src/types.js +9 -0
  45. package/dist/src/types.js.map +1 -0
  46. package/dist/src/utility-types.d.ts +10 -0
  47. package/dist/src/utility-types.d.ts.map +1 -0
  48. package/dist/src/utility-types.js +16 -0
  49. package/dist/src/utility-types.js.map +1 -0
  50. package/package.json +76 -0
@@ -0,0 +1,370 @@
1
+ import { __assign } from "tslib";
2
+ import casual from 'casual';
3
+ import { faker } from '@faker-js/faker';
4
+ import { createNameConverter, hashedString, toMockName } from './helpers';
5
+ var CasualMockValueGenerator = /** @class */ (function () {
6
+ function CasualMockValueGenerator(opts) {
7
+ var _this = this;
8
+ this.word = function () { return (_this.dynamicValues ? "casual.word" : "'".concat(casual.word, "'")); };
9
+ this.uuid = function () { return (_this.dynamicValues ? "casual.uuid" : "'".concat(casual.uuid, "'")); };
10
+ this.boolean = function () { return (_this.dynamicValues ? "casual.boolean" : casual.boolean); };
11
+ this.integer = function () {
12
+ return _this.dynamicValues
13
+ ? "casual.integer(0, 9999)"
14
+ : "".concat(casual.integer(0, 9999));
15
+ };
16
+ this.float = function () {
17
+ return _this.dynamicValues
18
+ ? "Math.round(casual.double(0, 10) * 100) / 100"
19
+ : "".concat(Math.round(casual.double(0, 10) * 100) / 100);
20
+ };
21
+ this.date = function () {
22
+ return _this.dynamicValues
23
+ ? "new Date(casual.unix_time).toISOString()"
24
+ : "'".concat(new Date(casual.unix_time).toISOString(), "'");
25
+ };
26
+ this.seed = function (seed) { return casual.seed(seed); };
27
+ this.dynamicValues = opts.dynamicValues;
28
+ }
29
+ return CasualMockValueGenerator;
30
+ }());
31
+ var casualFunctionTokens = {
32
+ import: "import casual from 'casual';",
33
+ seed: 'casual.seed(0);',
34
+ seedFunction: 'export const seedMocks = (seed: number) => casual.seed(seed);',
35
+ };
36
+ var FakerMockValueGenerator = /** @class */ (function () {
37
+ function FakerMockValueGenerator(opts) {
38
+ var _this = this;
39
+ this.word = function () {
40
+ return _this.dynamicValues ? "faker.lorem.word()" : "'".concat(faker.lorem.word(), "'");
41
+ };
42
+ this.uuid = function () {
43
+ return _this.dynamicValues ? "faker.datatype.uuid()" : "'".concat(faker.datatype.uuid(), "'");
44
+ };
45
+ this.boolean = function () {
46
+ return _this.dynamicValues ? "faker.datatype.boolean()" : faker.datatype.boolean();
47
+ };
48
+ this.integer = function () {
49
+ return _this.dynamicValues
50
+ ? "faker.datatype.number({ min: 0, max: 9999 })"
51
+ : faker.datatype.number({ min: 0, max: 9999 });
52
+ };
53
+ this.float = function () {
54
+ return _this.dynamicValues
55
+ ? "faker.datatype.float({ min: 0, max: 10, precision: 0.1 })"
56
+ : faker.datatype.float({ min: 0, max: 10, precision: 0.1 });
57
+ };
58
+ this.date = function () {
59
+ return _this.dynamicValues
60
+ ? "faker.date.past(1, new Date(2022, 0)).toISOString()"
61
+ : "'".concat(faker.date.past(1, new Date(2022, 0)).toISOString(), "'");
62
+ };
63
+ this.seed = function (seed) { return faker.seed(seed); };
64
+ this.dynamicValues = opts.dynamicValues;
65
+ }
66
+ return FakerMockValueGenerator;
67
+ }());
68
+ var fakerFunctionTokens = {
69
+ import: "import { faker } from '@faker-js/faker';",
70
+ seed: 'faker.seed(0);',
71
+ seedFunction: 'export const seedMocks = (seed: number) => faker.seed(seed);',
72
+ };
73
+ export function setupMockValueGenerator(_a) {
74
+ var generateLibrary = _a.generateLibrary, dynamicValues = _a.dynamicValues;
75
+ switch (generateLibrary) {
76
+ case 'casual':
77
+ return new CasualMockValueGenerator({ dynamicValues: dynamicValues });
78
+ case 'faker':
79
+ return new FakerMockValueGenerator({ dynamicValues: dynamicValues });
80
+ }
81
+ }
82
+ export function setupFunctionTokens(generateLibrary) {
83
+ switch (generateLibrary) {
84
+ case 'casual':
85
+ return casualFunctionTokens;
86
+ case 'faker':
87
+ return fakerFunctionTokens;
88
+ }
89
+ }
90
+ export function generateMockValue(opts) {
91
+ var _a, _b;
92
+ switch (opts.currentType.kind) {
93
+ case 'NamedType':
94
+ return getNamedType(__assign(__assign({}, opts), { currentType: opts.currentType }));
95
+ case 'NonNullType':
96
+ return generateMockValue(__assign(__assign({}, opts), { currentType: opts.currentType.type, nonNull: true }));
97
+ case 'ListType': {
98
+ var hasOverride = (_b = (_a = opts.fieldGeneration) === null || _a === void 0 ? void 0 : _a[opts.typeName]) === null || _b === void 0 ? void 0 : _b[opts.fieldName];
99
+ if (!hasOverride && opts.defaultNullableToNull && !opts.nonNull) {
100
+ return null;
101
+ }
102
+ var listElements = Array.from({ length: opts.listElementCount }, function (_, index) {
103
+ return generateMockValue(__assign(__assign({}, opts), { fieldName: opts.listElementCount === 1
104
+ ? opts.fieldName
105
+ : "".concat(opts.fieldName).concat(index), currentType: opts.currentType.type }));
106
+ });
107
+ return "[".concat(listElements.join(', '), "]");
108
+ }
109
+ default:
110
+ throw new Error('unreached');
111
+ }
112
+ }
113
+ function getGeneratorDefinition(value) {
114
+ if (typeof value === 'string') {
115
+ return {
116
+ generator: value,
117
+ arguments: [],
118
+ };
119
+ }
120
+ return value;
121
+ }
122
+ function getCasualCustomValue(generatorDefinition, opts) {
123
+ // If there is a mapping to a `casual` type, then use it and make sure
124
+ // to call it if it's a function
125
+ var embeddedGenerator = casual[generatorDefinition.generator];
126
+ if (!embeddedGenerator && generatorDefinition.generator) {
127
+ return generatorDefinition.generator;
128
+ }
129
+ var generatorArgs = Array.isArray(generatorDefinition.arguments)
130
+ ? generatorDefinition.arguments
131
+ : [generatorDefinition.arguments];
132
+ var extraArguments = [];
133
+ var hasExtra = generatorDefinition.extra;
134
+ if (hasExtra && generatorDefinition.extra.arguments) {
135
+ extraArguments = Array.isArray(generatorDefinition.extra.arguments)
136
+ ? generatorDefinition.extra.arguments
137
+ : [generatorDefinition.extra.arguments];
138
+ }
139
+ if (opts.dynamicValues) {
140
+ var extraCall = generatorDefinition.extra
141
+ ? extraArguments.length
142
+ ? ".".concat(generatorDefinition.extra.function, "(...").concat(JSON.stringify(extraArguments), ")")
143
+ : ".".concat(generatorDefinition.extra.function, "()")
144
+ : '';
145
+ var functionCall = '';
146
+ if (typeof embeddedGenerator === 'function') {
147
+ functionCall = generatorArgs.length
148
+ ? "(...".concat(JSON.stringify(generatorArgs), ")")
149
+ : '()';
150
+ }
151
+ return "casual['".concat(generatorDefinition.generator, "']").concat(functionCall).concat(extraCall);
152
+ }
153
+ var value = typeof embeddedGenerator === 'function'
154
+ ? embeddedGenerator.apply(void 0, generatorArgs) : embeddedGenerator;
155
+ if (hasExtra) {
156
+ value = value[generatorDefinition.extra.function].apply(value, (extraArguments ? extraArguments : []));
157
+ }
158
+ if (typeof value === 'string') {
159
+ return "'".concat(value, "'");
160
+ }
161
+ if (typeof value === 'object') {
162
+ return "".concat(JSON.stringify(value));
163
+ }
164
+ return value;
165
+ }
166
+ function getFakerGenerators(generatorName) {
167
+ var embeddedGenerator = faker;
168
+ var dynamicGenerator = 'faker';
169
+ if (typeof generatorName === 'string') {
170
+ var generatorPath = generatorName.split('.');
171
+ for (var _i = 0, generatorPath_1 = generatorPath; _i < generatorPath_1.length; _i++) {
172
+ var key = generatorPath_1[_i];
173
+ if (typeof embeddedGenerator === 'object' && key in embeddedGenerator) {
174
+ embeddedGenerator = embeddedGenerator[key];
175
+ dynamicGenerator = "".concat(dynamicGenerator, "['").concat(key, "']");
176
+ }
177
+ }
178
+ }
179
+ // If the faker generator is not a function, we can assume the path is wrong
180
+ if (typeof embeddedGenerator === 'function') {
181
+ return { embeddedGenerator: embeddedGenerator, dynamicGenerator: dynamicGenerator };
182
+ }
183
+ return { embeddedGenerator: null, dynamicGenerator: null };
184
+ }
185
+ function getFakerCustomValue(generatorDefinition, opts) {
186
+ var _a;
187
+ // If there is a mapping to a `faker` type, then use it
188
+ var _b = getFakerGenerators(generatorDefinition.generator), embeddedGenerator = _b.embeddedGenerator, dynamicGenerator = _b.dynamicGenerator;
189
+ if (!embeddedGenerator && generatorDefinition.generator) {
190
+ return generatorDefinition.generator;
191
+ }
192
+ var generatorArgs = Array.isArray(generatorDefinition.arguments)
193
+ ? generatorDefinition.arguments
194
+ : [generatorDefinition.arguments];
195
+ var extraArguments = [];
196
+ var hasExtra = generatorDefinition.extra;
197
+ if (hasExtra && generatorDefinition.extra.arguments) {
198
+ extraArguments = Array.isArray(generatorDefinition.extra.arguments)
199
+ ? generatorDefinition.extra.arguments
200
+ : [generatorDefinition.extra.arguments];
201
+ }
202
+ if (opts.dynamicValues) {
203
+ var extraCall = hasExtra
204
+ ? extraArguments.length
205
+ ? ".".concat(generatorDefinition.extra.function, "(...").concat(JSON.stringify(extraArguments), ")")
206
+ : ".".concat(generatorDefinition.extra.function, "()")
207
+ : '';
208
+ return "".concat(dynamicGenerator).concat(generatorArgs.length
209
+ ? "(...".concat(JSON.stringify(generatorArgs), ")").concat(extraCall)
210
+ : "()".concat(extraCall));
211
+ }
212
+ var value = hasExtra
213
+ ? (_a = embeddedGenerator.apply(void 0, generatorArgs))[generatorDefinition.extra.function].apply(_a, (extraArguments ? extraArguments : [])) : embeddedGenerator.apply(void 0, generatorArgs);
214
+ if (typeof value === 'string') {
215
+ return "'".concat(value, "'");
216
+ }
217
+ if (typeof value === 'object') {
218
+ return "".concat(JSON.stringify(value));
219
+ }
220
+ return value;
221
+ }
222
+ export function getCustomValue(generatorDefinition, opts) {
223
+ if (opts.generateLibrary === 'casual') {
224
+ return getCasualCustomValue(generatorDefinition, opts);
225
+ }
226
+ if (opts.generateLibrary === 'faker') {
227
+ return getFakerCustomValue(generatorDefinition, opts);
228
+ }
229
+ throw "Unknown generator library: ".concat(opts.generateLibrary);
230
+ }
231
+ function handleValueGeneration(opts, customScalar, baseGenerator) {
232
+ if (opts.fieldGeneration) {
233
+ // Check for a specific generation for the type & field
234
+ if (opts.typeName in opts.fieldGeneration &&
235
+ opts.fieldName in opts.fieldGeneration[opts.typeName]) {
236
+ var generatorDefinition = getGeneratorDefinition(opts.fieldGeneration[opts.typeName][opts.fieldName]);
237
+ return getCustomValue(generatorDefinition, opts);
238
+ }
239
+ // Check for a general field generation definition
240
+ if ('_all' in opts.fieldGeneration &&
241
+ opts.fieldName in opts.fieldGeneration._all) {
242
+ var generatorDefinition = getGeneratorDefinition(opts.fieldGeneration._all[opts.fieldName]);
243
+ return getCustomValue(generatorDefinition, opts);
244
+ }
245
+ }
246
+ if (customScalar) {
247
+ return getCustomValue(customScalar, opts);
248
+ }
249
+ if (opts.defaultNullableToNull && !opts.nonNull) {
250
+ return null;
251
+ }
252
+ return baseGenerator();
253
+ }
254
+ function getNamedImplementType(opts) {
255
+ if (!opts.currentType || !('name' in opts.currentType)) {
256
+ return '';
257
+ }
258
+ var name = opts.currentType.name.value;
259
+ var casedName = createNameConverter(opts.typeNamesConvention, opts.transformUnderscore)(name);
260
+ return "".concat(toMockName(name, casedName, opts.prefix), "()");
261
+ }
262
+ function getNamedType(opts) {
263
+ if (!opts.currentType) {
264
+ return '';
265
+ }
266
+ var mockValueGenerator = setupMockValueGenerator({
267
+ generateLibrary: opts.generateLibrary,
268
+ dynamicValues: opts.dynamicValues,
269
+ });
270
+ if (!opts.dynamicValues) {
271
+ mockValueGenerator.seed(hashedString(opts.typeName + opts.fieldName));
272
+ }
273
+ var name = opts.currentType.name.value;
274
+ var casedName = createNameConverter(opts.typeNamesConvention, opts.transformUnderscore)(name);
275
+ switch (name) {
276
+ case 'String': {
277
+ var customScalar = opts.customScalars
278
+ ? getGeneratorDefinition(opts.customScalars.String)
279
+ : null;
280
+ return handleValueGeneration(opts, customScalar, mockValueGenerator.word);
281
+ }
282
+ case 'Float': {
283
+ var customScalar = opts.customScalars
284
+ ? getGeneratorDefinition(opts.customScalars.Float)
285
+ : null;
286
+ return handleValueGeneration(opts, customScalar, mockValueGenerator.float);
287
+ }
288
+ case 'ID': {
289
+ var customScalar = opts.customScalars
290
+ ? getGeneratorDefinition(opts.customScalars.ID)
291
+ : null;
292
+ return handleValueGeneration(opts, customScalar, mockValueGenerator.uuid);
293
+ }
294
+ case 'Boolean': {
295
+ var customScalar = opts.customScalars
296
+ ? getGeneratorDefinition(opts.customScalars.Boolean)
297
+ : null;
298
+ return handleValueGeneration(opts, customScalar, mockValueGenerator.boolean);
299
+ }
300
+ case 'Int': {
301
+ var customScalar = opts.customScalars
302
+ ? getGeneratorDefinition(opts.customScalars.Int)
303
+ : null;
304
+ return handleValueGeneration(opts, customScalar, mockValueGenerator.integer);
305
+ }
306
+ default: {
307
+ var foundTypes = opts.types.filter(function (foundType) {
308
+ if (foundType.types && 'interfaces' in foundType.types) {
309
+ return foundType.types.interfaces.some(function (item) { return item.name.value === name; });
310
+ }
311
+ return foundType.name === name;
312
+ });
313
+ if (foundTypes.length) {
314
+ var foundType_1 = foundTypes[0];
315
+ switch (foundType_1.type) {
316
+ case 'enum': {
317
+ // It's an enum
318
+ var typenameConverter_1 = createNameConverter(opts.typeNamesConvention, opts.transformUnderscore);
319
+ var enumConverter_1 = createNameConverter(opts.enumValuesConvention, !opts.enumsAsTypes);
320
+ var value_1 = foundType_1.values ? foundType_1.values[0] : '';
321
+ return handleValueGeneration(opts, undefined, function () {
322
+ return opts.enumsAsTypes
323
+ ? "'".concat(value_1, "'")
324
+ : "".concat(typenameConverter_1(foundType_1.name, opts.enumsPrefix), ".").concat(enumConverter_1(value_1));
325
+ });
326
+ }
327
+ case 'union':
328
+ // Return the first union type node.
329
+ return getNamedType(__assign(__assign({}, opts), { currentType: foundType_1.types && foundType_1.types[0] }));
330
+ case 'scalar': {
331
+ var customScalar = opts.customScalars
332
+ ? getGeneratorDefinition(opts.customScalars[foundType_1.name])
333
+ : null;
334
+ // it's a scalar, let's use a string as a value if there is no custom
335
+ // mapping for this particular scalar
336
+ return handleValueGeneration(opts, customScalar, foundType_1.name === 'Date'
337
+ ? mockValueGenerator.date
338
+ : mockValueGenerator.word);
339
+ }
340
+ case 'implement':
341
+ if (opts.fieldGeneration &&
342
+ opts.fieldGeneration[opts.typeName] &&
343
+ opts.fieldGeneration[opts.typeName][opts.fieldName]) {
344
+ break;
345
+ }
346
+ return foundTypes
347
+ .map(function (implementType) {
348
+ return getNamedImplementType(__assign(__assign({}, opts), { currentType: implementType.types }));
349
+ })
350
+ .join(' || ');
351
+ default:
352
+ throw "foundType is unknown: ".concat(foundType_1.name, ": ").concat(foundType_1.type);
353
+ }
354
+ }
355
+ if (opts.terminateCircularRelationships) {
356
+ return handleValueGeneration(opts, null, function () {
357
+ return "!pickedFields.has('".concat(opts.fieldName, "') && relationshipsToOmit.has('").concat(casedName, "') ? {} as ").concat(casedName, " : ").concat(toMockName(name, casedName, opts.prefix), "({}, relationshipsToOmit, pickedFields.get('").concat(opts.fieldName, "'))");
358
+ });
359
+ }
360
+ else {
361
+ return handleValueGeneration(opts, null, function () {
362
+ return opts.terminateCircularRelationships
363
+ ? "".concat(toMockName(name, casedName, opts.prefix), "({}, new Set(), pickedFields.get('").concat(opts.fieldName, "'))")
364
+ : "".concat(toMockName(name, casedName, opts.prefix), "({}, pickedFields.get('").concat(opts.fieldName, "'))");
365
+ });
366
+ }
367
+ }
368
+ }
369
+ }
370
+ //# sourceMappingURL=mock-value-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-value-generator.js","sourceRoot":"","sources":["../../../src/mock-value-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import { ASTKindToNode, NamedTypeNode, ObjectTypeDefinitionNode, TypeNode } from 'graphql';
2
+ export type PickedFields = Map<string, PickedFields | undefined>;
3
+ export type NamingConvention = 'change-case-all#pascalCase' | 'keep' | string;
4
+ export type GeneratorName = keyof Casual.Casual | keyof Casual.functions | string;
5
+ export type GeneratorDefinition = {
6
+ generator: GeneratorName;
7
+ arguments: unknown;
8
+ extra?: {
9
+ function: string;
10
+ arguments?: unknown[] | unknown;
11
+ };
12
+ };
13
+ export type GeneratorOptions = GeneratorName | GeneratorDefinition;
14
+ export type ScalarMap = {
15
+ [name: string]: GeneratorOptions;
16
+ };
17
+ export type TypeFieldMap = {
18
+ [typeName: string]: {
19
+ [fieldName: string]: GeneratorOptions;
20
+ };
21
+ };
22
+ export interface TypeItem {
23
+ name: string;
24
+ type: 'enum' | 'scalar' | 'union' | 'implement';
25
+ values?: string[];
26
+ types?: readonly NamedTypeNode[] | ObjectTypeDefinitionNode;
27
+ }
28
+ export type VisitFn<TAnyNode, TVisitedNode = TAnyNode> = (
29
+ /** The current node being visiting. */
30
+ node: TVisitedNode,
31
+ /** The index or key to this node from the parent node or Array. */
32
+ key: string | number | undefined,
33
+ /** The parent immediately above this node, which may be an Array. */
34
+ parent: TAnyNode | readonly TAnyNode[] | undefined,
35
+ /** The key path to get to this node from the root node. */
36
+ path: readonly (string | number)[],
37
+ /**
38
+ * All nodes and Arrays visited before reaching parent of this node.
39
+ * These correspond to array indices in `path`.
40
+ * Note: ancestors includes arrays which contain the parent of visited node.
41
+ */
42
+ ancestors: readonly (TAnyNode | readonly TAnyNode[])[]) => any;
43
+ export type VisitorType = {
44
+ [K in keyof ASTKindToNode]?: VisitFn<ASTKindToNode[keyof ASTKindToNode], ASTKindToNode[K]>;
45
+ };
46
+ export interface FieldData {
47
+ name: string;
48
+ type: TypeData;
49
+ typeNode?: TypeNode;
50
+ isList: boolean;
51
+ }
52
+ export interface FieldInfo {
53
+ name: string;
54
+ type: TypeInfo;
55
+ typeNode?: TypeNode;
56
+ isList: boolean;
57
+ }
58
+ export interface TypeData {
59
+ name: string;
60
+ selections: FieldData[];
61
+ fragments: string[];
62
+ }
63
+ export interface TypeInfo {
64
+ name: string;
65
+ selections: FieldInfo[];
66
+ }
67
+ export declare enum OperationKind {
68
+ QUERY = "QUERY",
69
+ MUTATION = "MUTATION"
70
+ }
71
+ export interface OperationData {
72
+ name: string;
73
+ kind: OperationKind;
74
+ selections: FieldData[];
75
+ }
76
+ export interface OperationInfo {
77
+ name: string;
78
+ type: OperationKind;
79
+ selections: FieldInfo[];
80
+ }
81
+ export interface FragmentData {
82
+ name: string;
83
+ rootTypeName: string;
84
+ selections: FieldData[];
85
+ fragments: string[];
86
+ }
87
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export var OperationKind;
2
+ (function (OperationKind) {
3
+ OperationKind["QUERY"] = "QUERY";
4
+ OperationKind["MUTATION"] = "MUTATION";
5
+ })(OperationKind || (OperationKind = {}));
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAqFA,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,gCAAe,CAAA;IACf,sCAAqB,CAAA;AACvB,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB"}
@@ -0,0 +1,10 @@
1
+ export declare const PickedFields = "type PickedFields = Map<string, PickedFields | undefined>;";
2
+ export declare const DeepPartial = "type DeepPartial<T> = T extends object\n ? {\n [P in keyof T]?: DeepPartial<T[P]>;\n }\n : T;";
3
+ export declare const Head = "type Head<T extends string> = T extends `${infer First}.${string}` ? First : T;";
4
+ export declare const Tail = "type Tail<T extends string> = T extends `${string}.${infer Rest}`\n ? Rest\n : never;";
5
+ export declare const RestOf = "type RestOf<T extends Record<string, string>> = {\n [P in keyof T as `${Tail<string & P>}`]: T[P];\n};";
6
+ export declare const OptionalArrayElementType = "type OptionalArrayElementType<T> = T extends (infer U)[]\n ? NonNullable<U>\n : never;";
7
+ export declare const DeepPick = "type DeepPick<T, K extends string> = T extends object\n ? {\n [P in Head<K> & keyof T]: T[P] extends\n | readonly unknown[]\n | null\n | undefined\n ? DeepPick<\n OptionalArrayElementType<T[P]>,\n Tail<Extract<K, `${P}.${string}`>>\n >[]\n : DeepPick<T[P], Tail<Extract<K, `${P}.${string}`>>>;\n }\n : T;";
8
+ export declare const DeepMapKeys = "type DeepMapKeys<T, Mappings extends Record<string, string>> = T extends object\n ? {\n [P in keyof T as P extends keyof Mappings\n ? Mappings[P]\n : P]: T[P] extends readonly unknown[] | null | undefined\n ? DeepMapKeys<OptionalArrayElementType<T[P]>, RestOf<Mappings>>[]\n : DeepMapKeys<T[P], RestOf<Mappings>>;\n }\n : T;";
9
+ export declare function getUtilTypes(): string;
10
+ //# sourceMappingURL=utility-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utility-types.d.ts","sourceRoot":"","sources":["../../../src/utility-types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,+DAA+D,CAAC;AAEzF,eAAO,MAAM,WAAW,4GAIjB,CAAC;AAER,eAAO,MAAM,IAAI,oFAAwF,CAAC;AAE1G,eAAO,MAAM,IAAI,4FAEN,CAAC;AAEZ,eAAO,MAAM,MAAM,4GAEhB,CAAC;AAEJ,eAAO,MAAM,wBAAwB,6FAE1B,CAAC;AAEZ,eAAO,MAAM,QAAQ,iYAYd,CAAC;AAER,eAAO,MAAM,WAAW,+WAQjB,CAAC;AAER,wBAAgB,YAAY,WAkB3B"}
@@ -0,0 +1,12 @@
1
+ export var PickedFields = "type PickedFields = Map<string, PickedFields | undefined>;";
2
+ export var DeepPartial = "type DeepPartial<T> = T extends object\n ? {\n [P in keyof T]?: DeepPartial<T[P]>;\n }\n : T;";
3
+ export var Head = "type Head<T extends string> = T extends `${infer First}.${string}` ? First : T;";
4
+ export var Tail = "type Tail<T extends string> = T extends `${string}.${infer Rest}`\n ? Rest\n : never;";
5
+ export var RestOf = "type RestOf<T extends Record<string, string>> = {\n [P in keyof T as `${Tail<string & P>}`]: T[P];\n};";
6
+ export var OptionalArrayElementType = "type OptionalArrayElementType<T> = T extends (infer U)[]\n ? NonNullable<U>\n : never;";
7
+ export var DeepPick = "type DeepPick<T, K extends string> = T extends object\n ? {\n [P in Head<K> & keyof T]: T[P] extends\n | readonly unknown[]\n | null\n | undefined\n ? DeepPick<\n OptionalArrayElementType<T[P]>,\n Tail<Extract<K, `${P}.${string}`>>\n >[]\n : DeepPick<T[P], Tail<Extract<K, `${P}.${string}`>>>;\n }\n : T;";
8
+ export var DeepMapKeys = "type DeepMapKeys<T, Mappings extends Record<string, string>> = T extends object\n ? {\n [P in keyof T as P extends keyof Mappings\n ? Mappings[P]\n : P]: T[P] extends readonly unknown[] | null | undefined\n ? DeepMapKeys<OptionalArrayElementType<T[P]>, RestOf<Mappings>>[]\n : DeepMapKeys<T[P], RestOf<Mappings>>;\n }\n : T;";
9
+ export function getUtilTypes() {
10
+ return "\n".concat(PickedFields, "\n\n").concat(DeepPartial, "\n\n").concat(Head, "\n\n").concat(Tail, "\n\n").concat(RestOf, "\n\n").concat(OptionalArrayElementType, "\n\n").concat(DeepPick, "\n\n").concat(DeepMapKeys, "\n");
11
+ }
12
+ //# sourceMappingURL=utility-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utility-types.js","sourceRoot":"","sources":["../../../src/utility-types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,YAAY,GAAG,4DAA4D,CAAC;AAEzF,MAAM,CAAC,IAAM,WAAW,GAAG,yGAIpB,CAAC;AAER,MAAM,CAAC,IAAM,IAAI,GAAG,iFAAqF,CAAC;AAE1G,MAAM,CAAC,IAAM,IAAI,GAAG,yFAET,CAAC;AAEZ,MAAM,CAAC,IAAM,MAAM,GAAG,yGAEnB,CAAC;AAEJ,MAAM,CAAC,IAAM,wBAAwB,GAAG,0FAE7B,CAAC;AAEZ,MAAM,CAAC,IAAM,QAAQ,GAAG,8XAYjB,CAAC;AAER,MAAM,CAAC,IAAM,WAAW,GAAG,4WAQpB,CAAC;AAER,MAAM,UAAU,YAAY;IAC1B,OAAO,YACP,YAAY,iBAEZ,WAAW,iBAEX,IAAI,iBAEJ,IAAI,iBAEJ,MAAM,iBAEN,wBAAwB,iBAExB,QAAQ,iBAER,WAAW,OACZ,CAAC;AACF,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { Types } from '@graphql-codegen/plugin-helpers';
2
+ import { FieldNode, FragmentDefinitionNode, GraphQLObjectType, GraphQLOutputType, GraphQLSchema } from 'graphql';
3
+ import { OperationInfo, OperationData, FragmentData, TypeData } from './types';
4
+ type DocumentFile = Types.DocumentFile;
5
+ export interface DocumentsToOperationsResult {
6
+ operations: OperationData[];
7
+ fragments: FragmentData[];
8
+ }
9
+ export interface SimplifyOperationsDataResult {
10
+ queries: OperationInfo[];
11
+ mutations: OperationInfo[];
12
+ }
13
+ export declare function getTypeName(type: GraphQLOutputType): string;
14
+ export declare function selectionNodeToTypeData(node: FieldNode | FragmentDefinitionNode, schema: GraphQLSchema, typeName: string, parentType: GraphQLObjectType): TypeData;
15
+ export declare function documentsToOperations(documents: DocumentFile[], schema: GraphQLSchema): DocumentsToOperationsResult;
16
+ export declare function simplifyOperationsData(operationsData: OperationData[], fragments?: FragmentData[]): SimplifyOperationsDataResult;
17
+ export {};
18
+ //# sourceMappingURL=documents-to-operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documents-to-operations.d.ts","sourceRoot":"","sources":["../../src/documents-to-operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAExD,OAAO,EACL,SAAS,EACT,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EAQd,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,EACZ,QAAQ,EAIT,MAAM,SAAS,CAAC;AAEjB,KAAK,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;AAEvC,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,SAAS,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,SAAS,EAAE,aAAa,EAAE,CAAC;CAC5B;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAM3D;AAcD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,SAAS,GAAG,sBAAsB,EACxC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,iBAAiB,GAC5B,QAAQ,CAqEV;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,YAAY,EAAE,EACzB,MAAM,EAAE,aAAa,GACpB,2BAA2B,CAuG7B;AAED,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,aAAa,EAAE,EAC/B,SAAS,GAAE,YAAY,EAAO,GAC7B,4BAA4B,CAsB9B"}