@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,366 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.plugin = void 0;
4
+ var graphql_1 = require("graphql");
5
+ var faker_1 = require("@faker-js/faker");
6
+ var utility_types_1 = require("./utility-types");
7
+ var plugin_helpers_1 = require("@graphql-codegen/plugin-helpers");
8
+ var mock_value_generator_1 = require("./mock-value-generator");
9
+ var documents_to_operations_1 = require("./documents-to-operations");
10
+ var helpers_1 = require("./helpers");
11
+ var getMockString = function (typeName, fields, typeNamesConvention, terminateCircularRelationships, prefix, typesPrefix, transformUnderscore) {
12
+ if (typesPrefix === void 0) { typesPrefix = ''; }
13
+ var typeNameConverter = (0, helpers_1.createNameConverter)(typeNamesConvention, transformUnderscore);
14
+ var casedName = typeNameConverter(typeName);
15
+ var casedNameWithPrefix = typeNameConverter(typeName, typesPrefix);
16
+ if (terminateCircularRelationships) {
17
+ return "\nexport const ".concat((0, helpers_1.toMockName)(typeName, casedName, prefix), " = <T extends DeepPartial<").concat(casedNameWithPrefix, ">>(overrides?: T, _relationshipsToOmit: Set<string> = new Set(), pickedFields: PickedFields = new Map()): T => {\n const relationshipsToOmit: Set<string> = new Set(_relationshipsToOmit);\n relationshipsToOmit.add('").concat(casedName, "');\n const result = {} as T;\n\n").concat(fields, "\n\n return result;\n};");
18
+ }
19
+ else {
20
+ return "\nexport const ".concat((0, helpers_1.toMockName)(typeName, casedName, prefix), " = <T extends DeepPartial<").concat(casedNameWithPrefix, ">>(overrides?: T, pickedFields: PickedFields = new Map()): T => {\n const result = {} as T;\n\n").concat(fields, "\n\n return result;\n};");
21
+ }
22
+ };
23
+ var getImportTypes = function (_a) {
24
+ var typeNamesConvention = _a.typeNamesConvention, definitions = _a.definitions, types = _a.types, typesFile = _a.typesFile, typesPrefix = _a.typesPrefix, enumsPrefix = _a.enumsPrefix, transformUnderscore = _a.transformUnderscore, enumsAsTypes = _a.enumsAsTypes;
25
+ var typenameConverter = (0, helpers_1.createNameConverter)(typeNamesConvention, transformUnderscore);
26
+ var typeImports = (typesPrefix === null || typesPrefix === void 0 ? void 0 : typesPrefix.endsWith('.'))
27
+ ? [typesPrefix.slice(0, -1)]
28
+ : definitions
29
+ .filter(function (_a) {
30
+ var typeName = _a.typeName;
31
+ return !!typeName;
32
+ })
33
+ .map(function (_a) {
34
+ var typeName = _a.typeName;
35
+ return typenameConverter(typeName, typesPrefix);
36
+ });
37
+ var enumTypes = (enumsPrefix === null || enumsPrefix === void 0 ? void 0 : enumsPrefix.endsWith('.'))
38
+ ? [enumsPrefix.slice(0, -1)]
39
+ : types
40
+ .filter(function (_a) {
41
+ var type = _a.type;
42
+ return type === 'enum';
43
+ })
44
+ .map(function (_a) {
45
+ var name = _a.name;
46
+ return typenameConverter(name, enumsPrefix);
47
+ });
48
+ if (!enumsAsTypes) {
49
+ typeImports.push.apply(typeImports, enumTypes);
50
+ }
51
+ function onlyUnique(value, index, self) {
52
+ return self.indexOf(value) === index;
53
+ }
54
+ return typesFile
55
+ ? "import { ".concat(typeImports
56
+ .filter(onlyUnique)
57
+ .join(', '), " } from '").concat(typesFile, "';\n")
58
+ : '';
59
+ };
60
+ // This plugin was generated with the help of ast explorer.
61
+ // https://astexplorer.net
62
+ // Paste your graphql schema in it, and you'll be able to see what the `astNode` will look like
63
+ var plugin = function (schema, documents, config) {
64
+ var _a, _b, _c, _d, _e;
65
+ var _f = (0, documents_to_operations_1.documentsToOperations)(documents, schema), operations = _f.operations, fragments = _f.fragments;
66
+ var _g = (0, documents_to_operations_1.simplifyOperationsData)(operations, fragments), queries = _g.queries, mutations = _g.mutations;
67
+ var printedSchema = (0, graphql_1.printSchema)(schema); // Returns a string representation of the schema
68
+ var astNode = (0, graphql_1.parse)(printedSchema); // Transforms the string into ASTNode
69
+ if ('typenames' in config) {
70
+ throw new Error('Config `typenames` was renamed to `typeNames`. Please update your config');
71
+ }
72
+ var enumValuesConvention = config.enumValues || 'change-case-all#pascalCase';
73
+ var typeNamesConvention = config.typeNames || 'change-case-all#pascalCase';
74
+ var transformUnderscore = (_a = config.transformUnderscore) !== null && _a !== void 0 ? _a : true;
75
+ var listElementCount = Math.max(0, (_b = config.listElementCount) !== null && _b !== void 0 ? _b : 1);
76
+ var dynamicValues = !!config.dynamicValues;
77
+ var generateLibrary = config.generateLibrary || 'casual';
78
+ var enumsAsTypes = (_c = config.enumsAsTypes) !== null && _c !== void 0 ? _c : false;
79
+ var useImplementingTypes = (_d = config.useImplementingTypes) !== null && _d !== void 0 ? _d : false;
80
+ var defaultNullableToNull = (_e = config.defaultNullableToNull) !== null && _e !== void 0 ? _e : false;
81
+ if (generateLibrary === 'faker' && config.locale) {
82
+ faker_1.faker.setLocale(config.locale);
83
+ }
84
+ // List of types that are enums
85
+ var types = [];
86
+ var typeVisitor = {
87
+ EnumTypeDefinition: function (node) {
88
+ var name = node.name.value;
89
+ if (!types.find(function (enumType) { return enumType.name === name; })) {
90
+ types.push({
91
+ name: name,
92
+ type: 'enum',
93
+ values: node.values ? node.values.map(function (node) { return node.name.value; }) : [],
94
+ });
95
+ }
96
+ },
97
+ UnionTypeDefinition: function (node) {
98
+ var name = node.name.value;
99
+ if (!types.find(function (enumType) { return enumType.name === name; })) {
100
+ types.push({
101
+ name: name,
102
+ type: 'union',
103
+ types: node.types,
104
+ });
105
+ }
106
+ },
107
+ ObjectTypeDefinition: function (node) {
108
+ // This function triggered per each type
109
+ var typeName = node.name.value;
110
+ if (config.useImplementingTypes) {
111
+ if (!types.find(function (objectType) { return objectType.name === typeName; })) {
112
+ node.interfaces.length &&
113
+ types.push({
114
+ name: typeName,
115
+ type: 'implement',
116
+ types: node,
117
+ });
118
+ }
119
+ }
120
+ },
121
+ ScalarTypeDefinition: function (node) {
122
+ var name = node.name.value;
123
+ if (!types.find(function (scalarType) { return scalarType.name === name; })) {
124
+ types.push({
125
+ name: name,
126
+ type: 'scalar',
127
+ });
128
+ }
129
+ },
130
+ };
131
+ var visitor = {
132
+ FieldDefinition: function (node) {
133
+ var fieldName = node.name.value;
134
+ return {
135
+ name: fieldName,
136
+ mockFn: function (typeName) {
137
+ var value = (0, mock_value_generator_1.generateMockValue)({
138
+ typeName: typeName,
139
+ fieldName: fieldName,
140
+ types: types,
141
+ typeNamesConvention: typeNamesConvention,
142
+ enumValuesConvention: enumValuesConvention,
143
+ terminateCircularRelationships: !!config.terminateCircularRelationships,
144
+ prefix: config.prefix,
145
+ typesPrefix: config.typesPrefix,
146
+ enumsPrefix: config.enumsPrefix,
147
+ currentType: node.type,
148
+ customScalars: config.scalars,
149
+ transformUnderscore: transformUnderscore,
150
+ listElementCount: listElementCount,
151
+ dynamicValues: dynamicValues,
152
+ generateLibrary: generateLibrary,
153
+ fieldGeneration: config.fieldGeneration,
154
+ enumsAsTypes: enumsAsTypes,
155
+ useImplementingTypes: useImplementingTypes,
156
+ defaultNullableToNull: defaultNullableToNull,
157
+ nonNull: false,
158
+ });
159
+ return " if (pickedFields.size === 0 || pickedFields.has('".concat(fieldName, "')) {\n result.").concat(fieldName, " = overrides && overrides.hasOwnProperty('").concat(fieldName, "') ? ").concat(typeof value === 'string' && value.includes('{}')
160
+ ? value.includes('[')
161
+ ? "overrides.".concat(fieldName, "!.map((x) => ").concat(value
162
+ .replace('[', '')
163
+ .replace(']', '')
164
+ .replace('({}', '(x ?? {}'), ")").replace('{} as', 'x ?? {} as')
165
+ : "".concat(value
166
+ .replace('({}', "(overrides.".concat(fieldName, " ?? {}"))
167
+ .replace('{} as', "overrides.".concat(fieldName, " ?? {} as")))
168
+ : "overrides.".concat(fieldName, "!"), " : ").concat(value, ";\n }");
169
+ },
170
+ };
171
+ },
172
+ InputObjectTypeDefinition: function (node) {
173
+ var fieldName = node.name.value;
174
+ return {
175
+ typeName: fieldName,
176
+ mockFn: function () {
177
+ var mockFields = node.fields
178
+ ? node.fields
179
+ .map(function (field) {
180
+ var value = (0, mock_value_generator_1.generateMockValue)({
181
+ typeName: fieldName,
182
+ fieldName: field.name.value,
183
+ types: types,
184
+ typeNamesConvention: typeNamesConvention,
185
+ enumValuesConvention: enumValuesConvention,
186
+ terminateCircularRelationships: !!config.terminateCircularRelationships,
187
+ prefix: config.prefix,
188
+ typesPrefix: config.typesPrefix,
189
+ enumsPrefix: config.enumsPrefix,
190
+ currentType: field.type,
191
+ customScalars: config.scalars,
192
+ transformUnderscore: transformUnderscore,
193
+ listElementCount: listElementCount,
194
+ dynamicValues: dynamicValues,
195
+ generateLibrary: generateLibrary,
196
+ fieldGeneration: config.fieldGeneration,
197
+ enumsAsTypes: enumsAsTypes,
198
+ useImplementingTypes: useImplementingTypes,
199
+ defaultNullableToNull: defaultNullableToNull,
200
+ nonNull: false,
201
+ });
202
+ return " if (pickedFields.size === 0 || pickedFields.has('".concat(field.name.value, "')) {\n result.").concat(field.name.value, " = overrides && overrides.hasOwnProperty('").concat(field.name.value, "') ? ").concat(typeof value === 'string' && value.includes('{}')
203
+ ? value.includes('[')
204
+ ? "overrides.".concat(field.name.value, "!.map((x) => ").concat(value
205
+ .replace('[', '')
206
+ .replace(']'.replace('({}', '(x ?? {}'), '')
207
+ .replace('{} as', 'x ?? {} as'), ")")
208
+ : value
209
+ .replace('({}', "(overrides.".concat(field.name.value, " ?? {}"))
210
+ .replace('{} as', "overrides.".concat(field.name.value, " ?? {} as"))
211
+ : "overrides.".concat(field.name.value, "!"), " : ").concat(value, ";\n }");
212
+ })
213
+ .join('\n')
214
+ : '';
215
+ return getMockString(fieldName, mockFields, typeNamesConvention, false, config.prefix, config.typesPrefix, transformUnderscore);
216
+ },
217
+ };
218
+ },
219
+ ObjectTypeDefinition: function (node) {
220
+ // This function triggered per each type
221
+ var typeName = node.name.value;
222
+ var fields = node.fields;
223
+ return {
224
+ typeName: typeName,
225
+ mockFn: function () {
226
+ var mockFields = fields
227
+ ? fields.map(function (_a) {
228
+ var mockFn = _a.mockFn;
229
+ return mockFn(typeName);
230
+ }).join('\n')
231
+ : '';
232
+ return getMockString(typeName, mockFields, typeNamesConvention, !!config.terminateCircularRelationships, config.prefix, config.typesPrefix, transformUnderscore);
233
+ },
234
+ };
235
+ },
236
+ InterfaceTypeDefinition: function (node) {
237
+ var typeName = node.name.value;
238
+ var fields = node.fields;
239
+ return {
240
+ typeName: typeName,
241
+ mockFn: function () {
242
+ var mockFields = fields
243
+ ? fields.map(function (_a) {
244
+ var mockFn = _a.mockFn;
245
+ return mockFn(typeName);
246
+ }).join('\n')
247
+ : '';
248
+ return getMockString(typeName, mockFields, typeNamesConvention, !!config.terminateCircularRelationships, config.prefix, config.typesPrefix, transformUnderscore);
249
+ },
250
+ };
251
+ },
252
+ };
253
+ function pickedFieldsToCode(pickedFields) {
254
+ if (!pickedFields) {
255
+ return "undefined";
256
+ }
257
+ if (pickedFields.size === 0) {
258
+ return "new Map()";
259
+ }
260
+ return "new Map([".concat(Array.from(pickedFields).map(function (_a) {
261
+ var fieldName = _a[0], selections = _a[1];
262
+ return "['".concat(fieldName, "', ").concat(pickedFieldsToCode(selections), "]");
263
+ }), "])");
264
+ }
265
+ var getOperationMockString = function (operation) {
266
+ var operationTypeDeclaration = (0, helpers_1.operationToOperationType)(operation);
267
+ var operationType = (0, helpers_1.toOperationMockName)(operation);
268
+ var operationBuilderDeclaration = "".concat(operationTypeDeclaration, "\n\n\nexport const a").concat(operationType, "Response = (overrides?: DeepPartial<").concat(operationType, ">): ").concat(operationType, " => {\n const relationshipsToOmit= new Set<string>()\n const pickedFields = new Map<string, any>([\n").concat(operation.selections.reduce(function (selectedPickedFields, _a) {
269
+ var name = _a.name, type = _a.type;
270
+ var pickedFields = (0, helpers_1.calculatePickedFields)(type);
271
+ var stringifiedPickedFields = pickedFieldsToCode(pickedFields);
272
+ selectedPickedFields += " ['".concat(name, "', ").concat(stringifiedPickedFields, "],\n");
273
+ return selectedPickedFields;
274
+ }, ""), " ]);\n\n return {\n").concat(operation.selections.reduce(function (selectedFields, _a) {
275
+ var name = _a.name, type = _a.type, typeNode = _a.typeNode;
276
+ var value = (0, mock_value_generator_1.generateMockValue)({
277
+ typeName: type.name,
278
+ fieldName: name,
279
+ types: types,
280
+ typeNamesConvention: typeNamesConvention,
281
+ enumValuesConvention: enumValuesConvention,
282
+ terminateCircularRelationships: !!config.terminateCircularRelationships,
283
+ prefix: config.prefix,
284
+ typesPrefix: config.typesPrefix,
285
+ enumsPrefix: config.enumsPrefix,
286
+ currentType: typeNode,
287
+ customScalars: config.scalars,
288
+ transformUnderscore: transformUnderscore,
289
+ listElementCount: listElementCount,
290
+ dynamicValues: dynamicValues,
291
+ generateLibrary: generateLibrary,
292
+ fieldGeneration: config.fieldGeneration,
293
+ enumsAsTypes: enumsAsTypes,
294
+ useImplementingTypes: useImplementingTypes,
295
+ defaultNullableToNull: defaultNullableToNull,
296
+ nonNull: false,
297
+ });
298
+ selectedFields += " ".concat(name, ": (overrides && overrides.hasOwnProperty('").concat(name, "') ? ").concat(typeof value === 'string' && value.includes('{}')
299
+ ? value.includes('[')
300
+ ? "overrides.".concat(name, "!.map((x) => ").concat(value
301
+ .replace('[', '')
302
+ .replace(']', '')
303
+ .replace('({}', '(x ?? {}'), ")")
304
+ : value.replace('({}', "(overrides.".concat(name, " ?? {}"))
305
+ : "overrides.".concat(name, "!"), " : ").concat(value, ") as any,\n");
306
+ return selectedFields;
307
+ }, ""), " };\n};");
308
+ return operationBuilderDeclaration;
309
+ };
310
+ // run on the types first
311
+ (0, plugin_helpers_1.oldVisit)(astNode, { leave: typeVisitor });
312
+ var result = (0, plugin_helpers_1.oldVisit)(astNode, { leave: visitor });
313
+ var definitions = result.definitions.filter(function (definition) { return !!definition; });
314
+ var typesFile = config.typesFile
315
+ ? config.typesFile.replace(/\.[\w]+$/, '')
316
+ : null;
317
+ var typesFileImport = getImportTypes({
318
+ typeNamesConvention: typeNamesConvention,
319
+ definitions: definitions,
320
+ types: types,
321
+ typesFile: typesFile,
322
+ typesPrefix: config.typesPrefix,
323
+ enumsPrefix: config.enumsPrefix,
324
+ transformUnderscore: transformUnderscore,
325
+ enumsAsTypes: enumsAsTypes,
326
+ });
327
+ // Function that will generate the mocks.
328
+ // We generate it after having visited because we need to distinct types from enums
329
+ var mockFns = definitions
330
+ .map(function (_a) {
331
+ var mockFn = _a.mockFn;
332
+ return mockFn;
333
+ })
334
+ .filter(function (mockFn) { return !!mockFn; })
335
+ .map(function (mockFn) { return mockFn(); })
336
+ .join('\n');
337
+ var functionTokens = (0, mock_value_generator_1.setupFunctionTokens)(generateLibrary);
338
+ var mockFile = '';
339
+ if (dynamicValues) {
340
+ mockFile += "".concat(functionTokens.import, "\n");
341
+ }
342
+ mockFile += typesFileImport;
343
+ mockFile += (0, utility_types_1.getUtilTypes)();
344
+ if (dynamicValues) {
345
+ mockFile += "\n".concat(functionTokens.seed, "\n");
346
+ }
347
+ mockFile += mockFns;
348
+ if (dynamicValues) {
349
+ mockFile += "\n\n".concat(functionTokens.seedFunction);
350
+ }
351
+ mockFile += '\n';
352
+ for (var _i = 0, queries_1 = queries; _i < queries_1.length; _i++) {
353
+ var query = queries_1[_i];
354
+ var operationString = getOperationMockString(query);
355
+ mockFile += "\n".concat(operationString, "\n");
356
+ }
357
+ for (var _h = 0, mutations_1 = mutations; _h < mutations_1.length; _h++) {
358
+ var mutation = mutations_1[_h];
359
+ var operationString = getOperationMockString(mutation);
360
+ mockFile += "\n".concat(operationString, "\n");
361
+ }
362
+ mockFile += '\n';
363
+ return mockFile;
364
+ };
365
+ exports.plugin = plugin;
366
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { NamedTypeNode, ObjectTypeDefinitionNode, TypeNode } from 'graphql';
2
+ import { NamingConvention, GeneratorDefinition, ScalarMap, TypeFieldMap } from './types';
3
+ interface TypeItem {
4
+ name: string;
5
+ type: 'enum' | 'scalar' | 'union' | 'implement';
6
+ values?: string[];
7
+ types?: readonly NamedTypeNode[] | ObjectTypeDefinitionNode;
8
+ }
9
+ type Options<T = TypeNode> = {
10
+ typeName: string;
11
+ fieldName: string;
12
+ types: TypeItem[];
13
+ typeNamesConvention: NamingConvention;
14
+ enumValuesConvention: NamingConvention;
15
+ terminateCircularRelationships: boolean;
16
+ prefix: string | undefined;
17
+ typesPrefix: string;
18
+ enumsPrefix: string;
19
+ currentType: T;
20
+ customScalars?: ScalarMap;
21
+ transformUnderscore: boolean;
22
+ listElementCount: number;
23
+ dynamicValues: boolean;
24
+ generateLibrary: 'casual' | 'faker';
25
+ fieldGeneration?: TypeFieldMap;
26
+ enumsAsTypes?: boolean;
27
+ useImplementingTypes: boolean;
28
+ defaultNullableToNull: boolean;
29
+ nonNull: boolean;
30
+ };
31
+ interface MockValueGenerator {
32
+ dynamicValues: boolean;
33
+ word: () => string;
34
+ uuid: () => string;
35
+ boolean: () => boolean | string;
36
+ integer: () => number | string;
37
+ float: () => number | string;
38
+ date: () => string;
39
+ seed: (seed: number) => void;
40
+ }
41
+ type FunctionTokens = Record<'import' | 'seed' | 'seedFunction', string>;
42
+ type SetupMockValueGeneratorOptions = {
43
+ generateLibrary: 'casual' | 'faker';
44
+ dynamicValues: boolean;
45
+ };
46
+ export declare function setupMockValueGenerator({ generateLibrary, dynamicValues, }: SetupMockValueGeneratorOptions): MockValueGenerator;
47
+ export declare function setupFunctionTokens(generateLibrary: 'casual' | 'faker'): FunctionTokens;
48
+ export declare function generateMockValue(opts: Options): string | number | boolean;
49
+ export declare function getCustomValue(generatorDefinition: GeneratorDefinition, opts: Options<NamedTypeNode>): any;
50
+ export {};
51
+ //# sourceMappingURL=mock-value-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-value-generator.d.ts","sourceRoot":"","sources":["../../src/mock-value-generator.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,aAAa,EACb,wBAAwB,EACxB,QAAQ,EACT,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,gBAAgB,EAEhB,mBAAmB,EACnB,SAAS,EACT,YAAY,EACb,MAAM,SAAS,CAAC;AAEjB,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,WAAW,CAAC;IAChD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,aAAa,EAAE,GAAG,wBAAwB,CAAC;CAC7D;AAED,KAAK,OAAO,CAAC,CAAC,GAAG,QAAQ,IAAI;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,mBAAmB,EAAE,gBAAgB,CAAC;IACtC,oBAAoB,EAAE,gBAAgB,CAAC;IACvC,8BAA8B,EAAE,OAAO,CAAC;IACxC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,CAAC,CAAC;IACf,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,QAAQ,GAAG,OAAO,CAAC;IACpC,eAAe,CAAC,EAAE,YAAY,CAAC;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,UAAU,kBAAkB;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,MAAM,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,OAAO,GAAG,MAAM,CAAC;IAChC,OAAO,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC;IAC/B,KAAK,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC;IAC7B,IAAI,EAAE,MAAM,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAMD,KAAK,cAAc,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,GAAG,cAAc,EAAE,MAAM,CAAC,CAAC;AAEzE,KAAK,8BAA8B,GAAG;IACpC,eAAe,EAAE,QAAQ,GAAG,OAAO,CAAC;IACpC,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAmEF,wBAAgB,uBAAuB,CAAC,EACtC,eAAe,EACf,aAAa,GACd,EAAE,8BAA8B,GAAG,kBAAkB,CAOrD;AAED,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,QAAQ,GAAG,OAAO,GAClC,cAAc,CAOhB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAqC1E;AAqJD,wBAAgB,cAAc,CAC5B,mBAAmB,EAAE,mBAAmB,EACxC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,OAW7B"}