@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,377 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCustomValue = exports.generateMockValue = exports.setupFunctionTokens = exports.setupMockValueGenerator = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var casual_1 = tslib_1.__importDefault(require("casual"));
6
+ var faker_1 = require("@faker-js/faker");
7
+ var helpers_1 = require("./helpers");
8
+ var CasualMockValueGenerator = /** @class */ (function () {
9
+ function CasualMockValueGenerator(opts) {
10
+ var _this = this;
11
+ this.word = function () { return (_this.dynamicValues ? "casual.word" : "'".concat(casual_1.default.word, "'")); };
12
+ this.uuid = function () { return (_this.dynamicValues ? "casual.uuid" : "'".concat(casual_1.default.uuid, "'")); };
13
+ this.boolean = function () { return (_this.dynamicValues ? "casual.boolean" : casual_1.default.boolean); };
14
+ this.integer = function () {
15
+ return _this.dynamicValues
16
+ ? "casual.integer(0, 9999)"
17
+ : "".concat(casual_1.default.integer(0, 9999));
18
+ };
19
+ this.float = function () {
20
+ return _this.dynamicValues
21
+ ? "Math.round(casual.double(0, 10) * 100) / 100"
22
+ : "".concat(Math.round(casual_1.default.double(0, 10) * 100) / 100);
23
+ };
24
+ this.date = function () {
25
+ return _this.dynamicValues
26
+ ? "new Date(casual.unix_time).toISOString()"
27
+ : "'".concat(new Date(casual_1.default.unix_time).toISOString(), "'");
28
+ };
29
+ this.seed = function (seed) { return casual_1.default.seed(seed); };
30
+ this.dynamicValues = opts.dynamicValues;
31
+ }
32
+ return CasualMockValueGenerator;
33
+ }());
34
+ var casualFunctionTokens = {
35
+ import: "import casual from 'casual';",
36
+ seed: 'casual.seed(0);',
37
+ seedFunction: 'export const seedMocks = (seed: number) => casual.seed(seed);',
38
+ };
39
+ var FakerMockValueGenerator = /** @class */ (function () {
40
+ function FakerMockValueGenerator(opts) {
41
+ var _this = this;
42
+ this.word = function () {
43
+ return _this.dynamicValues ? "faker.lorem.word()" : "'".concat(faker_1.faker.lorem.word(), "'");
44
+ };
45
+ this.uuid = function () {
46
+ return _this.dynamicValues ? "faker.datatype.uuid()" : "'".concat(faker_1.faker.datatype.uuid(), "'");
47
+ };
48
+ this.boolean = function () {
49
+ return _this.dynamicValues ? "faker.datatype.boolean()" : faker_1.faker.datatype.boolean();
50
+ };
51
+ this.integer = function () {
52
+ return _this.dynamicValues
53
+ ? "faker.datatype.number({ min: 0, max: 9999 })"
54
+ : faker_1.faker.datatype.number({ min: 0, max: 9999 });
55
+ };
56
+ this.float = function () {
57
+ return _this.dynamicValues
58
+ ? "faker.datatype.float({ min: 0, max: 10, precision: 0.1 })"
59
+ : faker_1.faker.datatype.float({ min: 0, max: 10, precision: 0.1 });
60
+ };
61
+ this.date = function () {
62
+ return _this.dynamicValues
63
+ ? "faker.date.past(1, new Date(2022, 0)).toISOString()"
64
+ : "'".concat(faker_1.faker.date.past(1, new Date(2022, 0)).toISOString(), "'");
65
+ };
66
+ this.seed = function (seed) { return faker_1.faker.seed(seed); };
67
+ this.dynamicValues = opts.dynamicValues;
68
+ }
69
+ return FakerMockValueGenerator;
70
+ }());
71
+ var fakerFunctionTokens = {
72
+ import: "import { faker } from '@faker-js/faker';",
73
+ seed: 'faker.seed(0);',
74
+ seedFunction: 'export const seedMocks = (seed: number) => faker.seed(seed);',
75
+ };
76
+ function setupMockValueGenerator(_a) {
77
+ var generateLibrary = _a.generateLibrary, dynamicValues = _a.dynamicValues;
78
+ switch (generateLibrary) {
79
+ case 'casual':
80
+ return new CasualMockValueGenerator({ dynamicValues: dynamicValues });
81
+ case 'faker':
82
+ return new FakerMockValueGenerator({ dynamicValues: dynamicValues });
83
+ }
84
+ }
85
+ exports.setupMockValueGenerator = setupMockValueGenerator;
86
+ function setupFunctionTokens(generateLibrary) {
87
+ switch (generateLibrary) {
88
+ case 'casual':
89
+ return casualFunctionTokens;
90
+ case 'faker':
91
+ return fakerFunctionTokens;
92
+ }
93
+ }
94
+ exports.setupFunctionTokens = setupFunctionTokens;
95
+ function generateMockValue(opts) {
96
+ var _a, _b;
97
+ switch (opts.currentType.kind) {
98
+ case 'NamedType':
99
+ return getNamedType(tslib_1.__assign(tslib_1.__assign({}, opts), { currentType: opts.currentType }));
100
+ case 'NonNullType':
101
+ return generateMockValue(tslib_1.__assign(tslib_1.__assign({}, opts), { currentType: opts.currentType.type, nonNull: true }));
102
+ case 'ListType': {
103
+ var hasOverride = (_b = (_a = opts.fieldGeneration) === null || _a === void 0 ? void 0 : _a[opts.typeName]) === null || _b === void 0 ? void 0 : _b[opts.fieldName];
104
+ if (!hasOverride && opts.defaultNullableToNull && !opts.nonNull) {
105
+ return null;
106
+ }
107
+ var listElements = Array.from({ length: opts.listElementCount }, function (_, index) {
108
+ return generateMockValue(tslib_1.__assign(tslib_1.__assign({}, opts), { fieldName: opts.listElementCount === 1
109
+ ? opts.fieldName
110
+ : "".concat(opts.fieldName).concat(index), currentType: opts.currentType.type }));
111
+ });
112
+ return "[".concat(listElements.join(', '), "]");
113
+ }
114
+ default:
115
+ throw new Error('unreached');
116
+ }
117
+ }
118
+ exports.generateMockValue = generateMockValue;
119
+ function getGeneratorDefinition(value) {
120
+ if (typeof value === 'string') {
121
+ return {
122
+ generator: value,
123
+ arguments: [],
124
+ };
125
+ }
126
+ return value;
127
+ }
128
+ function getCasualCustomValue(generatorDefinition, opts) {
129
+ // If there is a mapping to a `casual` type, then use it and make sure
130
+ // to call it if it's a function
131
+ var embeddedGenerator = casual_1.default[generatorDefinition.generator];
132
+ if (!embeddedGenerator && generatorDefinition.generator) {
133
+ return generatorDefinition.generator;
134
+ }
135
+ var generatorArgs = Array.isArray(generatorDefinition.arguments)
136
+ ? generatorDefinition.arguments
137
+ : [generatorDefinition.arguments];
138
+ var extraArguments = [];
139
+ var hasExtra = generatorDefinition.extra;
140
+ if (hasExtra && generatorDefinition.extra.arguments) {
141
+ extraArguments = Array.isArray(generatorDefinition.extra.arguments)
142
+ ? generatorDefinition.extra.arguments
143
+ : [generatorDefinition.extra.arguments];
144
+ }
145
+ if (opts.dynamicValues) {
146
+ var extraCall = generatorDefinition.extra
147
+ ? extraArguments.length
148
+ ? ".".concat(generatorDefinition.extra.function, "(...").concat(JSON.stringify(extraArguments), ")")
149
+ : ".".concat(generatorDefinition.extra.function, "()")
150
+ : '';
151
+ var functionCall = '';
152
+ if (typeof embeddedGenerator === 'function') {
153
+ functionCall = generatorArgs.length
154
+ ? "(...".concat(JSON.stringify(generatorArgs), ")")
155
+ : '()';
156
+ }
157
+ return "casual['".concat(generatorDefinition.generator, "']").concat(functionCall).concat(extraCall);
158
+ }
159
+ var value = typeof embeddedGenerator === 'function'
160
+ ? embeddedGenerator.apply(void 0, generatorArgs) : embeddedGenerator;
161
+ if (hasExtra) {
162
+ value = value[generatorDefinition.extra.function].apply(value, (extraArguments ? extraArguments : []));
163
+ }
164
+ if (typeof value === 'string') {
165
+ return "'".concat(value, "'");
166
+ }
167
+ if (typeof value === 'object') {
168
+ return "".concat(JSON.stringify(value));
169
+ }
170
+ return value;
171
+ }
172
+ function getFakerGenerators(generatorName) {
173
+ var embeddedGenerator = faker_1.faker;
174
+ var dynamicGenerator = 'faker';
175
+ if (typeof generatorName === 'string') {
176
+ var generatorPath = generatorName.split('.');
177
+ for (var _i = 0, generatorPath_1 = generatorPath; _i < generatorPath_1.length; _i++) {
178
+ var key = generatorPath_1[_i];
179
+ if (typeof embeddedGenerator === 'object' && key in embeddedGenerator) {
180
+ embeddedGenerator = embeddedGenerator[key];
181
+ dynamicGenerator = "".concat(dynamicGenerator, "['").concat(key, "']");
182
+ }
183
+ }
184
+ }
185
+ // If the faker generator is not a function, we can assume the path is wrong
186
+ if (typeof embeddedGenerator === 'function') {
187
+ return { embeddedGenerator: embeddedGenerator, dynamicGenerator: dynamicGenerator };
188
+ }
189
+ return { embeddedGenerator: null, dynamicGenerator: null };
190
+ }
191
+ function getFakerCustomValue(generatorDefinition, opts) {
192
+ var _a;
193
+ // If there is a mapping to a `faker` type, then use it
194
+ var _b = getFakerGenerators(generatorDefinition.generator), embeddedGenerator = _b.embeddedGenerator, dynamicGenerator = _b.dynamicGenerator;
195
+ if (!embeddedGenerator && generatorDefinition.generator) {
196
+ return generatorDefinition.generator;
197
+ }
198
+ var generatorArgs = Array.isArray(generatorDefinition.arguments)
199
+ ? generatorDefinition.arguments
200
+ : [generatorDefinition.arguments];
201
+ var extraArguments = [];
202
+ var hasExtra = generatorDefinition.extra;
203
+ if (hasExtra && generatorDefinition.extra.arguments) {
204
+ extraArguments = Array.isArray(generatorDefinition.extra.arguments)
205
+ ? generatorDefinition.extra.arguments
206
+ : [generatorDefinition.extra.arguments];
207
+ }
208
+ if (opts.dynamicValues) {
209
+ var extraCall = hasExtra
210
+ ? extraArguments.length
211
+ ? ".".concat(generatorDefinition.extra.function, "(...").concat(JSON.stringify(extraArguments), ")")
212
+ : ".".concat(generatorDefinition.extra.function, "()")
213
+ : '';
214
+ return "".concat(dynamicGenerator).concat(generatorArgs.length
215
+ ? "(...".concat(JSON.stringify(generatorArgs), ")").concat(extraCall)
216
+ : "()".concat(extraCall));
217
+ }
218
+ var value = hasExtra
219
+ ? (_a = embeddedGenerator.apply(void 0, generatorArgs))[generatorDefinition.extra.function].apply(_a, (extraArguments ? extraArguments : [])) : embeddedGenerator.apply(void 0, generatorArgs);
220
+ if (typeof value === 'string') {
221
+ return "'".concat(value, "'");
222
+ }
223
+ if (typeof value === 'object') {
224
+ return "".concat(JSON.stringify(value));
225
+ }
226
+ return value;
227
+ }
228
+ function getCustomValue(generatorDefinition, opts) {
229
+ if (opts.generateLibrary === 'casual') {
230
+ return getCasualCustomValue(generatorDefinition, opts);
231
+ }
232
+ if (opts.generateLibrary === 'faker') {
233
+ return getFakerCustomValue(generatorDefinition, opts);
234
+ }
235
+ throw "Unknown generator library: ".concat(opts.generateLibrary);
236
+ }
237
+ exports.getCustomValue = getCustomValue;
238
+ function handleValueGeneration(opts, customScalar, baseGenerator) {
239
+ if (opts.fieldGeneration) {
240
+ // Check for a specific generation for the type & field
241
+ if (opts.typeName in opts.fieldGeneration &&
242
+ opts.fieldName in opts.fieldGeneration[opts.typeName]) {
243
+ var generatorDefinition = getGeneratorDefinition(opts.fieldGeneration[opts.typeName][opts.fieldName]);
244
+ return getCustomValue(generatorDefinition, opts);
245
+ }
246
+ // Check for a general field generation definition
247
+ if ('_all' in opts.fieldGeneration &&
248
+ opts.fieldName in opts.fieldGeneration._all) {
249
+ var generatorDefinition = getGeneratorDefinition(opts.fieldGeneration._all[opts.fieldName]);
250
+ return getCustomValue(generatorDefinition, opts);
251
+ }
252
+ }
253
+ if (customScalar) {
254
+ return getCustomValue(customScalar, opts);
255
+ }
256
+ if (opts.defaultNullableToNull && !opts.nonNull) {
257
+ return null;
258
+ }
259
+ return baseGenerator();
260
+ }
261
+ function getNamedImplementType(opts) {
262
+ if (!opts.currentType || !('name' in opts.currentType)) {
263
+ return '';
264
+ }
265
+ var name = opts.currentType.name.value;
266
+ var casedName = (0, helpers_1.createNameConverter)(opts.typeNamesConvention, opts.transformUnderscore)(name);
267
+ return "".concat((0, helpers_1.toMockName)(name, casedName, opts.prefix), "()");
268
+ }
269
+ function getNamedType(opts) {
270
+ if (!opts.currentType) {
271
+ return '';
272
+ }
273
+ var mockValueGenerator = setupMockValueGenerator({
274
+ generateLibrary: opts.generateLibrary,
275
+ dynamicValues: opts.dynamicValues,
276
+ });
277
+ if (!opts.dynamicValues) {
278
+ mockValueGenerator.seed((0, helpers_1.hashedString)(opts.typeName + opts.fieldName));
279
+ }
280
+ var name = opts.currentType.name.value;
281
+ var casedName = (0, helpers_1.createNameConverter)(opts.typeNamesConvention, opts.transformUnderscore)(name);
282
+ switch (name) {
283
+ case 'String': {
284
+ var customScalar = opts.customScalars
285
+ ? getGeneratorDefinition(opts.customScalars.String)
286
+ : null;
287
+ return handleValueGeneration(opts, customScalar, mockValueGenerator.word);
288
+ }
289
+ case 'Float': {
290
+ var customScalar = opts.customScalars
291
+ ? getGeneratorDefinition(opts.customScalars.Float)
292
+ : null;
293
+ return handleValueGeneration(opts, customScalar, mockValueGenerator.float);
294
+ }
295
+ case 'ID': {
296
+ var customScalar = opts.customScalars
297
+ ? getGeneratorDefinition(opts.customScalars.ID)
298
+ : null;
299
+ return handleValueGeneration(opts, customScalar, mockValueGenerator.uuid);
300
+ }
301
+ case 'Boolean': {
302
+ var customScalar = opts.customScalars
303
+ ? getGeneratorDefinition(opts.customScalars.Boolean)
304
+ : null;
305
+ return handleValueGeneration(opts, customScalar, mockValueGenerator.boolean);
306
+ }
307
+ case 'Int': {
308
+ var customScalar = opts.customScalars
309
+ ? getGeneratorDefinition(opts.customScalars.Int)
310
+ : null;
311
+ return handleValueGeneration(opts, customScalar, mockValueGenerator.integer);
312
+ }
313
+ default: {
314
+ var foundTypes = opts.types.filter(function (foundType) {
315
+ if (foundType.types && 'interfaces' in foundType.types) {
316
+ return foundType.types.interfaces.some(function (item) { return item.name.value === name; });
317
+ }
318
+ return foundType.name === name;
319
+ });
320
+ if (foundTypes.length) {
321
+ var foundType_1 = foundTypes[0];
322
+ switch (foundType_1.type) {
323
+ case 'enum': {
324
+ // It's an enum
325
+ var typenameConverter_1 = (0, helpers_1.createNameConverter)(opts.typeNamesConvention, opts.transformUnderscore);
326
+ var enumConverter_1 = (0, helpers_1.createNameConverter)(opts.enumValuesConvention, !opts.enumsAsTypes);
327
+ var value_1 = foundType_1.values ? foundType_1.values[0] : '';
328
+ return handleValueGeneration(opts, undefined, function () {
329
+ return opts.enumsAsTypes
330
+ ? "'".concat(value_1, "'")
331
+ : "".concat(typenameConverter_1(foundType_1.name, opts.enumsPrefix), ".").concat(enumConverter_1(value_1));
332
+ });
333
+ }
334
+ case 'union':
335
+ // Return the first union type node.
336
+ return getNamedType(tslib_1.__assign(tslib_1.__assign({}, opts), { currentType: foundType_1.types && foundType_1.types[0] }));
337
+ case 'scalar': {
338
+ var customScalar = opts.customScalars
339
+ ? getGeneratorDefinition(opts.customScalars[foundType_1.name])
340
+ : null;
341
+ // it's a scalar, let's use a string as a value if there is no custom
342
+ // mapping for this particular scalar
343
+ return handleValueGeneration(opts, customScalar, foundType_1.name === 'Date'
344
+ ? mockValueGenerator.date
345
+ : mockValueGenerator.word);
346
+ }
347
+ case 'implement':
348
+ if (opts.fieldGeneration &&
349
+ opts.fieldGeneration[opts.typeName] &&
350
+ opts.fieldGeneration[opts.typeName][opts.fieldName]) {
351
+ break;
352
+ }
353
+ return foundTypes
354
+ .map(function (implementType) {
355
+ return getNamedImplementType(tslib_1.__assign(tslib_1.__assign({}, opts), { currentType: implementType.types }));
356
+ })
357
+ .join(' || ');
358
+ default:
359
+ throw "foundType is unknown: ".concat(foundType_1.name, ": ").concat(foundType_1.type);
360
+ }
361
+ }
362
+ if (opts.terminateCircularRelationships) {
363
+ return handleValueGeneration(opts, null, function () {
364
+ return "!pickedFields.has('".concat(opts.fieldName, "') && relationshipsToOmit.has('").concat(casedName, "') ? {} as ").concat(casedName, " : ").concat((0, helpers_1.toMockName)(name, casedName, opts.prefix), "({}, relationshipsToOmit, pickedFields.get('").concat(opts.fieldName, "'))");
365
+ });
366
+ }
367
+ else {
368
+ return handleValueGeneration(opts, null, function () {
369
+ return opts.terminateCircularRelationships
370
+ ? "".concat((0, helpers_1.toMockName)(name, casedName, opts.prefix), "({}, new Set(), pickedFields.get('").concat(opts.fieldName, "'))")
371
+ : "".concat((0, helpers_1.toMockName)(name, casedName, opts.prefix), "({}, pickedFields.get('").concat(opts.fieldName, "'))");
372
+ });
373
+ }
374
+ }
375
+ }
376
+ }
377
+ //# 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,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OperationKind = void 0;
4
+ var OperationKind;
5
+ (function (OperationKind) {
6
+ OperationKind["QUERY"] = "QUERY";
7
+ OperationKind["MUTATION"] = "MUTATION";
8
+ })(OperationKind = exports.OperationKind || (exports.OperationKind = {}));
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAqFA,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,gCAAe,CAAA;IACf,sCAAqB,CAAA;AACvB,CAAC,EAHW,aAAa,GAAb,qBAAa,KAAb,qBAAa,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,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getUtilTypes = exports.DeepMapKeys = exports.DeepPick = exports.OptionalArrayElementType = exports.RestOf = exports.Tail = exports.Head = exports.DeepPartial = exports.PickedFields = void 0;
4
+ exports.PickedFields = "type PickedFields = Map<string, PickedFields | undefined>;";
5
+ exports.DeepPartial = "type DeepPartial<T> = T extends object\n ? {\n [P in keyof T]?: DeepPartial<T[P]>;\n }\n : T;";
6
+ exports.Head = "type Head<T extends string> = T extends `${infer First}.${string}` ? First : T;";
7
+ exports.Tail = "type Tail<T extends string> = T extends `${string}.${infer Rest}`\n ? Rest\n : never;";
8
+ exports.RestOf = "type RestOf<T extends Record<string, string>> = {\n [P in keyof T as `${Tail<string & P>}`]: T[P];\n};";
9
+ exports.OptionalArrayElementType = "type OptionalArrayElementType<T> = T extends (infer U)[]\n ? NonNullable<U>\n : never;";
10
+ exports.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;";
11
+ exports.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;";
12
+ function getUtilTypes() {
13
+ return "\n".concat(exports.PickedFields, "\n\n").concat(exports.DeepPartial, "\n\n").concat(exports.Head, "\n\n").concat(exports.Tail, "\n\n").concat(exports.RestOf, "\n\n").concat(exports.OptionalArrayElementType, "\n\n").concat(exports.DeepPick, "\n\n").concat(exports.DeepMapKeys, "\n");
14
+ }
15
+ exports.getUtilTypes = getUtilTypes;
16
+ //# sourceMappingURL=utility-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utility-types.js","sourceRoot":"","sources":["../../src/utility-types.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG,4DAA4D,CAAC;AAE5E,QAAA,WAAW,GAAG,yGAIpB,CAAC;AAEK,QAAA,IAAI,GAAG,iFAAqF,CAAC;AAE7F,QAAA,IAAI,GAAG,yFAET,CAAC;AAEC,QAAA,MAAM,GAAG,yGAEnB,CAAC;AAES,QAAA,wBAAwB,GAAG,0FAE7B,CAAC;AAEC,QAAA,QAAQ,GAAG,8XAYjB,CAAC;AAEK,QAAA,WAAW,GAAG,4WAQpB,CAAC;AAER,SAAgB,YAAY;IAC1B,OAAO,YACP,oBAAY,iBAEZ,mBAAW,iBAEX,YAAI,iBAEJ,YAAI,iBAEJ,cAAM,iBAEN,gCAAwB,iBAExB,gBAAQ,iBAER,mBAAW,OACZ,CAAC;AACF,CAAC;AAlBD,oCAkBC"}
package/package.json ADDED
@@ -0,0 +1,76 @@
1
+ {
2
+ "name": "@wix/graphql-codegen-ts-builders",
3
+ "version": "1.0.0",
4
+ "license": "UNLICENSED",
5
+ "author": {
6
+ "name": "ttsahi",
7
+ "email": "tsahit@wix.com"
8
+ },
9
+ "main": "dist/src/index.js",
10
+ "module": "dist/es/src/index.js",
11
+ "types": "dist/src/index.d.ts",
12
+ "files": [
13
+ "dist"
14
+ ],
15
+ "publishConfig": {
16
+ "registry": "https://registry.npmjs.org/",
17
+ "access": "public"
18
+ },
19
+ "scripts": {
20
+ "start": "yoshi start",
21
+ "build": "yoshi build",
22
+ "test": "WIX_PROTO_VALIDATION_LIB=joi yoshi test",
23
+ "test:watch": "WIX_PROTO_VALIDATION_LIB=joi yoshi test --watch",
24
+ "test:debug": "WIX_PROTO_VALIDATION_LIB=joi yoshi test http-method --debug",
25
+ "lint": "yoshi lint",
26
+ "lint:fix": "npm run lint --fix",
27
+ "posttest": "npm run lint"
28
+ },
29
+ "husky": {
30
+ "hooks": {
31
+ "pre-commit": "lint-staged"
32
+ }
33
+ },
34
+ "lint-staged": {
35
+ "*.{js,ts}": "yoshi lint"
36
+ },
37
+ "dependencies": {
38
+ "@faker-js/faker": "^7.6.0",
39
+ "@graphql-codegen/plugin-helpers": "^5.0.1",
40
+ "casual": "^1.6.2",
41
+ "graphql": "^16.7.1",
42
+ "indefinite": "^2.4.3",
43
+ "sentence-case": "^3.0.4"
44
+ },
45
+ "devDependencies": {
46
+ "@graphql-codegen/core": "^4.0.0",
47
+ "@graphql-codegen/typescript": "^4.0.1",
48
+ "@rushstack/eslint-patch": "^1.3.2",
49
+ "@types/fs-extra": "^9.0.13",
50
+ "@types/indefinite": "^2.3.1",
51
+ "@types/jest": "^24.9.1",
52
+ "@types/node": "^16.18.39",
53
+ "@wix/yoshi": "^5.162.14",
54
+ "fs-extra": "^11.1.1",
55
+ "husky": "^4.3.8",
56
+ "lint-staged": "^10.5.4",
57
+ "ts-jest": "^24.3.0",
58
+ "typescript": "~4.9.5"
59
+ },
60
+ "jest": {
61
+ "transform": {
62
+ "^.+\\.tsx?$": "ts-jest"
63
+ },
64
+ "testPathIgnorePatterns": [
65
+ "<rootDir>/dist/",
66
+ "<rootDir>/node_modules/"
67
+ ]
68
+ },
69
+ "wix": {
70
+ "artifact": {
71
+ "groupId": "com.wixpress",
72
+ "artifactId": "graphql-codegen-ts-builders"
73
+ }
74
+ },
75
+ "falconPackageHash": "bbda1a5f1c1028a0223e03c031bdcd0268b135cc8ee5a59df3e86c51"
76
+ }