@kubb/plugin-faker 3.8.0 → 3.9.1

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 (36) hide show
  1. package/dist/{chunk-TJPKGILP.cjs → chunk-C6TOQ43C.cjs} +47 -30
  2. package/dist/chunk-C6TOQ43C.cjs.map +1 -0
  3. package/dist/{chunk-MBRWBKTN.js → chunk-EZDWXI4J.js} +6 -5
  4. package/dist/chunk-EZDWXI4J.js.map +1 -0
  5. package/dist/{chunk-QWGJDKEF.cjs → chunk-KP4XNZBJ.cjs} +8 -7
  6. package/dist/chunk-KP4XNZBJ.cjs.map +1 -0
  7. package/dist/{chunk-ZP266LGS.js → chunk-T5ZWCHWB.js} +47 -30
  8. package/dist/chunk-T5ZWCHWB.js.map +1 -0
  9. package/dist/components.cjs +2 -2
  10. package/dist/components.js +1 -1
  11. package/dist/generators.cjs +3 -3
  12. package/dist/generators.js +2 -2
  13. package/dist/index.cjs +3 -3
  14. package/dist/index.js +2 -2
  15. package/package.json +11 -11
  16. package/src/components/Faker.tsx +9 -4
  17. package/src/generators/__snapshots__/createPet.ts +4 -0
  18. package/src/generators/__snapshots__/createPetSeed.ts +4 -0
  19. package/src/generators/__snapshots__/createPetUnknownTypeAny.ts +4 -0
  20. package/src/generators/__snapshots__/deletePet.ts +5 -0
  21. package/src/generators/__snapshots__/enumNames.ts +5 -1
  22. package/src/generators/__snapshots__/enumVarNames.ts +5 -1
  23. package/src/generators/__snapshots__/getPets.ts +4 -0
  24. package/src/generators/__snapshots__/pet.ts +4 -0
  25. package/src/generators/__snapshots__/petWithDateString.ts +4 -0
  26. package/src/generators/__snapshots__/petWithDayjs.ts +4 -0
  27. package/src/generators/__snapshots__/petWithMapper.ts +4 -0
  28. package/src/generators/__snapshots__/petWithRandExp.ts +4 -0
  29. package/src/generators/__snapshots__/pets.ts +6 -2
  30. package/src/generators/__snapshots__/showPetById.ts +4 -0
  31. package/src/generators/fakerGenerator.tsx +3 -2
  32. package/src/parser.ts +27 -12
  33. package/dist/chunk-MBRWBKTN.js.map +0 -1
  34. package/dist/chunk-QWGJDKEF.cjs.map +0 -1
  35. package/dist/chunk-TJPKGILP.cjs.map +0 -1
  36. package/dist/chunk-ZP266LGS.js.map +0 -1
