@kubb/plugin-faker 5.0.0-alpha.8 → 5.0.0-beta.3

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 (43) hide show
  1. package/LICENSE +17 -10
  2. package/README.md +1 -4
  3. package/dist/Faker-BgleOzVN.cjs +486 -0
  4. package/dist/Faker-BgleOzVN.cjs.map +1 -0
  5. package/dist/Faker-CdyPfOPg.d.ts +27 -0
  6. package/dist/Faker-fcQEB9i5.js +384 -0
  7. package/dist/Faker-fcQEB9i5.js.map +1 -0
  8. package/dist/components.cjs +2 -2
  9. package/dist/components.d.ts +2 -31
  10. package/dist/components.js +1 -1
  11. package/dist/fakerGenerator-C3Ho3BaI.d.ts +9 -0
  12. package/dist/fakerGenerator-D7daHCh6.js +516 -0
  13. package/dist/fakerGenerator-D7daHCh6.js.map +1 -0
  14. package/dist/fakerGenerator-VJEVzLjc.cjs +526 -0
  15. package/dist/fakerGenerator-VJEVzLjc.cjs.map +1 -0
  16. package/dist/generators.cjs +1 -1
  17. package/dist/generators.d.ts +2 -476
  18. package/dist/generators.js +1 -1
  19. package/dist/index.cjs +136 -84
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.d.ts +28 -4
  22. package/dist/index.js +128 -83
  23. package/dist/index.js.map +1 -1
  24. package/dist/printerFaker-CJiwzoto.d.ts +206 -0
  25. package/package.json +52 -50
  26. package/src/components/Faker.tsx +124 -78
  27. package/src/generators/fakerGenerator.tsx +235 -134
  28. package/src/index.ts +7 -2
  29. package/src/plugin.ts +60 -121
  30. package/src/printers/printerFaker.ts +341 -0
  31. package/src/resolvers/resolverFaker.ts +92 -0
  32. package/src/types.ts +127 -81
  33. package/src/utils.ts +356 -0
  34. package/dist/components-BkBIov4R.js +0 -419
  35. package/dist/components-BkBIov4R.js.map +0 -1
  36. package/dist/components-IdP8GXXX.cjs +0 -461
  37. package/dist/components-IdP8GXXX.cjs.map +0 -1
  38. package/dist/fakerGenerator-CYUCNH3Q.cjs +0 -204
  39. package/dist/fakerGenerator-CYUCNH3Q.cjs.map +0 -1
  40. package/dist/fakerGenerator-M5oCrPmy.js +0 -200
  41. package/dist/fakerGenerator-M5oCrPmy.js.map +0 -1
  42. package/dist/types-r7BubMLO.d.ts +0 -132
  43. package/src/parser.ts +0 -453