@@ -43,22 +43,22 @@ var fakerKeywordMapper = {
43
43
  null: () => "null",
44
44
  array: (items = [], min, max) => {
45
45
  if (items.length > 1) {
46
- return `faker.helpers.arrayElements([${items.join(", ")}]) as any`;
46
+ return `faker.helpers.arrayElements([${items.join(", ")}])`;
47
47
  }
48
48
  const item = items.at(0);
49
49
  if (min !== void 0 && max !== void 0) {
50
- return `faker.helpers.multiple(() => (${item}), { count: { min: ${min}, max: ${max} }}) as any`;
50
+ return `faker.helpers.multiple(() => (${item}), { count: { min: ${min}, max: ${max} }})`;
51
51
  }
52
52
  if (min !== void 0) {
53
- return `faker.helpers.multiple(() => (${item}), { count: ${min} }) as any`;
53
+ return `faker.helpers.multiple(() => (${item}), { count: ${min} })`;
54
54
  }
55
55
  if (max !== void 0) {
56
- return `faker.helpers.multiple(() => (${item}), { count: { min: 0, max: ${max} }}) as any`;
56
+ return `faker.helpers.multiple(() => (${item}), { count: { min: 0, max: ${max} }})`;
57
57
  }
58
- return `faker.helpers.multiple(() => (${item})) as any`;
58
+ return `faker.helpers.multiple(() => (${item}))`;
59
59
  },
60
- tuple: (items = []) => `faker.helpers.arrayElements([${items.join(", ")}]) as any`,
61
- enum: (items = []) => `faker.helpers.arrayElement<any>([${items.join(", ")}])`,
60
+ tuple: (items = []) => `[${items.join(", ")}]`,
61
+ enum: (items = [], type = "any") => `faker.helpers.arrayElement<${type}>([${items.join(", ")}])`,
62
62
  union: (items = []) => `faker.helpers.arrayElement<any>([${items.join(", ")}])`,
63
63
  /**
64
64
  * ISO 8601
@@ -125,12 +125,12 @@ var fakerKeywordMapper = {
125
125
  optional: void 0,
126
126
  readOnly: void 0,
127
127
  writeOnly: void 0,
128
- strict: void 0,
129
128
  deprecated: void 0,
130
129
  example: void 0,
131
130
  schema: void 0,
132
131
  catchall: void 0,
133
- name: void 0
132
+ name: void 0,
133
+ interface: void 0
134
134
  };
135
135
  function schemaKeywordSorter(_a, b) {
136
136
  if (b.keyword === "null") {
@@ -148,36 +148,49 @@ function joinItems(items) {
148
148
  return fakerKeywordMapper.union(items);
149
149
  }
150
150
  }
151
- function parse({ current, siblings }, options) {
151
+ function parse({ current, parent, name, siblings }, options) {
152
152
  const value = fakerKeywordMapper[current.keyword];
153
153
  if (!value) {
154
154
  return void 0;
155
155
  }
156
156
  if (pluginOas.isKeyword(current, pluginOas.schemaKeywords.union)) {
157
157
  return fakerKeywordMapper.union(
158
- current.args.map((schema) => parse({ current: schema, siblings }, { ...options, canOverride: false })).filter(Boolean)
158
+ current.args.map((schema) => parse({ parent: current, current: schema, siblings }, { ...options, canOverride: false })).filter(Boolean)
159
159
  );
160
160
  }
161
161
  if (pluginOas.isKeyword(current, pluginOas.schemaKeywords.and)) {
162
162
  return fakerKeywordMapper.and(
163
- current.args.map((schema) => parse({ current: schema, siblings }, { ...options, canOverride: false })).filter(Boolean)
163
+ current.args.map((schema) => parse({ parent: current, current: schema, siblings }, { ...options, canOverride: false })).filter(Boolean)
164
164
  );
165
165
  }
166
166
  if (pluginOas.isKeyword(current, pluginOas.schemaKeywords.array)) {
167
167
  return fakerKeywordMapper.array(
168
- current.args.items.map((schema) => parse({ current: schema, siblings }, { ...options, canOverride: false })).filter(Boolean),
168
+ current.args.items.map((schema) => parse({ parent: current, current: schema, siblings }, { ...options, canOverride: false })).filter(Boolean),
169
169
  current.args.min,
170
170
  current.args.max
171
171
  );
172
172
  }
173
173
  if (pluginOas.isKeyword(current, pluginOas.schemaKeywords.enum)) {
174
+ const isParentTuple = parent ? pluginOas.isKeyword(parent, pluginOas.schemaKeywords.tuple) : false;
175
+ if (isParentTuple) {
176
+ return fakerKeywordMapper.enum(
177
+ current.args.items.map((schema) => {
178
+ if (schema.format === "number") {
179
+ return schema.value;
180
+ }
181
+ return transformers__default.default.stringify(schema.value);
182
+ })
183
+ // key ? `NonNullable<${options.typeName}>${key.map((item) => `[${item}]`).join('')}` : undefined,
184
+ );
185
+ }
174
186
  return fakerKeywordMapper.enum(
175
187
  current.args.items.map((schema) => {
176
188
  if (schema.format === "number") {
177
- return schema.name;
189
+ return schema.value;
178
190
  }
179
- return transformers__default.default.stringify(schema.name);
180
- })
191
+ return transformers__default.default.stringify(schema.value);
192
+ }),
193
+ name ? `NonNullable<${options.typeName}>['${name}']` : void 0
181
194
  );
182
195
  }
183
196
  if (pluginOas.isKeyword(current, pluginOas.schemaKeywords.ref)) {
@@ -193,14 +206,14 @@ function parse({ current, siblings }, options) {
193
206
  const argsObject = Object.entries(current.args?.properties || {}).filter((item) => {
194
207
  const schema = item[1];
195
208
  return schema && typeof schema.map === "function";
196
- }).map(([name, schemas]) => {
209
+ }).map(([name2, schemas]) => {
197
210
  const nameSchema = schemas.find((schema) => schema.keyword === pluginOas.schemaKeywords.name);
198
- const mappedName = nameSchema?.args || name;
211
+ const mappedName = nameSchema?.args || name2;
199
212
  if (options.mapper?.[mappedName]) {
200
- return `"${name}": ${options.mapper?.[mappedName]}`;
213
+ return `"${name2}": ${options.mapper?.[mappedName]}`;
201
214
  }
202
- return `"${name}": ${joinItems(
203
- schemas.sort(schemaKeywordSorter).map((schema) => parse({ current: schema, siblings: schemas }, { ...options, canOverride: false })).filter(Boolean)
215
+ return `"${name2}": ${joinItems(
216
+ schemas.sort(schemaKeywordSorter).map((schema) => parse({ name: name2, parent: current, current: schema, siblings: schemas }, { ...options, canOverride: false })).filter(Boolean)
204
217
  )}`;
205
218
  }).join(",");
206
219
  return `{${argsObject}}`;
@@ -208,10 +221,10 @@ function parse({ current, siblings }, options) {
208
221
  if (pluginOas.isKeyword(current, pluginOas.schemaKeywords.tuple)) {
209
222
  if (Array.isArray(current.args.items)) {
210
223
  return fakerKeywordMapper.tuple(
211
- current.args.items.map((schema) => parse({ current: schema, siblings }, { ...options, canOverride: false })).filter(Boolean)
224
+ current.args.items.map((schema) => parse({ parent: current, current: schema, siblings }, { ...options, canOverride: false })).filter(Boolean)
212
225
  );
213
226
  }
214
- return parse({ current: current.args.items, siblings }, { ...options, canOverride: false });
227
+ return parse({ parent: current, current: current.args.items, siblings }, { ...options, canOverride: false });
215
228
  }
216
229
  if (pluginOas.isKeyword(current, pluginOas.schemaKeywords.const)) {
217
230
  if (current.args.format === "number" && current.args.name !== void 0) {
@@ -272,7 +285,7 @@ function Faker({ tree, description, name, typeName, seed, regexGenerator, canOve
272
285
  const fakerText = joinItems(
273
286
  tree.map(
274
287
  (schema, _index, siblings) => parse(
275
- { current: schema, siblings },
288
+ { parent: void 0, current: schema, siblings },
276
289
  {
277
290
  name,
278
291
  typeName,
@@ -285,17 +298,20 @@ function Faker({ tree, description, name, typeName, seed, regexGenerator, canOve
285
298
  )
286
299
  ).filter(Boolean)
287
300
  );
301
+ const isArray = fakerText.startsWith("faker.helpers.arrayElements") || fakerText.startsWith("faker.helpers.multiple");
302
+ const isObject = fakerText.startsWith("{");
303
+ const isTuple = fakerText.startsWith("faker.helpers.arrayElement");
288
304
  let fakerTextWithOverride = fakerText;
289
- if (canOverride && fakerText.startsWith("{")) {
305
+ if (canOverride && isObject) {
290
306
  fakerTextWithOverride = `{
291
307
  ...${fakerText},
292
308
  ...data || {}
293
309
  }`;
294
310
  }
295
- if (canOverride && fakerText.startsWith("faker.helpers.arrayElement")) {
311
+ if (canOverride && isTuple) {
296
312
  fakerTextWithOverride = `data || ${fakerText}`;
297
313
  }
298
- if (canOverride && fakerText.startsWith("faker.helpers.arrayElements") || fakerText.startsWith("faker.helpers.multiple")) {
314
+ if (canOverride && isArray) {
299
315
  fakerTextWithOverride = `[
300
316
  ...${fakerText},
301
317
  ...data || []
@@ -303,7 +319,8 @@ function Faker({ tree, description, name, typeName, seed, regexGenerator, canOve
303
319
  }
304
320
  const params = react.FunctionParams.factory({
305
321
  data: {
306
- type: `Partial<${typeName}>`,
322
+ // making a partial out of an array does not make sense
323
+ type: isArray ? typeName : `Partial<${typeName}>`,
307
324
  optional: true
308
325
  }
309
326
  });
@@ -325,5 +342,5 @@ function Faker({ tree, description, name, typeName, seed, regexGenerator, canOve
325
342
  }
326
343
 
327
344
  exports.Faker = Faker;
328
- //# sourceMappingURL=chunk-TJPKGILP.cjs.map
329
- //# sourceMappingURL=chunk-TJPKGILP.cjs.map
345
+ //# sourceMappingURL=chunk-C6TOQ43C.cjs.map
346
+ //# sourceMappingURL=chunk-C6TOQ43C.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/parser.ts","../src/components/Faker.tsx"],"names":["transformers","isKeyword","schemaKeywords","name","SchemaGenerator","value","options","FunctionParams","jsx","File","jsxs","Function"],"mappings":"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","file":"chunk-C6TOQ43C.cjs","sourcesContent":["import transformers from '@kubb/core/transformers'\nimport { SchemaGenerator, type SchemaTree, isKeyword, schemaKeywords } from '@kubb/plugin-oas'\n\nimport type { Schema, SchemaKeywordBase, SchemaKeywordMapper, SchemaMapper } from '@kubb/plugin-oas'\nimport type { Options } from './types.ts'\n\nconst fakerKeywordMapper = {\n any: () => 'undefined',\n unknown: () => 'unknown',\n void: () => 'void',\n number: (min?: number, max?: number) => {\n if (max !== undefined && min !== undefined) {\n return `faker.number.float({ min: ${min}, max: ${max} })`\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 (min !== undefined) {\n return `faker.number.int({ min: ${min} })`\n }\n\n if (max !== undefined) {\n return `faker.number.int({ max: ${max} })`\n }\n\n return 'faker.number.int()'\n },\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 return 'faker.string.alpha()'\n },\n boolean: () => 'faker.datatype.boolean()',\n undefined: () => 'undefined',\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 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 if (min !== undefined) {\n return `faker.helpers.multiple(() => (${item}), { count: ${min} })`\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 /**\n * ISO 8601\n */\n datetime: () => 'faker.date.anytime().toISOString()',\n /**\n * Type `'date'` Date\n * Type `'string'` ISO date format (YYYY-MM-DD)\n * @default ISO date format (YYYY-MM-DD)\n */\n date: (type: 'date' | 'string' = 'string', parser: Options['dateParser'] = 'faker') => {\n if (type === 'string') {\n if (parser !== 'faker') {\n return `${parser}(faker.date.anytime()).format(\"YYYY-MM-DD\")`\n }\n return 'faker.date.anytime().toISOString().substring(0, 10)'\n }\n\n if (parser !== 'faker') {\n throw new Error(`type '${type}' and parser '${parser}' can not work together`)\n }\n\n return 'faker.date.anytime()'\n },\n /**\n * Type `'date'` Date\n * Type `'string'` ISO time format (HH:mm:ss[.SSSSSS])\n * @default ISO time format (HH:mm:ss[.SSSSSS])\n */\n time: (type: 'date' | 'string' = 'string', parser: Options['dateParser'] = 'faker') => {\n if (type === 'string') {\n if (parser !== 'faker') {\n return `${parser}(faker.date.anytime()).format(\"HH:mm:ss\")`\n }\n return 'faker.date.anytime().toISOString().substring(11, 19)'\n }\n\n if (parser !== 'faker') {\n throw new Error(`type '${type}' 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[] = []) => `Object.assign({}, ${items.join(', ')})`,\n object: () => 'object',\n ref: () => 'ref',\n matches: (value = '', regexGenerator: 'faker' | 'randexp' = 'faker') => {\n if (regexGenerator === 'randexp') {\n return `${transformers.toRegExpString(value, 'RandExp')}.gen()`\n }\n return `faker.helpers.fromRegExp(${transformers.toRegExpString(value)})`\n },\n email: () => 'faker.internet.email()',\n firstName: () => 'faker.person.firstName()',\n lastName: () => 'faker.person.lastName()',\n password: () => 'faker.internet.password()',\n phone: () => 'faker.phone.number()',\n blob: () => 'faker.image.url() as unknown as Blob',\n default: undefined,\n describe: undefined,\n const: (value?: string | number) => (value as string) ?? '',\n max: undefined,\n min: undefined,\n nullable: undefined,\n nullish: undefined,\n optional: undefined,\n readOnly: undefined,\n writeOnly: undefined,\n deprecated: undefined,\n example: undefined,\n schema: undefined,\n catchall: undefined,\n name: undefined,\n interface: undefined,\n} satisfies SchemaMapper<string | null | undefined>\n\n/**\n * @link based on https://github.com/cellular/oazapfts/blob/7ba226ebb15374e8483cc53e7532f1663179a22c/src/codegen/generate.ts#L398\n */\n\nfunction schemaKeywordSorter(_a: Schema, b: Schema) {\n if (b.keyword === 'null') {\n return -1\n }\n\n return 0\n}\n\nexport function joinItems(items: string[]): string {\n switch (items.length) {\n case 0:\n return 'undefined'\n case 1:\n return items[0]!\n default:\n return fakerKeywordMapper.union(items)\n }\n}\n\ntype ParserOptions = {\n name: string\n typeName?: string\n description?: string\n\n seed?: number | number[]\n regexGenerator?: 'faker' | 'randexp'\n canOverride?: boolean\n dateParser?: Options['dateParser']\n mapper?: Record<string, string>\n}\n\nexport function parse({ current, parent, name, siblings }: SchemaTree, options: ParserOptions): string | null | undefined {\n const value = fakerKeywordMapper[current.keyword as keyof typeof fakerKeywordMapper]\n\n if (!value) {\n return undefined\n }\n\n if (isKeyword(current, schemaKeywords.union)) {\n return fakerKeywordMapper.union(\n current.args.map((schema) => parse({ parent: current, current: schema, siblings }, { ...options, canOverride: false })).filter(Boolean),\n )\n }\n\n if (isKeyword(current, schemaKeywords.and)) {\n return fakerKeywordMapper.and(\n current.args.map((schema) => parse({ parent: current, current: schema, siblings }, { ...options, canOverride: false })).filter(Boolean),\n )\n }\n\n if (isKeyword(current, schemaKeywords.array)) {\n return fakerKeywordMapper.array(\n current.args.items.map((schema) => parse({ parent: current, current: schema, siblings }, { ...options, canOverride: false })).filter(Boolean),\n current.args.min,\n current.args.max,\n )\n }\n\n if (isKeyword(current, schemaKeywords.enum)) {\n const isParentTuple = parent ? isKeyword(parent, schemaKeywords.tuple) : false\n\n if (isParentTuple) {\n return fakerKeywordMapper.enum(\n current.args.items.map((schema) => {\n if (schema.format === 'number') {\n return schema.value\n }\n return transformers.stringify(schema.value)\n }),\n // key ? `NonNullable<${options.typeName}>${key.map((item) => `[${item}]`).join('')}` : undefined,\n )\n }\n\n return fakerKeywordMapper.enum(\n current.args.items.map((schema) => {\n if (schema.format === 'number') {\n return schema.value\n }\n return transformers.stringify(schema.value)\n }),\n name ? `NonNullable<${options.typeName}>['${name}']` : undefined,\n )\n }\n\n if (isKeyword(current, schemaKeywords.ref)) {\n if (!current.args?.name) {\n throw new Error(`Name not defined for keyword ${current.keyword}`)\n }\n\n if (options.canOverride) {\n return `${current.args.name}(data)`\n }\n\n return `${current.args.name}()`\n }\n\n if (isKeyword(current, schemaKeywords.object)) {\n const argsObject = Object.entries(current.args?.properties || {})\n .filter((item) => {\n const schema = item[1]\n return schema && typeof schema.map === 'function'\n })\n .map(([name, schemas]) => {\n const nameSchema = schemas.find((schema) => schema.keyword === schemaKeywords.name) as SchemaKeywordMapper['name']\n const mappedName = nameSchema?.args || name\n\n // custom mapper(pluginOptions)\n if (options.mapper?.[mappedName]) {\n return `\"${name}\": ${options.mapper?.[mappedName]}`\n }\n\n return `\"${name}\": ${joinItems(\n schemas\n .sort(schemaKeywordSorter)\n .map((schema) => parse({ name, parent: current, current: schema, siblings: schemas }, { ...options, canOverride: false }))\n .filter(Boolean),\n )}`\n })\n .join(',')\n\n return `{${argsObject}}`\n }\n\n if (isKeyword(current, schemaKeywords.tuple)) {\n if (Array.isArray(current.args.items)) {\n return fakerKeywordMapper.tuple(\n current.args.items.map((schema) => parse({ parent: current, current: schema, siblings }, { ...options, canOverride: false })).filter(Boolean),\n )\n }\n\n return parse({ parent: current, current: current.args.items, siblings }, { ...options, canOverride: false })\n }\n\n if (isKeyword(current, schemaKeywords.const)) {\n if (current.args.format === 'number' && current.args.name !== undefined) {\n return fakerKeywordMapper.const(current.args.name?.toString())\n }\n return fakerKeywordMapper.const(transformers.stringify(current.args.value))\n }\n\n if (isKeyword(current, schemaKeywords.matches) && current.args) {\n return fakerKeywordMapper.matches(current.args, options.regexGenerator)\n }\n\n if (isKeyword(current, schemaKeywords.null) || isKeyword(current, schemaKeywords.undefined) || isKeyword(current, schemaKeywords.any)) {\n return value() || ''\n }\n\n if (isKeyword(current, schemaKeywords.string)) {\n if (siblings) {\n const minSchema = SchemaGenerator.find(siblings, schemaKeywords.min)\n const maxSchema = SchemaGenerator.find(siblings, schemaKeywords.max)\n\n return fakerKeywordMapper.string(minSchema?.args, maxSchema?.args)\n }\n\n return fakerKeywordMapper.string()\n }\n\n if (isKeyword(current, schemaKeywords.number)) {\n if (siblings) {\n const minSchema = SchemaGenerator.find(siblings, schemaKeywords.min)\n const maxSchema = SchemaGenerator.find(siblings, schemaKeywords.max)\n\n return fakerKeywordMapper.number(minSchema?.args, maxSchema?.args)\n }\n\n return fakerKeywordMapper.number()\n }\n\n if (isKeyword(current, schemaKeywords.integer)) {\n if (siblings) {\n const minSchema = SchemaGenerator.find(siblings, schemaKeywords.min)\n const maxSchema = SchemaGenerator.find(siblings, schemaKeywords.max)\n\n return fakerKeywordMapper.integer(minSchema?.args, maxSchema?.args)\n }\n\n return fakerKeywordMapper.integer()\n }\n\n if (isKeyword(current, schemaKeywords.datetime)) {\n return fakerKeywordMapper.datetime()\n }\n\n if (isKeyword(current, schemaKeywords.date)) {\n return fakerKeywordMapper.date(current.args.type, options.dateParser)\n }\n\n if (isKeyword(current, schemaKeywords.time)) {\n return fakerKeywordMapper.time(current.args.type, options.dateParser)\n }\n\n if (current.keyword in fakerKeywordMapper && 'args' in current) {\n const value = fakerKeywordMapper[current.keyword as keyof typeof fakerKeywordMapper] as (typeof fakerKeywordMapper)['const']\n\n const options = JSON.stringify((current as SchemaKeywordBase<unknown>).args)\n\n return value(options)\n }\n\n if (current.keyword in fakerKeywordMapper) {\n return value()\n }\n\n return undefined\n}\n","import { File, Function, FunctionParams } from '@kubb/react'\n\nimport transformers from '@kubb/core/transformers'\nimport type { Schema } from '@kubb/plugin-oas'\nimport * as parserFaker from '../parser.ts'\nimport type { PluginFaker } from '../types.ts'\n\ntype Props = {\n name: string\n typeName: string\n tree: Array<Schema>\n seed?: PluginFaker['options']['seed']\n description?: string\n regexGenerator?: PluginFaker['options']['regexGenerator']\n mapper?: PluginFaker['options']['mapper']\n dateParser?: PluginFaker['options']['dateParser']\n canOverride: boolean\n}\n\nexport function Faker({ tree, description, name, typeName, seed, regexGenerator, canOverride, mapper, dateParser }: Props) {\n const fakerText = parserFaker.joinItems(\n tree\n .map((schema, _index, siblings) =>\n parserFaker.parse(\n { parent: undefined, current: schema, siblings },\n {\n name,\n typeName,\n seed,\n regexGenerator,\n mapper,\n canOverride,\n dateParser,\n },\n ),\n )\n .filter(Boolean),\n )\n\n const isArray = fakerText.startsWith('faker.helpers.arrayElements') || fakerText.startsWith('faker.helpers.multiple')\n const isObject = fakerText.startsWith('{')\n const isTuple = fakerText.startsWith('faker.helpers.arrayElement')\n\n let fakerTextWithOverride = fakerText\n\n if (canOverride && isObject) {\n fakerTextWithOverride = `{\n ...${fakerText},\n ...data || {}\n}`\n }\n\n if (canOverride && isTuple) {\n fakerTextWithOverride = `data || ${fakerText}`\n }\n\n if (canOverride && isArray) {\n fakerTextWithOverride = `[\n ...${fakerText},\n ...data || []\n ]`\n }\n\n const params = FunctionParams.factory({\n data: {\n // making a partial out of an array does not make sense\n type: isArray ? typeName : `Partial<${typeName}>`,\n optional: true,\n },\n })\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function\n export\n name={name}\n JSDoc={{ comments: [description ? `@description ${transformers.jsStringEscape(description)}` : undefined].filter(Boolean) }}\n params={canOverride ? params.toConstructor() : undefined}\n returnType={canOverride ? typeName : undefined}\n >\n {seed ? `faker.seed(${JSON.stringify(seed)})` : undefined}\n <br />\n {`return ${fakerTextWithOverride}`}\n </Function>\n </File.Source>\n )\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { Faker } from './chunk-ZP266LGS.js';
1
+ import { Faker } from './chunk-T5ZWCHWB.js';
2
2
  import { createReactGenerator, schemaKeywords, SchemaGenerator } from '@kubb/plugin-oas';
3
3
  import { Oas } from '@kubb/plugin-oas/components';
4
4
  import { useSchemaManager, useOas, useOperationManager } from '@kubb/plugin-oas/hooks';
@@ -65,7 +65,7 @@ var fakerGenerator = createReactGenerator({
65
65
  baseName: file.baseName,
66
66
  path: file.path,
67
67
  meta: file.meta,
68
- banner: getBanner({ oas, output: plugin.options.output }),
68
+ banner: getBanner({ oas, output: plugin.options.output, config: pluginManager.config }),
69
69
  footer: getFooter({ oas, output: plugin.options.output }),
70
70
  children: [
71
71
  /* @__PURE__ */ jsx(File.Import, { name: ["faker"], path: "@faker-js/faker" }),
@@ -80,6 +80,7 @@ var fakerGenerator = createReactGenerator({
80
80
  const { dateParser, regexGenerator, seed, mapper } = options;
81
81
  const { getName, getFile, getImports } = useSchemaManager();
82
82
  const {
83
+ pluginManager,
83
84
  plugin: {
84
85
  options: { output }
85
86
  }
@@ -103,7 +104,7 @@ var fakerGenerator = createReactGenerator({
103
104
  baseName: faker.file.baseName,
104
105
  path: faker.file.path,
105
106
  meta: faker.file.meta,
106
- banner: getBanner({ oas, output }),
107
+ banner: getBanner({ oas, output, config: pluginManager.config }),
107
108
  footer: getFooter({ oas, output }),
108
109
  children: [
109
110
  /* @__PURE__ */ jsx(File.Import, { name: ["faker"], path: "@faker-js/faker" }),
@@ -132,5 +133,5 @@ var fakerGenerator = createReactGenerator({
132
133
  });
133
134
 
134
135
  export { fakerGenerator };
135
- //# sourceMappingURL=chunk-MBRWBKTN.js.map
136
- //# sourceMappingURL=chunk-MBRWBKTN.js.map
136
+ //# sourceMappingURL=chunk-EZDWXI4J.js.map
137
+ //# sourceMappingURL=chunk-EZDWXI4J.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/generators/fakerGenerator.tsx"],"names":["options"],"mappings":"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","file":"chunk-EZDWXI4J.js","sourcesContent":["import { type OperationSchema as OperationSchemaType, SchemaGenerator, createReactGenerator, schemaKeywords } from '@kubb/plugin-oas'\nimport { Oas } from '@kubb/plugin-oas/components'\nimport { useOas, useOperationManager, useSchemaManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { File, useApp } from '@kubb/react'\nimport { Faker } from '../components'\nimport type { PluginFaker } from '../types'\n\nexport const fakerGenerator = createReactGenerator<PluginFaker>({\n name: 'faker',\n Operation({ operation, options }) {\n const { dateParser, regexGenerator, seed, mapper } = options\n\n const { plugin, pluginManager, mode } = useApp<PluginFaker>()\n const oas = useOas()\n const { getSchemas, getFile, getGroup } = useOperationManager()\n const schemaManager = useSchemaManager()\n\n const file = getFile(operation)\n const schemas = getSchemas(operation)\n const schemaGenerator = new SchemaGenerator(options, {\n oas,\n plugin,\n pluginManager,\n mode,\n override: options.override,\n })\n\n const operationSchemas = [schemas.pathParams, schemas.queryParams, schemas.headerParams, schemas.statusCodes, schemas.request, schemas.response]\n .flat()\n .filter(Boolean)\n\n const mapOperationSchema = ({ name, schema, description, ...options }: OperationSchemaType, i: number) => {\n const tree = schemaGenerator.parse({ schema, name })\n const imports = schemaManager.getImports(tree)\n const group = options.operation ? getGroup(options.operation) : undefined\n\n const faker = {\n name: schemaManager.getName(name, { type: 'function' }),\n file: schemaManager.getFile(name),\n }\n\n const type = {\n name: schemaManager.getName(name, { type: 'type', pluginKey: [pluginTsName] }),\n file: schemaManager.getFile(options.operationName || name, { pluginKey: [pluginTsName], group }),\n }\n\n const canOverride = tree.some(\n ({ keyword }) =>\n keyword === schemaKeywords.array ||\n keyword === schemaKeywords.and ||\n keyword === schemaKeywords.object ||\n keyword === schemaKeywords.union ||\n keyword === schemaKeywords.tuple,\n )\n\n return (\n <Oas.Schema key={i} name={name} value={schema} tree={tree}>\n {canOverride && <File.Import isTypeOnly root={file.path} path={type.file.path} name={[type.name]} />}\n {imports.map((imp, index) => (\n <File.Import key={index} root={file.path} path={imp.path} name={imp.name} />\n ))}\n <Faker\n name={faker.name}\n typeName={type.name}\n description={description}\n tree={tree}\n regexGenerator={regexGenerator}\n dateParser={dateParser}\n mapper={mapper}\n seed={seed}\n canOverride={canOverride}\n />\n </Oas.Schema>\n )\n }\n\n return (\n <File\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n banner={getBanner({ oas, output: plugin.options.output, config: pluginManager.config })}\n footer={getFooter({ oas, output: plugin.options.output })}\n >\n <File.Import name={['faker']} path=\"@faker-js/faker\" />\n {regexGenerator === 'randexp' && <File.Import name={'RandExp'} path={'randexp'} />}\n {dateParser !== 'faker' && <File.Import path={dateParser} name={dateParser} />}\n {operationSchemas.map(mapOperationSchema)}\n </File>\n )\n },\n Schema({ schema, options }) {\n const { dateParser, regexGenerator, seed, mapper } = options\n\n const { getName, getFile, getImports } = useSchemaManager()\n const {\n pluginManager,\n plugin: {\n options: { output },\n },\n } = useApp<PluginFaker>()\n const oas = useOas()\n const imports = getImports(schema.tree)\n\n const faker = {\n name: getName(schema.name, { type: 'function' }),\n file: getFile(schema.name),\n }\n\n const type = {\n name: getName(schema.name, { type: 'type', pluginKey: [pluginTsName] }),\n file: getFile(schema.name, { pluginKey: [pluginTsName] }),\n }\n\n const canOverride = schema.tree.some(\n ({ keyword }) =>\n keyword === schemaKeywords.array ||\n keyword === schemaKeywords.and ||\n keyword === schemaKeywords.object ||\n keyword === schemaKeywords.union ||\n keyword === schemaKeywords.tuple,\n )\n\n return (\n <File\n baseName={faker.file.baseName}\n path={faker.file.path}\n meta={faker.file.meta}\n banner={getBanner({ oas, output, config: pluginManager.config })}\n footer={getFooter({ oas, output })}\n >\n <File.Import name={['faker']} path=\"@faker-js/faker\" />\n {regexGenerator === 'randexp' && <File.Import name={'RandExp'} path={'randexp'} />}\n {dateParser !== 'faker' && <File.Import path={dateParser} name={dateParser} />}\n <File.Import isTypeOnly root={faker.file.path} path={type.file.path} name={[type.name]} />\n {imports.map((imp, index) => (\n <File.Import key={index} root={faker.file.path} path={imp.path} name={imp.name} />\n ))}\n\n <Faker\n name={faker.name}\n typeName={type.name}\n description={schema.value.description}\n tree={schema.tree}\n regexGenerator={regexGenerator}\n dateParser={dateParser}\n mapper={mapper}\n seed={seed}\n canOverride={canOverride}\n />\n </File>\n )\n },\n})\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkTJPKGILP_cjs = require('./chunk-TJPKGILP.cjs');
3
+ var chunkC6TOQ43C_cjs = require('./chunk-C6TOQ43C.cjs');
4
4
  var pluginOas = require('@kubb/plugin-oas');
5
5
  var components = require('@kubb/plugin-oas/components');
6
6
  var hooks = require('@kubb/plugin-oas/hooks');
@@ -46,7 +46,7 @@ var fakerGenerator = pluginOas.createReactGenerator({
46
46
  canOverride && /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { isTypeOnly: true, root: file.path, path: type.file.path, name: [type.name] }),
47
47
  imports.map((imp, index) => /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { root: file.path, path: imp.path, name: imp.name }, index)),
48
48
  /* @__PURE__ */ jsxRuntime.jsx(
49
- chunkTJPKGILP_cjs.Faker,
49
+ chunkC6TOQ43C_cjs.Faker,
50
50
  {
51
51
  name: faker.name,
52
52
  typeName: type.name,
@@ -67,7 +67,7 @@ var fakerGenerator = pluginOas.createReactGenerator({
67
67
  baseName: file.baseName,
68
68
  path: file.path,
69
69
  meta: file.meta,
70
- banner: utils.getBanner({ oas, output: plugin.options.output }),
70
+ banner: utils.getBanner({ oas, output: plugin.options.output, config: pluginManager.config }),
71
71
  footer: utils.getFooter({ oas, output: plugin.options.output }),
72
72
  children: [
73
73
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["faker"], path: "@faker-js/faker" }),
@@ -82,6 +82,7 @@ var fakerGenerator = pluginOas.createReactGenerator({
82
82
  const { dateParser, regexGenerator, seed, mapper } = options;
83
83
  const { getName, getFile, getImports } = hooks.useSchemaManager();
84
84
  const {
85
+ pluginManager,
85
86
  plugin: {
86
87
  options: { output }
87
88
  }
@@ -105,7 +106,7 @@ var fakerGenerator = pluginOas.createReactGenerator({
105
106
  baseName: faker.file.baseName,
106
107
  path: faker.file.path,
107
108
  meta: faker.file.meta,
108
- banner: utils.getBanner({ oas, output }),
109
+ banner: utils.getBanner({ oas, output, config: pluginManager.config }),
109
110
  footer: utils.getFooter({ oas, output }),
110
111
  children: [
111
112
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["faker"], path: "@faker-js/faker" }),
@@ -114,7 +115,7 @@ var fakerGenerator = pluginOas.createReactGenerator({
114
115
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { isTypeOnly: true, root: faker.file.path, path: type.file.path, name: [type.name] }),
115
116
  imports.map((imp, index) => /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { root: faker.file.path, path: imp.path, name: imp.name }, index)),
116
117
  /* @__PURE__ */ jsxRuntime.jsx(
117
- chunkTJPKGILP_cjs.Faker,
118
+ chunkC6TOQ43C_cjs.Faker,
118
119
  {
119
120
  name: faker.name,
120
121
  typeName: type.name,
@@ -134,5 +135,5 @@ var fakerGenerator = pluginOas.createReactGenerator({
134
135
  });
135
136
 
136
137
  exports.fakerGenerator = fakerGenerator;
137
- //# sourceMappingURL=chunk-QWGJDKEF.cjs.map
138
- //# sourceMappingURL=chunk-QWGJDKEF.cjs.map
138
+ //# sourceMappingURL=chunk-KP4XNZBJ.cjs.map
139
+ //# sourceMappingURL=chunk-KP4XNZBJ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/generators/fakerGenerator.tsx"],"names":["createReactGenerator","useApp","useOas","useOperationManager","useSchemaManager","SchemaGenerator","options","pluginTsName","schemaKeywords","Oas","File","jsx","Faker","jsxs","getBanner","getFooter"],"mappings":"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","file":"chunk-KP4XNZBJ.cjs","sourcesContent":["import { type OperationSchema as OperationSchemaType, SchemaGenerator, createReactGenerator, schemaKeywords } from '@kubb/plugin-oas'\nimport { Oas } from '@kubb/plugin-oas/components'\nimport { useOas, useOperationManager, useSchemaManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { File, useApp } from '@kubb/react'\nimport { Faker } from '../components'\nimport type { PluginFaker } from '../types'\n\nexport const fakerGenerator = createReactGenerator<PluginFaker>({\n name: 'faker',\n Operation({ operation, options }) {\n const { dateParser, regexGenerator, seed, mapper } = options\n\n const { plugin, pluginManager, mode } = useApp<PluginFaker>()\n const oas = useOas()\n const { getSchemas, getFile, getGroup } = useOperationManager()\n const schemaManager = useSchemaManager()\n\n const file = getFile(operation)\n const schemas = getSchemas(operation)\n const schemaGenerator = new SchemaGenerator(options, {\n oas,\n plugin,\n pluginManager,\n mode,\n override: options.override,\n })\n\n const operationSchemas = [schemas.pathParams, schemas.queryParams, schemas.headerParams, schemas.statusCodes, schemas.request, schemas.response]\n .flat()\n .filter(Boolean)\n\n const mapOperationSchema = ({ name, schema, description, ...options }: OperationSchemaType, i: number) => {\n const tree = schemaGenerator.parse({ schema, name })\n const imports = schemaManager.getImports(tree)\n const group = options.operation ? getGroup(options.operation) : undefined\n\n const faker = {\n name: schemaManager.getName(name, { type: 'function' }),\n file: schemaManager.getFile(name),\n }\n\n const type = {\n name: schemaManager.getName(name, { type: 'type', pluginKey: [pluginTsName] }),\n file: schemaManager.getFile(options.operationName || name, { pluginKey: [pluginTsName], group }),\n }\n\n const canOverride = tree.some(\n ({ keyword }) =>\n keyword === schemaKeywords.array ||\n keyword === schemaKeywords.and ||\n keyword === schemaKeywords.object ||\n keyword === schemaKeywords.union ||\n keyword === schemaKeywords.tuple,\n )\n\n return (\n <Oas.Schema key={i} name={name} value={schema} tree={tree}>\n {canOverride && <File.Import isTypeOnly root={file.path} path={type.file.path} name={[type.name]} />}\n {imports.map((imp, index) => (\n <File.Import key={index} root={file.path} path={imp.path} name={imp.name} />\n ))}\n <Faker\n name={faker.name}\n typeName={type.name}\n description={description}\n tree={tree}\n regexGenerator={regexGenerator}\n dateParser={dateParser}\n mapper={mapper}\n seed={seed}\n canOverride={canOverride}\n />\n </Oas.Schema>\n )\n }\n\n return (\n <File\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n banner={getBanner({ oas, output: plugin.options.output, config: pluginManager.config })}\n footer={getFooter({ oas, output: plugin.options.output })}\n >\n <File.Import name={['faker']} path=\"@faker-js/faker\" />\n {regexGenerator === 'randexp' && <File.Import name={'RandExp'} path={'randexp'} />}\n {dateParser !== 'faker' && <File.Import path={dateParser} name={dateParser} />}\n {operationSchemas.map(mapOperationSchema)}\n </File>\n )\n },\n Schema({ schema, options }) {\n const { dateParser, regexGenerator, seed, mapper } = options\n\n const { getName, getFile, getImports } = useSchemaManager()\n const {\n pluginManager,\n plugin: {\n options: { output },\n },\n } = useApp<PluginFaker>()\n const oas = useOas()\n const imports = getImports(schema.tree)\n\n const faker = {\n name: getName(schema.name, { type: 'function' }),\n file: getFile(schema.name),\n }\n\n const type = {\n name: getName(schema.name, { type: 'type', pluginKey: [pluginTsName] }),\n file: getFile(schema.name, { pluginKey: [pluginTsName] }),\n }\n\n const canOverride = schema.tree.some(\n ({ keyword }) =>\n keyword === schemaKeywords.array ||\n keyword === schemaKeywords.and ||\n keyword === schemaKeywords.object ||\n keyword === schemaKeywords.union ||\n keyword === schemaKeywords.tuple,\n )\n\n return (\n <File\n baseName={faker.file.baseName}\n path={faker.file.path}\n meta={faker.file.meta}\n banner={getBanner({ oas, output, config: pluginManager.config })}\n footer={getFooter({ oas, output })}\n >\n <File.Import name={['faker']} path=\"@faker-js/faker\" />\n {regexGenerator === 'randexp' && <File.Import name={'RandExp'} path={'randexp'} />}\n {dateParser !== 'faker' && <File.Import path={dateParser} name={dateParser} />}\n <File.Import isTypeOnly root={faker.file.path} path={type.file.path} name={[type.name]} />\n {imports.map((imp, index) => (\n <File.Import key={index} root={faker.file.path} path={imp.path} name={imp.name} />\n ))}\n\n <Faker\n name={faker.name}\n typeName={type.name}\n description={schema.value.description}\n tree={schema.tree}\n regexGenerator={regexGenerator}\n dateParser={dateParser}\n mapper={mapper}\n seed={seed}\n canOverride={canOverride}\n />\n </File>\n )\n },\n})\n"]}
@@ -37,22 +37,22 @@ var fakerKeywordMapper = {
37
37
  null: () => "null",
38
38
  array: (items = [], min, max) => {
39
39
  if (items.length > 1) {
40
- return `faker.helpers.arrayElements([${items.join(", ")}]) as any`;
40
+ return `faker.helpers.arrayElements([${items.join(", ")}])`;
41
41
  }
42
42
  const item = items.at(0);
43
43
  if (min !== void 0 && max !== void 0) {
44
- return `faker.helpers.multiple(() => (${item}), { count: { min: ${min}, max: ${max} }}) as any`;
44
+ return `faker.helpers.multiple(() => (${item}), { count: { min: ${min}, max: ${max} }})`;
45
45
  }
46
46
  if (min !== void 0) {
47
- return `faker.helpers.multiple(() => (${item}), { count: ${min} }) as any`;
47
+ return `faker.helpers.multiple(() => (${item}), { count: ${min} })`;
48
48
  }
49
49
  if (max !== void 0) {
50
- return `faker.helpers.multiple(() => (${item}), { count: { min: 0, max: ${max} }}) as any`;
50
+ return `faker.helpers.multiple(() => (${item}), { count: { min: 0, max: ${max} }})`;
51
51
  }
52
- return `faker.helpers.multiple(() => (${item})) as any`;
52
+ return `faker.helpers.multiple(() => (${item}))`;
53
53
  },
54
- tuple: (items = []) => `faker.helpers.arrayElements([${items.join(", ")}]) as any`,
55
- enum: (items = []) => `faker.helpers.arrayElement<any>([${items.join(", ")}])`,
54
+ tuple: (items = []) => `[${items.join(", ")}]`,
55
+ enum: (items = [], type = "any") => `faker.helpers.arrayElement<${type}>([${items.join(", ")}])`,
56
56
  union: (items = []) => `faker.helpers.arrayElement<any>([${items.join(", ")}])`,
57
57
  /**
58
58
  * ISO 8601
@@ -119,12 +119,12 @@ var fakerKeywordMapper = {
119
119
  optional: void 0,
120
120
  readOnly: void 0,
121
121
  writeOnly: void 0,
122
- strict: void 0,
123
122
  deprecated: void 0,
124
123
  example: void 0,
125
124
  schema: void 0,
126
125
  catchall: void 0,
127
- name: void 0
126
+ name: void 0,
127
+ interface: void 0
128
128
  };
129
129
  function schemaKeywordSorter(_a, b) {
130
130
  if (b.keyword === "null") {
@@ -142,36 +142,49 @@ function joinItems(items) {
142
142
  return fakerKeywordMapper.union(items);
143
143
  }
144
144
  }
145
- function parse({ current, siblings }, options) {
145
+ function parse({ current, parent, name, siblings }, options) {
146
146
  const value = fakerKeywordMapper[current.keyword];
147
147
  if (!value) {
148
148
  return void 0;
149
149
  }
150
150
  if (isKeyword(current, schemaKeywords.union)) {
151
151
  return fakerKeywordMapper.union(
152
- current.args.map((schema) => parse({ current: schema, siblings }, { ...options, canOverride: false })).filter(Boolean)
152
+ current.args.map((schema) => parse({ parent: current, current: schema, siblings }, { ...options, canOverride: false })).filter(Boolean)
153
153
  );
154
154
  }
155
155
  if (isKeyword(current, schemaKeywords.and)) {
156
156
  return fakerKeywordMapper.and(
157
- current.args.map((schema) => parse({ current: schema, siblings }, { ...options, canOverride: false })).filter(Boolean)
157
+ current.args.map((schema) => parse({ parent: current, current: schema, siblings }, { ...options, canOverride: false })).filter(Boolean)
158
158
  );
159
159
  }
160
160
  if (isKeyword(current, schemaKeywords.array)) {
161
161
  return fakerKeywordMapper.array(
162
- current.args.items.map((schema) => parse({ current: schema, siblings }, { ...options, canOverride: false })).filter(Boolean),
162
+ current.args.items.map((schema) => parse({ parent: current, current: schema, siblings }, { ...options, canOverride: false })).filter(Boolean),
163
163
  current.args.min,
164
164
  current.args.max
165
165
  );
166
166
  }
167
167
  if (isKeyword(current, schemaKeywords.enum)) {
168
+ const isParentTuple = parent ? isKeyword(parent, schemaKeywords.tuple) : false;
169
+ if (isParentTuple) {
170
+ return fakerKeywordMapper.enum(
171
+ current.args.items.map((schema) => {
172
+ if (schema.format === "number") {
173
+ return schema.value;
174
+ }
175
+ return transformers.stringify(schema.value);
176
+ })
177
+ // key ? `NonNullable<${options.typeName}>${key.map((item) => `[${item}]`).join('')}` : undefined,
178
+ );
179
+ }
168
180
  return fakerKeywordMapper.enum(
169
181
  current.args.items.map((schema) => {
170
182
  if (schema.format === "number") {
171
- return schema.name;
183
+ return schema.value;
172
184
  }
173
- return transformers.stringify(schema.name);
174
- })
185
+ return transformers.stringify(schema.value);
186
+ }),
187
+ name ? `NonNullable<${options.typeName}>['${name}']` : void 0
175
188
  );
176
189
  }
177
190
  if (isKeyword(current, schemaKeywords.ref)) {
@@ -187,14 +200,14 @@ function parse({ current, siblings }, options) {
187
200
  const argsObject = Object.entries(current.args?.properties || {}).filter((item) => {
188
201
  const schema = item[1];
189
202
  return schema && typeof schema.map === "function";
190
- }).map(([name, schemas]) => {
203
+ }).map(([name2, schemas]) => {
191
204
  const nameSchema = schemas.find((schema) => schema.keyword === schemaKeywords.name);
192
- const mappedName = nameSchema?.args || name;
205
+ const mappedName = nameSchema?.args || name2;
193
206
  if (options.mapper?.[mappedName]) {
194
- return `"${name}": ${options.mapper?.[mappedName]}`;
207
+ return `"${name2}": ${options.mapper?.[mappedName]}`;
195
208
  }
196
- return `"${name}": ${joinItems(
197
- schemas.sort(schemaKeywordSorter).map((schema) => parse({ current: schema, siblings: schemas }, { ...options, canOverride: false })).filter(Boolean)
209
+ return `"${name2}": ${joinItems(
210
+ schemas.sort(schemaKeywordSorter).map((schema) => parse({ name: name2, parent: current, current: schema, siblings: schemas }, { ...options, canOverride: false })).filter(Boolean)
198
211
  )}`;
199
212
  }).join(",");
200
213
  return `{${argsObject}}`;
@@ -202,10 +215,10 @@ function parse({ current, siblings }, options) {
202
215
  if (isKeyword(current, schemaKeywords.tuple)) {
203
216
  if (Array.isArray(current.args.items)) {
204
217
  return fakerKeywordMapper.tuple(
205
- current.args.items.map((schema) => parse({ current: schema, siblings }, { ...options, canOverride: false })).filter(Boolean)
218
+ current.args.items.map((schema) => parse({ parent: current, current: schema, siblings }, { ...options, canOverride: false })).filter(Boolean)
206
219
  );
207
220
  }
208
- return parse({ current: current.args.items, siblings }, { ...options, canOverride: false });
221
+ return parse({ parent: current, current: current.args.items, siblings }, { ...options, canOverride: false });
209
222
  }
210
223
  if (isKeyword(current, schemaKeywords.const)) {
211
224
  if (current.args.format === "number" && current.args.name !== void 0) {
@@ -266,7 +279,7 @@ function Faker({ tree, description, name, typeName, seed, regexGenerator, canOve
266
279
  const fakerText = joinItems(
267
280
  tree.map(
268
281
  (schema, _index, siblings) => parse(
269
- { current: schema, siblings },
282
+ { parent: void 0, current: schema, siblings },
270
283
  {
271
284
  name,
272
285
  typeName,
@@ -279,17 +292,20 @@ function Faker({ tree, description, name, typeName, seed, regexGenerator, canOve
279
292
  )
280
293
  ).filter(Boolean)
281
294
  );
295
+ const isArray = fakerText.startsWith("faker.helpers.arrayElements") || fakerText.startsWith("faker.helpers.multiple");
296
+ const isObject = fakerText.startsWith("{");
297
+ const isTuple = fakerText.startsWith("faker.helpers.arrayElement");
282
298
  let fakerTextWithOverride = fakerText;
283
- if (canOverride && fakerText.startsWith("{")) {
299
+ if (canOverride && isObject) {
284
300
  fakerTextWithOverride = `{
285
301
  ...${fakerText},
286
302
  ...data || {}
287
303
  }`;
288
304
  }
289
- if (canOverride && fakerText.startsWith("faker.helpers.arrayElement")) {
305
+ if (canOverride && isTuple) {
290
306
  fakerTextWithOverride = `data || ${fakerText}`;
291
307
  }
292
- if (canOverride && fakerText.startsWith("faker.helpers.arrayElements") || fakerText.startsWith("faker.helpers.multiple")) {
308
+ if (canOverride && isArray) {
293
309
  fakerTextWithOverride = `[
294
310
  ...${fakerText},
295
311
  ...data || []
@@ -297,7 +313,8 @@ function Faker({ tree, description, name, typeName, seed, regexGenerator, canOve
297
313
  }
298
314
  const params = FunctionParams.factory({
299
315
  data: {
300
- type: `Partial<${typeName}>`,
316
+ // making a partial out of an array does not make sense
317
+ type: isArray ? typeName : `Partial<${typeName}>`,
301
318
  optional: true
302
319
  }
303
320
  });
@@ -319,5 +336,5 @@ function Faker({ tree, description, name, typeName, seed, regexGenerator, canOve
319
336
  }
320
337
 
321
338
  export { Faker };
322
- //# sourceMappingURL=chunk-ZP266LGS.js.map
323
- //# sourceMappingURL=chunk-ZP266LGS.js.map
339
+ //# sourceMappingURL=chunk-T5ZWCHWB.js.map
340
+ //# sourceMappingURL=chunk-T5ZWCHWB.js.map