@@ -0,0 +1,526 @@
1
+ const require_Faker = require("./Faker-BgleOzVN.cjs");
2
+ let _kubb_core = require("@kubb/core");
3
+ let _kubb_plugin_ts = require("@kubb/plugin-ts");
4
+ let _kubb_renderer_jsx = require("@kubb/renderer-jsx");
5
+ let _kubb_renderer_jsx_jsx_runtime = require("@kubb/renderer-jsx/jsx-runtime");
6
+ //#region ../../internals/utils/src/object.ts
7
+ /**
8
+ * Serializes a primitive value to a JSON string literal, stripping any surrounding quote characters first.
9
+ *
10
+ * @example
11
+ * stringify('hello') // '"hello"'
12
+ * stringify('"hello"') // '"hello"'
13
+ */
14
+ function stringify(value) {
15
+ if (value === void 0 || value === null) return "\"\"";
16
+ return JSON.stringify(require_Faker.trimQuotes(value.toString()));
17
+ }
18
+ //#endregion
19
+ //#region ../../internals/utils/src/regexp.ts
20
+ /**
21
+ * Converts a pattern string into a `new RegExp(...)` constructor call or a regex literal string.
22
+ * Inline flags expressed as `^(?im)` prefixes are extracted and applied to the resulting expression.
23
+ * Pass `null` as the second argument to emit a `/pattern/flags` literal instead.
24
+ *
25
+ * @example
26
+ * toRegExpString('^(?im)foo') // → 'new RegExp("foo", "im")'
27
+ * toRegExpString('^(?im)foo', null) // → '/foo/im'
28
+ */
29
+ function toRegExpString(text, func = "RegExp") {
30
+ const raw = require_Faker.trimQuotes(text);
31
+ const match = raw.match(/^\^(\(\?([igmsuy]+)\))/i);
32
+ const replacementTarget = match?.[1] ?? "";
33
+ const matchedFlags = match?.[2];
34
+ const cleaned = raw.replace(/^\\?\//, "").replace(/\\?\/$/, "").replace(replacementTarget, "");
35
+ const { source, flags } = new RegExp(cleaned, matchedFlags);
36
+ if (func === null) return `/${source}/${flags}`;
37
+ return `new ${func}(${JSON.stringify(source)}${flags ? `, ${JSON.stringify(flags)}` : ""})`;
38
+ }
39
+ //#endregion
40
+ //#region src/printers/printerFaker.ts
41
+ const fakerKeywordMapper = {
42
+ any: () => "undefined",
43
+ unknown: () => "undefined",
44
+ void: () => "undefined",
45
+ number: (min, max) => {
46
+ if (max !== void 0 && min !== void 0) return `faker.number.float({ min: ${min}, max: ${max} })`;
47
+ if (max !== void 0) return `faker.number.float({ max: ${max} })`;
48
+ if (min !== void 0) return `faker.number.float({ min: ${min} })`;
49
+ return "faker.number.float()";
50
+ },
51
+ integer: (min, max) => {
52
+ if (max !== void 0 && min !== void 0) return `faker.number.int({ min: ${min}, max: ${max} })`;
53
+ if (max !== void 0) return `faker.number.int({ max: ${max} })`;
54
+ if (min !== void 0) return `faker.number.int({ min: ${min} })`;
55
+ return "faker.number.int()";
56
+ },
57
+ bigint: () => "faker.number.bigInt()",
58
+ string: (min, max) => {
59
+ if (max !== void 0 && min !== void 0) return `faker.string.alpha({ length: { min: ${min}, max: ${max} } })`;
60
+ if (max !== void 0) return `faker.string.alpha({ length: ${max} })`;
61
+ if (min !== void 0) return `faker.string.alpha({ length: ${min} })`;
62
+ return "faker.string.alpha()";
63
+ },
64
+ boolean: () => "faker.datatype.boolean()",
65
+ null: () => "null",
66
+ array: (items = [], min, max) => {
67
+ if (items.length > 1) return `faker.helpers.arrayElements([${items.join(", ")}])`;
68
+ const item = items.at(0);
69
+ if (min !== void 0 && max !== void 0) return `faker.helpers.multiple(() => (${item}), { count: { min: ${min}, max: ${max} }})`;
70
+ if (min !== void 0) return `faker.helpers.multiple(() => (${item}), { count: ${min} })`;
71
+ if (max !== void 0) return `faker.helpers.multiple(() => (${item}), { count: { min: 0, max: ${max} }})`;
72
+ return `faker.helpers.multiple(() => (${item}))`;
73
+ },
74
+ tuple: (items = []) => `[${items.join(", ")}]`,
75
+ enum: (items = [], type = "any") => `faker.helpers.arrayElement<${type}>([${items.join(", ")}])`,
76
+ union: (items = []) => `faker.helpers.arrayElement<any>([${items.join(", ")}])`,
77
+ datetime: () => "faker.date.anytime().toISOString()",
78
+ date: (representation = "string", parser = "faker") => {
79
+ if (representation === "string") {
80
+ if (parser !== "faker") return `${parser}(faker.date.anytime()).format("YYYY-MM-DD")`;
81
+ return "faker.date.anytime().toISOString().substring(0, 10)";
82
+ }
83
+ if (parser !== "faker") throw new Error(`type '${representation}' and parser '${parser}' can not work together`);
84
+ return "faker.date.anytime()";
85
+ },
86
+ time: (representation = "string", parser = "faker") => {
87
+ if (representation === "string") {
88
+ if (parser !== "faker") return `${parser}(faker.date.anytime()).format("HH:mm:ss")`;
89
+ return "faker.date.anytime().toISOString().substring(11, 19)";
90
+ }
91
+ if (parser !== "faker") throw new Error(`type '${representation}' and parser '${parser}' can not work together`);
92
+ return "faker.date.anytime()";
93
+ },
94
+ uuid: () => "faker.string.uuid()",
95
+ url: () => "faker.internet.url()",
96
+ and: (items = []) => {
97
+ if (items.length === 0) return "{}";
98
+ if (items.length === 1) return items[0] ?? "{}";
99
+ return `{...${items.join(", ...")}}`;
100
+ },
101
+ matches: (value = "", regexGenerator = "faker") => {
102
+ if (regexGenerator === "randexp") return `${toRegExpString(value, "RandExp")}.gen()`;
103
+ return `faker.helpers.fromRegExp("${value}")`;
104
+ },
105
+ email: () => "faker.internet.email()",
106
+ blob: () => "faker.image.url() as unknown as Blob"
107
+ };
108
+ function getEnumValues(node) {
109
+ if (node.namedEnumValues?.length) return node.namedEnumValues.map((item) => item.value);
110
+ return node.enumValues ?? [];
111
+ }
112
+ function parseEnumValue(value) {
113
+ if (typeof value === "string") return stringify(value);
114
+ return value;
115
+ }
116
+ /**
117
+ * Creates a Faker printer that generates mock data generation code from schema nodes.
118
+ * Handles circular references gracefully by emitting memoizing getters for cyclic properties.
119
+ */
120
+ const printerFaker = _kubb_core.ast.definePrinter((options) => {
121
+ const printNested = (node, overrideOptions = {}) => {
122
+ return printerFaker({
123
+ ...options,
124
+ ...overrideOptions,
125
+ nodes: options.nodes
126
+ }).print(node) ?? "undefined";
127
+ };
128
+ return {
129
+ name: "faker",
130
+ options,
131
+ nodes: {
132
+ any: () => fakerKeywordMapper.any(),
133
+ unknown: () => fakerKeywordMapper.unknown(),
134
+ void: () => fakerKeywordMapper.void(),
135
+ boolean: () => fakerKeywordMapper.boolean(),
136
+ null: () => fakerKeywordMapper.null(),
137
+ string(node) {
138
+ if (node.pattern) return fakerKeywordMapper.matches(node.pattern, this.options.regexGenerator);
139
+ return fakerKeywordMapper.string(node.min, node.max);
140
+ },
141
+ email: () => fakerKeywordMapper.email(),
142
+ url: () => fakerKeywordMapper.url(),
143
+ uuid: () => fakerKeywordMapper.uuid(),
144
+ number(node) {
145
+ return fakerKeywordMapper.number(node.min, node.max);
146
+ },
147
+ integer(node) {
148
+ return fakerKeywordMapper.integer(node.min, node.max);
149
+ },
150
+ bigint: () => fakerKeywordMapper.bigint(),
151
+ blob: () => fakerKeywordMapper.blob(),
152
+ datetime: () => fakerKeywordMapper.datetime(),
153
+ date(node) {
154
+ return fakerKeywordMapper.date(node.representation ?? "string", this.options.dateParser);
155
+ },
156
+ time(node) {
157
+ return fakerKeywordMapper.time(node.representation ?? "string", this.options.dateParser);
158
+ },
159
+ ref(node) {
160
+ const refName = node.ref ? _kubb_core.ast.extractRefName(node.ref) ?? node.name ?? node.schema?.name : node.name ?? node.schema?.name;
161
+ if (!refName) throw new Error("Name not defined for ref node");
162
+ if (this.options.schemaName && refName === this.options.schemaName) return "undefined as any";
163
+ const resolvedName = node.ref ? this.options.resolver.resolveName(refName) : refName;
164
+ if (!this.options.nestedInObject) return `${resolvedName}(data)`;
165
+ return `${resolvedName}()`;
166
+ },
167
+ enum(node) {
168
+ return fakerKeywordMapper.enum(getEnumValues(node).map(parseEnumValue), this.options.typeName);
169
+ },
170
+ union(node) {
171
+ const items = (node.members ?? []).map((member) => printNested(member, { nestedInObject: true })).filter((item) => Boolean(item));
172
+ return fakerKeywordMapper.union(items);
173
+ },
174
+ intersection(node) {
175
+ const items = (node.members ?? []).map((member) => printNested(member, { nestedInObject: true })).filter((item) => Boolean(item));
176
+ return fakerKeywordMapper.and(items);
177
+ },
178
+ array(node) {
179
+ const items = (node.items ?? []).map((member) => printNested(member, {
180
+ typeName: this.options.typeName ? `NonNullable<${this.options.typeName}>[number]` : void 0,
181
+ nestedInObject: true
182
+ })).filter((item) => Boolean(item));
183
+ return fakerKeywordMapper.array(items, node.min, node.max);
184
+ },
185
+ tuple(node) {
186
+ const items = (node.items ?? []).map((member, index) => printNested(member, {
187
+ typeName: this.options.typeName ? `NonNullable<${this.options.typeName}>[${index}]` : void 0,
188
+ nestedInObject: true
189
+ })).filter((item) => Boolean(item));
190
+ return fakerKeywordMapper.tuple(items);
191
+ },
192
+ object(node) {
193
+ const cyclicSchemas = this.options.cyclicSchemas;
194
+ return `{${(node.properties ?? []).map((property) => {
195
+ if (this.options.mapper && Object.hasOwn(this.options.mapper, property.name)) return `"${property.name}": ${this.options.mapper[property.name]}`;
196
+ const value = printNested(property.schema, {
197
+ typeName: this.options.typeName ? `NonNullable<${this.options.typeName}>[${JSON.stringify(property.name)}]` : void 0,
198
+ nestedInObject: true
199
+ }) ?? "undefined";
200
+ if (cyclicSchemas && _kubb_core.ast.containsCircularRef(property.schema, {
201
+ circularSchemas: cyclicSchemas,
202
+ excludeName: this.options.schemaName
203
+ })) return `get ${property.name}() { const _value = ${value}; Object.defineProperty(this, ${JSON.stringify(property.name)}, { value: _value, configurable: true, writable: true, enumerable: true }); return _value }`;
204
+ return `"${property.name}": ${value}`;
205
+ }).join(",")}}`;
206
+ },
207
+ ...options.nodes
208
+ },
209
+ print(node) {
210
+ return this.transform(node) ?? null;
211
+ }
212
+ };
213
+ });
214
+ //#endregion
215
+ //#region src/generators/fakerGenerator.tsx
216
+ const fakerGenerator = (0, _kubb_core.defineGenerator)({
217
+ name: "faker",
218
+ renderer: _kubb_renderer_jsx.jsxRenderer,
219
+ schema(node, ctx) {
220
+ const { adapter, config, resolver, root } = ctx;
221
+ const { output, group, dateParser, regexGenerator, mapper, seed, locale, printer } = ctx.options;
222
+ const pluginTs = ctx.driver.getPlugin(_kubb_plugin_ts.pluginTsName);
223
+ if (!node.name || !pluginTs || !adapter.inputNode) return;
224
+ const tsResolver = ctx.driver.getResolver(_kubb_plugin_ts.pluginTsName);
225
+ const schemaNode = require_Faker.resolveSchemaRef(node, adapter.inputNode.schemas);
226
+ const schemaName = schemaNode.name ?? node.name;
227
+ const mode = ctx.getMode(output);
228
+ const meta = {
229
+ name: resolver.resolveName(schemaName),
230
+ file: resolver.resolveFile({
231
+ name: schemaName,
232
+ extname: ".ts"
233
+ }, {
234
+ root,
235
+ output,
236
+ group
237
+ }),
238
+ typeName: tsResolver.resolveTypeName(schemaName),
239
+ typeFile: tsResolver.resolveFile({
240
+ name: schemaName,
241
+ extname: ".ts"
242
+ }, {
243
+ root,
244
+ output: pluginTs.options?.output ?? output,
245
+ group: pluginTs.options?.group
246
+ })
247
+ };
248
+ const canOverride = require_Faker.canOverrideSchema(schemaNode);
249
+ const cyclicSchemas = adapter.inputNode ? _kubb_core.ast.findCircularSchemas(adapter.inputNode.schemas) : void 0;
250
+ const printerInstance = printerFaker({
251
+ resolver,
252
+ schemaName,
253
+ typeName: meta.typeName,
254
+ dateParser,
255
+ regexGenerator,
256
+ mapper,
257
+ nodes: printer?.nodes,
258
+ cyclicSchemas
259
+ });
260
+ const fakerText = printerInstance.print(schemaNode) ?? "undefined";
261
+ const typeReference = require_Faker.resolveTypeReference({
262
+ node: schemaNode,
263
+ canOverride,
264
+ name: meta.name,
265
+ typeName: meta.typeName,
266
+ filePath: meta.file.path,
267
+ typeFilePath: meta.typeFile.path
268
+ });
269
+ const usedImports = require_Faker.filterUsedImports(adapter.getImports(schemaNode, (schemaName) => ({
270
+ name: resolver.resolveName(schemaName),
271
+ path: resolver.resolveFile({
272
+ name: schemaName,
273
+ extname: ".ts"
274
+ }, {
275
+ root,
276
+ output,
277
+ group
278
+ }).path
279
+ })).filter((entry) => entry.path !== meta.file.path), fakerText);
280
+ return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx.File, {
281
+ baseName: meta.file.baseName,
282
+ path: meta.file.path,
283
+ meta: meta.file.meta,
284
+ banner: resolver.resolveBanner(adapter.inputNode, {
285
+ output,
286
+ config
287
+ }),
288
+ footer: resolver.resolveFooter(adapter.inputNode, {
289
+ output,
290
+ config
291
+ }),
292
+ children: [
293
+ /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
294
+ name: locale ? [{
295
+ propertyName: require_Faker.localeToFakerImport(locale),
296
+ name: "faker"
297
+ }] : ["faker"],
298
+ path: "@faker-js/faker"
299
+ }),
300
+ regexGenerator === "randexp" && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
301
+ name: "RandExp",
302
+ path: "randexp"
303
+ }),
304
+ dateParser !== "faker" && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
305
+ path: dateParser,
306
+ name: dateParser
307
+ }),
308
+ typeReference.importPath && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
309
+ isTypeOnly: true,
310
+ root: meta.file.path,
311
+ path: typeReference.importPath,
312
+ name: [meta.typeName]
313
+ }),
314
+ mode === "split" && usedImports.map((imp) => /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
315
+ root: meta.file.path,
316
+ path: imp.path,
317
+ name: imp.name
318
+ }, [
319
+ schemaName,
320
+ imp.path,
321
+ imp.name
322
+ ].join("-"))),
323
+ /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(require_Faker.Faker, {
324
+ name: meta.name,
325
+ typeName: typeReference.typeName,
326
+ description: schemaNode.description,
327
+ node: schemaNode,
328
+ printer: printerInstance,
329
+ seed,
330
+ canOverride
331
+ })
332
+ ]
333
+ });
334
+ },
335
+ operation(node, ctx) {
336
+ const { adapter, config, resolver, root } = ctx;
337
+ const { output, group, paramsCasing, dateParser, regexGenerator, mapper, seed, locale, printer } = ctx.options;
338
+ const pluginTs = ctx.driver.getPlugin(_kubb_plugin_ts.pluginTsName);
339
+ if (!pluginTs) return;
340
+ const tsResolver = ctx.driver.getResolver(_kubb_plugin_ts.pluginTsName);
341
+ const paramEntries = _kubb_core.ast.caseParams(node.parameters, paramsCasing).map((param) => ({
342
+ param,
343
+ name: require_Faker.resolveParamNameByLocation(resolver, node, param),
344
+ typeName: require_Faker.resolveParamNameByLocation(tsResolver, node, param)
345
+ }));
346
+ const responseEntries = node.responses.map((response) => ({
347
+ response,
348
+ name: resolver.resolveResponseStatusName(node, response.statusCode),
349
+ typeName: tsResolver.resolveResponseStatusName(node, response.statusCode)
350
+ }));
351
+ const dataEntry = node.requestBody?.content?.[0]?.schema ? {
352
+ schema: {
353
+ ...node.requestBody.content[0].schema,
354
+ description: node.requestBody.description ?? node.requestBody.content[0].schema.description
355
+ },
356
+ name: resolver.resolveDataName(node),
357
+ typeName: tsResolver.resolveDataName(node),
358
+ description: node.requestBody.description ?? node.requestBody.content[0].schema.description
359
+ } : null;
360
+ const responseName = resolver.resolveResponseName(node);
361
+ const localHelperNames = new Set([
362
+ ...paramEntries.map((entry) => entry.name),
363
+ ...responseEntries.map((entry) => entry.name),
364
+ ...dataEntry ? [dataEntry.name] : [],
365
+ responseName
366
+ ]);
367
+ const meta = {
368
+ file: resolver.resolveFile({
369
+ name: node.operationId,
370
+ extname: ".ts",
371
+ tag: node.tags[0] ?? "default",
372
+ path: node.path
373
+ }, {
374
+ root,
375
+ output,
376
+ group
377
+ }),
378
+ typeFile: tsResolver.resolveFile({
379
+ name: node.operationId,
380
+ extname: ".ts",
381
+ tag: node.tags[0] ?? "default",
382
+ path: node.path
383
+ }, {
384
+ root,
385
+ output: pluginTs.options?.output ?? output,
386
+ group: pluginTs.options?.group
387
+ })
388
+ };
389
+ function resolveMockImports(schema) {
390
+ return adapter.getImports(schema, (schemaName) => ({
391
+ name: resolver.resolveName(schemaName),
392
+ path: resolver.resolveFile({
393
+ name: schemaName,
394
+ extname: ".ts"
395
+ }, {
396
+ root,
397
+ output,
398
+ group
399
+ }).path
400
+ })).filter((entry) => entry.path !== meta.file.path);
401
+ }
402
+ function renderEntry({ schema, name, typeName, description, skipImportNames = [] }) {
403
+ if (!schema) return null;
404
+ const canOverride = require_Faker.canOverrideSchema(schema);
405
+ const cyclicSchemas = adapter.inputNode ? _kubb_core.ast.findCircularSchemas(adapter.inputNode.schemas) : void 0;
406
+ const printerInstance = printerFaker({
407
+ resolver,
408
+ schemaName: name,
409
+ typeName,
410
+ dateParser,
411
+ regexGenerator,
412
+ mapper,
413
+ nodes: printer?.nodes,
414
+ cyclicSchemas
415
+ });
416
+ const fakerText = printerInstance.print(schema) ?? "undefined";
417
+ const { imports, aliases } = require_Faker.aliasConflictingImports(require_Faker.filterUsedImports(resolveMockImports(schema), fakerText, skipImportNames), localHelperNames);
418
+ const rewrittenFakerText = require_Faker.rewriteAliasedImports(fakerText, aliases);
419
+ const typeReference = require_Faker.resolveTypeReference({
420
+ node: schema,
421
+ canOverride,
422
+ name,
423
+ typeName,
424
+ filePath: meta.file.path,
425
+ typeFilePath: meta.typeFile.path
426
+ });
427
+ return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
428
+ typeReference.importPath && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
429
+ isTypeOnly: true,
430
+ root: meta.file.path,
431
+ path: typeReference.importPath,
432
+ name: [typeName]
433
+ }),
434
+ imports.map((imp) => /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
435
+ root: meta.file.path,
436
+ path: imp.path,
437
+ name: imp.name
438
+ }, [
439
+ name,
440
+ imp.path,
441
+ imp.name
442
+ ].join("-"))),
443
+ /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(require_Faker.Faker, {
444
+ name,
445
+ typeName: typeReference.typeName,
446
+ description,
447
+ node: schema,
448
+ printer: {
449
+ ...printerInstance,
450
+ print: () => rewrittenFakerText
451
+ },
452
+ seed,
453
+ canOverride
454
+ })
455
+ ] });
456
+ }
457
+ return /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx.File, {
458
+ baseName: meta.file.baseName,
459
+ path: meta.file.path,
460
+ meta: meta.file.meta,
461
+ banner: resolver.resolveBanner(adapter.inputNode, {
462
+ output,
463
+ config
464
+ }),
465
+ footer: resolver.resolveFooter(adapter.inputNode, {
466
+ output,
467
+ config
468
+ }),
469
+ children: [
470
+ /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
471
+ name: locale ? [{
472
+ propertyName: require_Faker.localeToFakerImport(locale),
473
+ name: "faker"
474
+ }] : ["faker"],
475
+ path: "@faker-js/faker"
476
+ }),
477
+ regexGenerator === "randexp" && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
478
+ name: "RandExp",
479
+ path: "randexp"
480
+ }),
481
+ dateParser !== "faker" && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
482
+ path: dateParser,
483
+ name: dateParser
484
+ }),
485
+ paramEntries.map(({ param, name, typeName }) => renderEntry({
486
+ schema: param.schema,
487
+ name,
488
+ typeName
489
+ })),
490
+ responseEntries.map(({ response, name, typeName }) => renderEntry({
491
+ schema: response.schema,
492
+ name,
493
+ typeName,
494
+ description: response.description
495
+ })),
496
+ dataEntry ? renderEntry({
497
+ schema: dataEntry.schema,
498
+ name: dataEntry.name,
499
+ typeName: dataEntry.typeName,
500
+ description: dataEntry.description
501
+ }) : null,
502
+ renderEntry({
503
+ schema: require_Faker.buildResponseUnionSchema(node, resolver),
504
+ name: responseName,
505
+ typeName: tsResolver.resolveResponseName(node),
506
+ skipImportNames: responseEntries.map(({ name }) => name)
507
+ })
508
+ ]
509
+ });
510
+ }
511
+ });
512
+ //#endregion
513
+ Object.defineProperty(exports, "fakerGenerator", {
514
+ enumerable: true,
515
+ get: function() {
516
+ return fakerGenerator;
517
+ }
518
+ });
519
+ Object.defineProperty(exports, "printerFaker", {
520
+ enumerable: true,
521
+ get: function() {
522
+ return printerFaker;
523
+ }
524
+ });
525
+
526
+ //# sourceMappingURL=fakerGenerator-VJEVzLjc.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fakerGenerator-VJEVzLjc.cjs","names":["trimQuotes","trimQuotes","ast","jsxRenderer","pluginTsName","resolveSchemaRef","canOverrideSchema","ast","resolveTypeReference","filterUsedImports","File","localeToFakerImport","Faker","resolveParamNameByLocation","aliasConflictingImports","rewriteAliasedImports","buildResponseUnionSchema"],"sources":["../../../internals/utils/src/object.ts","../../../internals/utils/src/regexp.ts","../src/printers/printerFaker.ts","../src/generators/fakerGenerator.tsx"],"sourcesContent":["import { trimQuotes } from './string.ts'\n\n/**\n * Serializes a primitive value to a JSON string literal, stripping any surrounding quote characters first.\n *\n * @example\n * stringify('hello') // '\"hello\"'\n * stringify('\"hello\"') // '\"hello\"'\n */\nexport function stringify(value: string | number | boolean | undefined): string {\n if (value === undefined || value === null) return '\"\"'\n return JSON.stringify(trimQuotes(value.toString()))\n}\n\n/**\n * Converts a plain object into a multiline key-value string suitable for embedding in generated code.\n * Nested objects are recursively stringified with indentation.\n *\n * @example\n * stringifyObject({ foo: 'bar', nested: { a: 1 } })\n * // 'foo: bar,\\nnested: {\\n a: 1\\n }'\n */\nexport function stringifyObject(value: Record<string, unknown>): string {\n const items = Object.entries(value)\n .map(([key, val]) => {\n if (val !== null && typeof val === 'object') {\n return `${key}: {\\n ${stringifyObject(val as Record<string, unknown>)}\\n }`\n }\n return `${key}: ${val}`\n })\n .filter(Boolean)\n return items.join(',\\n')\n}\n\n/**\n * Converts a dot-notation path or string array into an optional-chaining accessor expression.\n *\n * @example\n * getNestedAccessor('pagination.next.id', 'lastPage')\n * // → \"lastPage?.['pagination']?.['next']?.['id']\"\n */\nexport function getNestedAccessor(param: string | string[], accessor: string): string | null {\n const parts = Array.isArray(param) ? param : param.split('.')\n if (parts.length === 0 || (parts.length === 1 && parts[0] === '')) return null\n return `${accessor}?.['${`${parts.join(\"']?.['\")}']`}`\n}\n","import { trimQuotes } from './string.ts'\n\n/**\n * Converts a pattern string into a `new RegExp(...)` constructor call or a regex literal string.\n * Inline flags expressed as `^(?im)` prefixes are extracted and applied to the resulting expression.\n * Pass `null` as the second argument to emit a `/pattern/flags` literal instead.\n *\n * @example\n * toRegExpString('^(?im)foo') // → 'new RegExp(\"foo\", \"im\")'\n * toRegExpString('^(?im)foo', null) // → '/foo/im'\n */\nexport function toRegExpString(text: string, func: string | null = 'RegExp'): string {\n const raw = trimQuotes(text)\n\n const match = raw.match(/^\\^(\\(\\?([igmsuy]+)\\))/i)\n const replacementTarget = match?.[1] ?? ''\n const matchedFlags = match?.[2]\n const cleaned = raw\n .replace(/^\\\\?\\//, '')\n .replace(/\\\\?\\/$/, '')\n .replace(replacementTarget, '')\n\n const { source, flags } = new RegExp(cleaned, matchedFlags)\n\n if (func === null) return `/${source}/${flags}`\n\n return `new ${func}(${JSON.stringify(source)}${flags ? `, ${JSON.stringify(flags)}` : ''})`\n}\n","import { stringify, toRegExpString } from '@internals/utils'\nimport { ast } from '@kubb/core'\nimport type { PluginFaker, ResolverFaker } from '../types.ts'\n\n/**\n * Partial printer nodes for Faker generation, mapping schema types to output strings.\n */\nexport type PrinterFakerNodes = ast.PrinterPartial<string, PrinterFakerOptions>\n\n/**\n * Configuration options for the Faker printer, including resolvers, mappers, and cyclic schema tracking.\n */\nexport type PrinterFakerOptions = {\n dateParser?: PluginFaker['resolvedOptions']['dateParser']\n regexGenerator?: PluginFaker['resolvedOptions']['regexGenerator']\n mapper?: PluginFaker['resolvedOptions']['mapper']\n resolver: ResolverFaker\n typeName?: string\n schemaName?: string\n nestedInObject?: boolean\n nodes?: PrinterFakerNodes\n /**\n * Names of schemas that participate in a circular dependency chain.\n * Properties whose schema transitively references one of these are emitted\n * as lazy getters so that user overrides via the `data` parameter prevent\n * the recursive faker call from ever executing (avoiding stack overflow).\n */\n cyclicSchemas?: ReadonlySet<string>\n}\n\n/**\n * Factory options for the Faker printer, defining input/output types and configuration.\n */\nexport type PrinterFakerFactory = ast.PrinterFactoryOptions<'faker', PrinterFakerOptions, string, string>\n\nconst fakerKeywordMapper = {\n any: () => 'undefined',\n unknown: () => 'undefined',\n void: () => 'undefined',\n number: (min?: number, max?: number) => {\n if (max !== undefined && min !== undefined) {\n return `faker.number.float({ min: ${min}, max: ${max} })`\n }\n\n if (max !== undefined) {\n return `faker.number.float({ max: ${max} })`\n }\n\n if (min !== undefined) {\n return `faker.number.float({ min: ${min} })`\n }\n\n return 'faker.number.float()'\n },\n integer: (min?: number, max?: number) => {\n if (max !== undefined && min !== undefined) {\n return `faker.number.int({ min: ${min}, max: ${max} })`\n }\n\n if (max !== undefined) {\n return `faker.number.int({ max: ${max} })`\n }\n\n if (min !== undefined) {\n return `faker.number.int({ min: ${min} })`\n }\n\n return 'faker.number.int()'\n },\n bigint: () => 'faker.number.bigInt()',\n string: (min?: number, max?: number) => {\n if (max !== undefined && min !== undefined) {\n return `faker.string.alpha({ length: { min: ${min}, max: ${max} } })`\n }\n\n if (max !== undefined) {\n return `faker.string.alpha({ length: ${max} })`\n }\n\n if (min !== undefined) {\n return `faker.string.alpha({ length: ${min} })`\n }\n\n return 'faker.string.alpha()'\n },\n boolean: () => 'faker.datatype.boolean()',\n null: () => 'null',\n array: (items: string[] = [], min?: number, max?: number) => {\n if (items.length > 1) {\n return `faker.helpers.arrayElements([${items.join(', ')}])`\n }\n\n const item = items.at(0)\n\n if (min !== undefined && max !== undefined) {\n return `faker.helpers.multiple(() => (${item}), { count: { min: ${min}, max: ${max} }})`\n }\n\n if (min !== undefined) {\n return `faker.helpers.multiple(() => (${item}), { count: ${min} })`\n }\n\n if (max !== undefined) {\n return `faker.helpers.multiple(() => (${item}), { count: { min: 0, max: ${max} }})`\n }\n\n return `faker.helpers.multiple(() => (${item}))`\n },\n tuple: (items: string[] = []) => `[${items.join(', ')}]`,\n enum: (items: Array<string | number | boolean | undefined> = [], type = 'any') => `faker.helpers.arrayElement<${type}>([${items.join(', ')}])`,\n union: (items: string[] = []) => `faker.helpers.arrayElement<any>([${items.join(', ')}])`,\n datetime: () => 'faker.date.anytime().toISOString()',\n date: (representation: 'date' | 'string' = 'string', parser: PluginFaker['resolvedOptions']['dateParser'] = 'faker') => {\n if (representation === 'string') {\n if (parser !== 'faker') {\n return `${parser}(faker.date.anytime()).format(\"YYYY-MM-DD\")`\n }\n\n return 'faker.date.anytime().toISOString().substring(0, 10)'\n }\n\n if (parser !== 'faker') {\n throw new Error(`type '${representation}' and parser '${parser}' can not work together`)\n }\n\n return 'faker.date.anytime()'\n },\n time: (representation: 'date' | 'string' = 'string', parser: PluginFaker['resolvedOptions']['dateParser'] = 'faker') => {\n if (representation === 'string') {\n if (parser !== 'faker') {\n return `${parser}(faker.date.anytime()).format(\"HH:mm:ss\")`\n }\n\n return 'faker.date.anytime().toISOString().substring(11, 19)'\n }\n\n if (parser !== 'faker') {\n throw new Error(`type '${representation}' and parser '${parser}' can not work together`)\n }\n\n return 'faker.date.anytime()'\n },\n uuid: () => 'faker.string.uuid()',\n url: () => 'faker.internet.url()',\n and: (items: string[] = []) => {\n if (items.length === 0) {\n return '{}'\n }\n\n if (items.length === 1) {\n return items[0] ?? '{}'\n }\n\n return `{...${items.join(', ...')}}`\n },\n matches: (value = '', regexGenerator: 'faker' | 'randexp' = 'faker') => {\n if (regexGenerator === 'randexp') {\n return `${toRegExpString(value, 'RandExp')}.gen()`\n }\n\n return `faker.helpers.fromRegExp(\"${value}\")`\n },\n email: () => 'faker.internet.email()',\n blob: () => 'faker.image.url() as unknown as Blob',\n} as const\n\nfunction getEnumValues(node: ast.EnumSchemaNode): Array<string | number | boolean | undefined> {\n if (node.namedEnumValues?.length) {\n return node.namedEnumValues.map((item) => item.value as string | number | boolean | undefined)\n }\n\n return (node.enumValues ?? []) as Array<string | number | boolean | undefined>\n}\n\nfunction parseEnumValue(value: string | number | boolean | undefined) {\n if (typeof value === 'string') {\n return stringify(value)\n }\n\n return value\n}\n\n/**\n * Creates a Faker printer that generates mock data generation code from schema nodes.\n * Handles circular references gracefully by emitting memoizing getters for cyclic properties.\n */\nexport const printerFaker: (options: PrinterFakerOptions) => ast.Printer<PrinterFakerFactory> = ast.definePrinter<PrinterFakerFactory>((options) => {\n const printNested = (node: ast.SchemaNode, overrideOptions: Partial<PrinterFakerOptions> = {}): string => {\n return (\n printerFaker({\n ...options,\n ...overrideOptions,\n nodes: options.nodes,\n }).print(node) ?? 'undefined'\n )\n }\n\n return {\n name: 'faker',\n options,\n nodes: {\n any: () => fakerKeywordMapper.any(),\n unknown: () => fakerKeywordMapper.unknown(),\n void: () => fakerKeywordMapper.void(),\n boolean: () => fakerKeywordMapper.boolean(),\n null: () => fakerKeywordMapper.null(),\n string(node) {\n if (node.pattern) {\n return fakerKeywordMapper.matches(node.pattern, this.options.regexGenerator)\n }\n\n return fakerKeywordMapper.string(node.min, node.max)\n },\n email: () => fakerKeywordMapper.email(),\n url: () => fakerKeywordMapper.url(),\n uuid: () => fakerKeywordMapper.uuid(),\n number(node) {\n return fakerKeywordMapper.number(node.min, node.max)\n },\n integer(node) {\n return fakerKeywordMapper.integer(node.min, node.max)\n },\n bigint: () => fakerKeywordMapper.bigint(),\n blob: () => fakerKeywordMapper.blob(),\n datetime: () => fakerKeywordMapper.datetime(),\n date(node) {\n return fakerKeywordMapper.date(node.representation ?? 'string', this.options.dateParser)\n },\n time(node) {\n return fakerKeywordMapper.time(node.representation ?? 'string', this.options.dateParser)\n },\n ref(node) {\n // Parser-generated refs (with $ref) carry raw schema names that need resolving.\n // Use the canonical name from the $ref path — node.name may have been overridden\n // (e.g. by single-member allOf flatten using the property-derived child name).\n // Inline refs (without $ref) from faker utils already carry resolved helper names.\n const refName = node.ref ? (ast.extractRefName(node.ref) ?? node.name ?? node.schema?.name) : (node.name ?? node.schema?.name)\n\n if (!refName) {\n throw new Error('Name not defined for ref node')\n }\n\n if (this.options.schemaName && refName === this.options.schemaName) {\n return 'undefined as any'\n }\n\n // Internal helper refs (for generated response/data helpers) are already\n // emitted with resolver output and should not be transformed twice.\n const resolvedName = node.ref ? this.options.resolver.resolveName(refName) : refName\n\n if (!this.options.nestedInObject) {\n return `${resolvedName}(data)`\n }\n\n return `${resolvedName}()`\n },\n enum(node) {\n return fakerKeywordMapper.enum(getEnumValues(node).map(parseEnumValue), this.options.typeName)\n },\n union(node): string {\n const items: string[] = (node.members ?? [])\n .map((member) =>\n printNested(member, {\n nestedInObject: true,\n }),\n )\n .filter((item): item is string => Boolean(item))\n\n return fakerKeywordMapper.union(items)\n },\n intersection(node): string {\n const items: string[] = (node.members ?? [])\n .map((member) =>\n printNested(member, {\n nestedInObject: true,\n }),\n )\n .filter((item): item is string => Boolean(item))\n\n return fakerKeywordMapper.and(items)\n },\n array(node): string {\n const items: string[] = (node.items ?? [])\n .map((member) =>\n printNested(member, {\n typeName: this.options.typeName ? `NonNullable<${this.options.typeName}>[number]` : undefined,\n nestedInObject: true,\n }),\n )\n .filter((item): item is string => Boolean(item))\n\n return fakerKeywordMapper.array(items, node.min, node.max)\n },\n tuple(node): string {\n const items: string[] = (node.items ?? [])\n .map((member, index) =>\n printNested(member, {\n typeName: this.options.typeName ? `NonNullable<${this.options.typeName}>[${index}]` : undefined,\n nestedInObject: true,\n }),\n )\n .filter((item): item is string => Boolean(item))\n\n return fakerKeywordMapper.tuple(items)\n },\n object(node): string {\n const cyclicSchemas = this.options.cyclicSchemas\n const properties = (node.properties ?? [])\n .map((property): string => {\n if (this.options.mapper && Object.hasOwn(this.options.mapper, property.name)) {\n return `\"${property.name}\": ${this.options.mapper[property.name]}`\n }\n\n const value: string =\n printNested(property.schema, {\n typeName: this.options.typeName ? `NonNullable<${this.options.typeName}>[${JSON.stringify(property.name)}]` : undefined,\n nestedInObject: true,\n }) ?? 'undefined'\n\n // When the property's schema transitively references a schema that is\n // part of a circular dependency (other than the current schema itself),\n // emit a memoizing lazy getter. On first access it computes the value,\n // replaces itself with a plain data property via Object.defineProperty,\n // and returns the cached value – so every subsequent read is stable.\n if (cyclicSchemas && ast.containsCircularRef(property.schema, { circularSchemas: cyclicSchemas, excludeName: this.options.schemaName })) {\n return `get ${property.name}() { const _value = ${value}; Object.defineProperty(this, ${JSON.stringify(property.name)}, { value: _value, configurable: true, writable: true, enumerable: true }); return _value }`\n }\n\n return `\"${property.name}\": ${value}`\n })\n .join(',')\n\n return `{${properties}}`\n },\n ...options.nodes,\n },\n print(node) {\n return this.transform(node) ?? null\n },\n }\n})\n","import { ast, defineGenerator } from '@kubb/core'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { File, jsxRenderer } from '@kubb/renderer-jsx'\nimport { Faker } from '../components/Faker.tsx'\nimport { printerFaker } from '../printers/printerFaker.ts'\nimport type { PluginFaker } from '../types.ts'\nimport {\n aliasConflictingImports,\n buildResponseUnionSchema,\n canOverrideSchema,\n filterUsedImports,\n localeToFakerImport,\n resolveParamNameByLocation,\n resolveSchemaRef,\n resolveTypeReference,\n rewriteAliasedImports,\n} from '../utils.ts'\n\nexport const fakerGenerator = defineGenerator<PluginFaker>({\n name: 'faker',\n renderer: jsxRenderer,\n schema(node, ctx) {\n const { adapter, config, resolver, root } = ctx\n const { output, group, dateParser, regexGenerator, mapper, seed, locale, printer } = ctx.options\n const pluginTs = ctx.driver.getPlugin(pluginTsName)\n\n if (!node.name || !pluginTs || !adapter.inputNode) {\n return\n }\n\n const tsResolver = ctx.driver.getResolver(pluginTsName)\n\n const schemaNode = resolveSchemaRef(node, adapter.inputNode.schemas)\n const schemaName = schemaNode.name ?? node.name\n const mode = ctx.getMode(output)\n const meta = {\n name: resolver.resolveName(schemaName),\n file: resolver.resolveFile({ name: schemaName, extname: '.ts' }, { root, output, group }),\n typeName: tsResolver.resolveTypeName(schemaName),\n typeFile: tsResolver.resolveFile(\n { name: schemaName, extname: '.ts' },\n { root, output: pluginTs.options?.output ?? output, group: pluginTs.options?.group },\n ),\n } as const\n const canOverride = canOverrideSchema(schemaNode)\n const cyclicSchemas = adapter.inputNode ? ast.findCircularSchemas(adapter.inputNode.schemas) : undefined\n const printerInstance = printerFaker({\n resolver,\n schemaName,\n typeName: meta.typeName,\n dateParser,\n regexGenerator,\n mapper,\n nodes: printer?.nodes,\n cyclicSchemas,\n })\n const fakerText = printerInstance.print(schemaNode) ?? 'undefined'\n const typeReference = resolveTypeReference({\n node: schemaNode,\n canOverride,\n name: meta.name,\n typeName: meta.typeName,\n filePath: meta.file.path,\n typeFilePath: meta.typeFile.path,\n })\n\n const imports = adapter\n .getImports(schemaNode, (schemaName) => ({\n name: resolver.resolveName(schemaName),\n path: resolver.resolveFile({ name: schemaName, extname: '.ts' }, { root, output, group }).path,\n }))\n .filter((entry) => entry.path !== meta.file.path)\n const usedImports = filterUsedImports(imports, fakerText)\n\n return (\n <File\n baseName={meta.file.baseName}\n path={meta.file.path}\n meta={meta.file.meta}\n banner={resolver.resolveBanner(adapter.inputNode, { output, config })}\n footer={resolver.resolveFooter(adapter.inputNode, { output, config })}\n >\n <File.Import name={locale ? [{ propertyName: localeToFakerImport(locale), name: 'faker' }] : ['faker']} path=\"@faker-js/faker\" />\n {regexGenerator === 'randexp' && <File.Import name={'RandExp'} path={'randexp'} />}\n {dateParser !== 'faker' && <File.Import path={dateParser} name={dateParser} />}\n {typeReference.importPath && <File.Import isTypeOnly root={meta.file.path} path={typeReference.importPath} name={[meta.typeName]} />}\n {mode === 'split' &&\n usedImports.map((imp) => <File.Import key={[schemaName, imp.path, imp.name].join('-')} root={meta.file.path} path={imp.path} name={imp.name} />)}\n <Faker\n name={meta.name}\n typeName={typeReference.typeName}\n description={schemaNode.description}\n node={schemaNode}\n printer={printerInstance}\n seed={seed}\n canOverride={canOverride}\n />\n </File>\n )\n },\n operation(node, ctx) {\n const { adapter, config, resolver, root } = ctx\n const { output, group, paramsCasing, dateParser, regexGenerator, mapper, seed, locale, printer } = ctx.options\n const pluginTs = ctx.driver.getPlugin(pluginTsName)\n\n if (!pluginTs) {\n return\n }\n\n const tsResolver = ctx.driver.getResolver(pluginTsName)\n\n const params = ast.caseParams(node.parameters, paramsCasing)\n const paramEntries = params.map((param) => ({\n param,\n name: resolveParamNameByLocation(resolver, node, param),\n typeName: resolveParamNameByLocation(tsResolver, node, param),\n }))\n const responseEntries = node.responses.map((response) => ({\n response,\n name: resolver.resolveResponseStatusName(node, response.statusCode),\n typeName: tsResolver.resolveResponseStatusName(node, response.statusCode),\n }))\n const dataEntry = node.requestBody?.content?.[0]?.schema\n ? {\n schema: {\n ...node.requestBody.content![0]!.schema!,\n description: node.requestBody.description ?? node.requestBody.content![0]!.schema!.description,\n },\n name: resolver.resolveDataName(node),\n typeName: tsResolver.resolveDataName(node),\n description: node.requestBody.description ?? node.requestBody.content![0]!.schema!.description,\n }\n : null\n const responseName = resolver.resolveResponseName(node)\n const localHelperNames = new Set([\n ...paramEntries.map((entry) => entry.name),\n ...responseEntries.map((entry) => entry.name),\n ...(dataEntry ? [dataEntry.name] : []),\n responseName,\n ])\n const meta = {\n file: resolver.resolveFile({ name: node.operationId, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path }, { root, output, group }),\n typeFile: tsResolver.resolveFile(\n {\n name: node.operationId,\n extname: '.ts',\n tag: node.tags[0] ?? 'default',\n path: node.path,\n },\n {\n root,\n output: pluginTs.options?.output ?? output,\n group: pluginTs.options?.group,\n },\n ),\n } as const\n\n function resolveMockImports(schema: ast.SchemaNode) {\n return adapter\n .getImports(schema, (schemaName) => ({\n name: resolver.resolveName(schemaName),\n path: resolver.resolveFile({ name: schemaName, extname: '.ts' }, { root, output, group }).path,\n }))\n .filter((entry) => entry.path !== meta.file.path)\n }\n\n function renderEntry({\n schema,\n name,\n typeName,\n description,\n skipImportNames = [],\n }: {\n schema: ast.SchemaNode | null\n name: string\n typeName: string\n description?: string\n skipImportNames?: Array<string>\n }) {\n if (!schema) {\n return null\n }\n\n const canOverride = canOverrideSchema(schema)\n const cyclicSchemas = adapter.inputNode ? ast.findCircularSchemas(adapter.inputNode.schemas) : undefined\n const printerInstance = printerFaker({\n resolver,\n schemaName: name,\n typeName,\n dateParser,\n regexGenerator,\n mapper,\n nodes: printer?.nodes,\n cyclicSchemas,\n })\n const fakerText = printerInstance.print(schema) ?? 'undefined'\n const usedImports = filterUsedImports(resolveMockImports(schema), fakerText, skipImportNames)\n const { imports, aliases } = aliasConflictingImports(usedImports, localHelperNames)\n const rewrittenFakerText = rewriteAliasedImports(fakerText, aliases)\n const typeReference = resolveTypeReference({\n node: schema,\n canOverride,\n name,\n typeName,\n filePath: meta.file.path,\n typeFilePath: meta.typeFile.path,\n })\n\n return (\n <>\n {typeReference.importPath && <File.Import isTypeOnly root={meta.file.path} path={typeReference.importPath} name={[typeName]} />}\n {imports.map((imp) => (\n <File.Import key={[name, imp.path, imp.name].join('-')} root={meta.file.path} path={imp.path} name={imp.name} />\n ))}\n <Faker\n name={name}\n typeName={typeReference.typeName}\n description={description}\n node={schema}\n printer={{ ...printerInstance, print: () => rewrittenFakerText }}\n seed={seed}\n canOverride={canOverride}\n />\n </>\n )\n }\n\n return (\n <File\n baseName={meta.file.baseName}\n path={meta.file.path}\n meta={meta.file.meta}\n banner={resolver.resolveBanner(adapter.inputNode, { output, config })}\n footer={resolver.resolveFooter(adapter.inputNode, { output, config })}\n >\n <File.Import name={locale ? [{ propertyName: localeToFakerImport(locale), name: 'faker' }] : ['faker']} path=\"@faker-js/faker\" />\n {regexGenerator === 'randexp' && <File.Import name={'RandExp'} path={'randexp'} />}\n {dateParser !== 'faker' && <File.Import path={dateParser} name={dateParser} />}\n {paramEntries.map(({ param, name, typeName }) =>\n renderEntry({\n schema: param.schema,\n name,\n typeName,\n }),\n )}\n {responseEntries.map(({ response, name, typeName }) =>\n renderEntry({\n schema: response.schema,\n name,\n typeName,\n description: response.description,\n }),\n )}\n {dataEntry\n ? renderEntry({\n schema: dataEntry.schema,\n name: dataEntry.name,\n typeName: dataEntry.typeName,\n description: dataEntry.description,\n })\n : null}\n {renderEntry({\n schema: buildResponseUnionSchema(node, resolver),\n name: responseName,\n typeName: tsResolver.resolveResponseName(node),\n skipImportNames: responseEntries.map(({ name }) => name),\n })}\n </File>\n )\n },\n})\n"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_fakerGenerator = require("./fakerGenerator-CYUCNH3Q.cjs");
2
+ const require_fakerGenerator = require("./fakerGenerator-VJEVzLjc.cjs");
3
3
  exports.fakerGenerator = require_fakerGenerator.fakerGenerator;