@kubb/plugin-faker 4.21.2 → 4.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{components-CDKWc3Yj.js → components-CiUIlcV3.js} +4 -3
- package/dist/components-CiUIlcV3.js.map +1 -0
- package/dist/{components-CQqf9rBj.cjs → components-D44-YPpj.cjs} +4 -3
- package/dist/components-D44-YPpj.cjs.map +1 -0
- package/dist/components.cjs +1 -1
- package/dist/components.d.cts +2 -1
- package/dist/components.d.ts +2 -1
- package/dist/components.js +1 -1
- package/dist/{fakerGenerator-VqIrrE7d.js → fakerGenerator-BWH5M054.js} +4 -4
- package/dist/fakerGenerator-BWH5M054.js.map +1 -0
- package/dist/{fakerGenerator-BC_ilj8m.cjs → fakerGenerator-DipEvGPU.cjs} +4 -4
- package/dist/fakerGenerator-DipEvGPU.cjs.map +1 -0
- package/dist/generators.cjs +1 -1
- package/dist/generators.d.cts +457 -1
- package/dist/generators.d.ts +457 -1
- package/dist/generators.js +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/types-DPGJaaLM.d.cts +124 -0
- package/dist/types-wnjXCmBP.d.ts +123 -0
- package/package.json +5 -5
- package/src/generators/__snapshots__/createPet.ts +2 -2
- package/src/generators/__snapshots__/createPetSeed.ts +2 -2
- package/src/generators/__snapshots__/createPetUnknownTypeAny.ts +2 -2
- package/src/generators/__snapshots__/getPets.ts +2 -2
- package/src/generators/__snapshots__/showPetById.ts +4 -4
- package/src/generators/__snapshots__/updatePet.ts +34 -0
- package/src/generators/fakerGenerator.tsx +3 -1
- package/src/parser.ts +6 -2
- package/dist/components-CDKWc3Yj.js.map +0 -1
- package/dist/components-CQqf9rBj.cjs.map +0 -1
- package/dist/fakerGenerator-BC_ilj8m.cjs.map +0 -1
- package/dist/fakerGenerator-VqIrrE7d.js.map +0 -1
- package/dist/types-CB26F0zP.d.cts +0 -664
- package/dist/types-D8QPkAha.d.ts +0 -663
|
@@ -166,10 +166,11 @@ const parse = createParser({
|
|
|
166
166
|
}), name ? options.typeName : void 0);
|
|
167
167
|
},
|
|
168
168
|
ref(tree, options) {
|
|
169
|
-
const { current } = tree;
|
|
169
|
+
const { current, parent } = tree;
|
|
170
170
|
if (!current.args?.name) throw new Error(`Name not defined for keyword ${current.keyword}`);
|
|
171
171
|
if (options.rootTypeName && current.args.name === options.rootTypeName) return "undefined as any";
|
|
172
|
-
|
|
172
|
+
const isNestedInObjectOrAnd = parent && (isKeyword(parent, schemaKeywords.object) || isKeyword(parent, schemaKeywords.and));
|
|
173
|
+
if (options.canOverride && !isNestedInObjectOrAnd) return `${current.args.name}(data)`;
|
|
173
174
|
return `${current.args.name}()`;
|
|
174
175
|
},
|
|
175
176
|
object(tree, options) {
|
|
@@ -340,4 +341,4 @@ function Faker({ tree, description, name, typeName, seed, regexGenerator, canOve
|
|
|
340
341
|
|
|
341
342
|
//#endregion
|
|
342
343
|
export { Faker as t };
|
|
343
|
-
//# sourceMappingURL=components-
|
|
344
|
+
//# sourceMappingURL=components-CiUIlcV3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components-CiUIlcV3.js","names":["schema","parserFaker.joinItems","parserFaker.parse"],"sources":["../src/parser.ts","../src/components/Faker.tsx"],"sourcesContent":["import transformers from '@kubb/core/transformers'\nimport type { Schema, SchemaKeywordMapper, SchemaMapper } from '@kubb/plugin-oas'\nimport { createParser, findSchemaKeyword, isKeyword, schemaKeywords } from '@kubb/plugin-oas'\nimport type { Options } from './types.ts'\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 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 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[] = []) => {\n // Handle empty array case\n if (items.length === 0) {\n return '{}'\n }\n\n // If only one item, return it as-is (no need to spread)\n // This fixes the issue with single refs to primitives like enums\n if (items.length === 1) {\n return items[0] ?? '{}'\n }\n\n // If multiple items, spread them together\n // This handles both object literals and multiple refs to objects\n return `{...${items.join(', ...')}}`\n },\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(\"${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 exclusiveMaximum: undefined,\n exclusiveMinimum: 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 typeName?: string\n rootTypeName?: string\n regexGenerator?: 'faker' | 'randexp'\n canOverride?: boolean\n dateParser?: Options['dateParser']\n mapper?: Record<string, string>\n}\n\nexport const parse = createParser<string, ParserOptions>({\n mapper: fakerKeywordMapper,\n handlers: {\n union(tree, options) {\n const { current, schema, name, siblings } = tree\n\n if (Array.isArray(current.args) && !current.args.length) {\n return ''\n }\n\n return fakerKeywordMapper.union(\n current.args.map((it) => this.parse({ schema, parent: current, name, current: it, siblings }, { ...options, canOverride: false })).filter(Boolean),\n )\n },\n and(tree, options) {\n const { current, schema, siblings } = tree\n\n return fakerKeywordMapper.and(\n current.args.map((it) => this.parse({ schema, parent: current, current: it, siblings }, { ...options, canOverride: false })).filter(Boolean),\n )\n },\n array(tree, options) {\n const { current, schema } = tree\n\n return fakerKeywordMapper.array(\n current.args.items\n .map((it) =>\n this.parse(\n {\n schema,\n parent: current,\n current: it,\n siblings: current.args.items,\n },\n {\n ...options,\n typeName: `NonNullable<${options.typeName}>[number]`,\n canOverride: false,\n },\n ),\n )\n .filter(Boolean),\n current.args.min,\n current.args.max,\n )\n },\n enum(tree, options) {\n const { current, parent, name } = tree\n\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\n if (schema.format === 'boolean') {\n return schema.value\n }\n return transformers.stringify(schema.value)\n }),\n )\n }\n\n return fakerKeywordMapper.enum(\n current.args.items.map((schema) => {\n if (schema.format === 'number') {\n return schema.value\n }\n if (schema.format === 'boolean') {\n return schema.value\n }\n return transformers.stringify(schema.value)\n }),\n // TODO replace this with getEnumNameFromSchema\n name ? options.typeName : undefined,\n )\n },\n ref(tree, options) {\n const { current, parent } = tree\n\n if (!current.args?.name) {\n throw new Error(`Name not defined for keyword ${current.keyword}`)\n }\n\n // Check if this is a self-referencing type (prevents infinite recursion)\n // The rootTypeName is the function name being generated (e.g., \"createNode\")\n // The current.args.name is the ref function name (e.g., \"createNode\")\n const isSelfReferencing = options.rootTypeName && current.args.name === options.rootTypeName\n\n if (isSelfReferencing) {\n // For self-referencing types, return undefined to prevent infinite recursion\n // This will result in empty arrays/objects by default\n return 'undefined as any'\n }\n\n // Check if the parent is an object or and keyword - in these cases, we don't want to pass data\n // because it would incorrectly forward the parent's data to a nested ref\n const isNestedInObjectOrAnd = parent && (isKeyword(parent, schemaKeywords.object) || isKeyword(parent, schemaKeywords.and))\n\n if (options.canOverride && !isNestedInObjectOrAnd) {\n return `${current.args.name}(data)`\n }\n\n return `${current.args.name}()`\n },\n object(tree, options) {\n const { current, schema } = tree\n\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 // Use Object.hasOwn to avoid matching inherited properties like 'toString', 'valueOf', etc.\n if (options.mapper && Object.hasOwn(options.mapper, mappedName)) {\n return `\"${name}\": ${options.mapper?.[mappedName]}`\n }\n\n return `\"${name}\": ${joinItems(\n schemas\n .sort(schemaKeywordSorter)\n .map((it) =>\n this.parse(\n {\n schema,\n name,\n parent: current,\n current: it,\n siblings: schemas,\n },\n {\n ...options,\n typeName: `NonNullable<${options.typeName}>[${JSON.stringify(name)}]`,\n canOverride: false,\n },\n ),\n )\n .filter(Boolean),\n )}`\n })\n .join(',')\n\n return `{${argsObject}}`\n },\n tuple(tree, options) {\n const { current, schema, siblings } = tree\n\n if (Array.isArray(current.args.items)) {\n return fakerKeywordMapper.tuple(\n current.args.items.map((it) => this.parse({ schema, parent: current, current: it, siblings }, { ...options, canOverride: false })).filter(Boolean),\n )\n }\n\n return this.parse({ schema, parent: current, current: current.args.items, siblings }, { ...options, canOverride: false })\n },\n const(tree, _options) {\n const { current } = tree\n\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 matches(tree, options) {\n const { current } = tree\n\n if (current.args) {\n return fakerKeywordMapper.matches(current.args, options.regexGenerator)\n }\n return undefined\n },\n null() {\n return fakerKeywordMapper.null()\n },\n undefined() {\n return fakerKeywordMapper.undefined()\n },\n any() {\n return fakerKeywordMapper.any()\n },\n string(tree, _options) {\n const { siblings } = tree\n\n if (siblings) {\n const minSchema = findSchemaKeyword(siblings, 'min')\n const maxSchema = findSchemaKeyword(siblings, 'max')\n\n return fakerKeywordMapper.string(minSchema?.args, maxSchema?.args)\n }\n\n return fakerKeywordMapper.string()\n },\n number(tree, _options) {\n const { siblings } = tree\n\n if (siblings) {\n const minSchema = findSchemaKeyword(siblings, 'min')\n const maxSchema = findSchemaKeyword(siblings, 'max')\n\n return fakerKeywordMapper.number(minSchema?.args, maxSchema?.args)\n }\n\n return fakerKeywordMapper.number()\n },\n integer(tree, _options) {\n const { siblings } = tree\n\n if (siblings) {\n const minSchema = findSchemaKeyword(siblings, 'min')\n const maxSchema = findSchemaKeyword(siblings, 'max')\n\n return fakerKeywordMapper.integer(minSchema?.args, maxSchema?.args)\n }\n\n return fakerKeywordMapper.integer()\n },\n datetime() {\n return fakerKeywordMapper.datetime()\n },\n date(tree, options) {\n const { current } = tree\n\n return fakerKeywordMapper.date(current.args.type, options.dateParser)\n },\n time(tree, options) {\n const { current } = tree\n\n return fakerKeywordMapper.time(current.args.type, options.dateParser)\n },\n },\n})\n","import transformers from '@kubb/core/transformers'\nimport type { Schema } from '@kubb/plugin-oas'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\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): FabricReactNode {\n const fakerText = parserFaker.joinItems(\n tree\n .map((schema, _index, siblings) =>\n parserFaker.parse(\n { name, schema, parent: undefined, current: schema, siblings },\n {\n typeName,\n rootTypeName: name,\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 const isSimpleString = name === 'string'\n const isSimpleInt = name === 'integer'\n const isSimpleFloat = name === 'float'\n\n let fakerTextWithOverride = fakerText\n\n if (canOverride && isObject) {\n fakerTextWithOverride = `{\n ...${fakerText},\n ...data || {}\n}`\n }\n\n if (canOverride && isTuple) fakerTextWithOverride = `data || ${fakerText}`\n\n if (canOverride && isArray) {\n fakerTextWithOverride = `[\n ...${fakerText},\n ...data || []\n ]`\n }\n\n if (canOverride && isSimpleString) fakerTextWithOverride = 'data ?? faker.string.alpha()'\n\n if (canOverride && isSimpleInt) fakerTextWithOverride = 'data ?? faker.number.int()'\n\n if (canOverride && isSimpleFloat) fakerTextWithOverride = 'data ?? faker.number.float()'\n\n let type = `Partial<${typeName}>`\n\n if (isArray) type = typeName\n if (isSimpleString) type = name\n if (isSimpleInt || isSimpleFloat) type = 'number'\n\n const params = FunctionParams.factory({\n data: {\n // making a partial out of an array does not make sense\n type,\n optional: true,\n },\n })\n\n let returnType = canOverride ? typeName : undefined\n\n if (isSimpleString || isSimpleInt || isSimpleFloat) returnType = type\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={returnType}\n >\n {seed ? `faker.seed(${JSON.stringify(seed)})` : undefined}\n <br />\n {`return ${fakerTextWithOverride}`}\n </Function>\n </File.Source>\n )\n}\n"],"mappings":"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"}
|
|
@@ -197,10 +197,11 @@ const parse = (0, _kubb_plugin_oas.createParser)({
|
|
|
197
197
|
}), name ? options.typeName : void 0);
|
|
198
198
|
},
|
|
199
199
|
ref(tree, options) {
|
|
200
|
-
const { current } = tree;
|
|
200
|
+
const { current, parent } = tree;
|
|
201
201
|
if (!current.args?.name) throw new Error(`Name not defined for keyword ${current.keyword}`);
|
|
202
202
|
if (options.rootTypeName && current.args.name === options.rootTypeName) return "undefined as any";
|
|
203
|
-
|
|
203
|
+
const isNestedInObjectOrAnd = parent && ((0, _kubb_plugin_oas.isKeyword)(parent, _kubb_plugin_oas.schemaKeywords.object) || (0, _kubb_plugin_oas.isKeyword)(parent, _kubb_plugin_oas.schemaKeywords.and));
|
|
204
|
+
if (options.canOverride && !isNestedInObjectOrAnd) return `${current.args.name}(data)`;
|
|
204
205
|
return `${current.args.name}()`;
|
|
205
206
|
},
|
|
206
207
|
object(tree, options) {
|
|
@@ -388,4 +389,4 @@ Object.defineProperty(exports, '__toESM', {
|
|
|
388
389
|
return __toESM;
|
|
389
390
|
}
|
|
390
391
|
});
|
|
391
|
-
//# sourceMappingURL=components-
|
|
392
|
+
//# sourceMappingURL=components-D44-YPpj.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components-D44-YPpj.cjs","names":["transformers","schemaKeywords","schema","parserFaker.joinItems","parserFaker.parse","FunctionParams","File","Function","transformers"],"sources":["../src/parser.ts","../src/components/Faker.tsx"],"sourcesContent":["import transformers from '@kubb/core/transformers'\nimport type { Schema, SchemaKeywordMapper, SchemaMapper } from '@kubb/plugin-oas'\nimport { createParser, findSchemaKeyword, isKeyword, schemaKeywords } from '@kubb/plugin-oas'\nimport type { Options } from './types.ts'\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 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 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[] = []) => {\n // Handle empty array case\n if (items.length === 0) {\n return '{}'\n }\n\n // If only one item, return it as-is (no need to spread)\n // This fixes the issue with single refs to primitives like enums\n if (items.length === 1) {\n return items[0] ?? '{}'\n }\n\n // If multiple items, spread them together\n // This handles both object literals and multiple refs to objects\n return `{...${items.join(', ...')}}`\n },\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(\"${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 exclusiveMaximum: undefined,\n exclusiveMinimum: 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 typeName?: string\n rootTypeName?: string\n regexGenerator?: 'faker' | 'randexp'\n canOverride?: boolean\n dateParser?: Options['dateParser']\n mapper?: Record<string, string>\n}\n\nexport const parse = createParser<string, ParserOptions>({\n mapper: fakerKeywordMapper,\n handlers: {\n union(tree, options) {\n const { current, schema, name, siblings } = tree\n\n if (Array.isArray(current.args) && !current.args.length) {\n return ''\n }\n\n return fakerKeywordMapper.union(\n current.args.map((it) => this.parse({ schema, parent: current, name, current: it, siblings }, { ...options, canOverride: false })).filter(Boolean),\n )\n },\n and(tree, options) {\n const { current, schema, siblings } = tree\n\n return fakerKeywordMapper.and(\n current.args.map((it) => this.parse({ schema, parent: current, current: it, siblings }, { ...options, canOverride: false })).filter(Boolean),\n )\n },\n array(tree, options) {\n const { current, schema } = tree\n\n return fakerKeywordMapper.array(\n current.args.items\n .map((it) =>\n this.parse(\n {\n schema,\n parent: current,\n current: it,\n siblings: current.args.items,\n },\n {\n ...options,\n typeName: `NonNullable<${options.typeName}>[number]`,\n canOverride: false,\n },\n ),\n )\n .filter(Boolean),\n current.args.min,\n current.args.max,\n )\n },\n enum(tree, options) {\n const { current, parent, name } = tree\n\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\n if (schema.format === 'boolean') {\n return schema.value\n }\n return transformers.stringify(schema.value)\n }),\n )\n }\n\n return fakerKeywordMapper.enum(\n current.args.items.map((schema) => {\n if (schema.format === 'number') {\n return schema.value\n }\n if (schema.format === 'boolean') {\n return schema.value\n }\n return transformers.stringify(schema.value)\n }),\n // TODO replace this with getEnumNameFromSchema\n name ? options.typeName : undefined,\n )\n },\n ref(tree, options) {\n const { current, parent } = tree\n\n if (!current.args?.name) {\n throw new Error(`Name not defined for keyword ${current.keyword}`)\n }\n\n // Check if this is a self-referencing type (prevents infinite recursion)\n // The rootTypeName is the function name being generated (e.g., \"createNode\")\n // The current.args.name is the ref function name (e.g., \"createNode\")\n const isSelfReferencing = options.rootTypeName && current.args.name === options.rootTypeName\n\n if (isSelfReferencing) {\n // For self-referencing types, return undefined to prevent infinite recursion\n // This will result in empty arrays/objects by default\n return 'undefined as any'\n }\n\n // Check if the parent is an object or and keyword - in these cases, we don't want to pass data\n // because it would incorrectly forward the parent's data to a nested ref\n const isNestedInObjectOrAnd = parent && (isKeyword(parent, schemaKeywords.object) || isKeyword(parent, schemaKeywords.and))\n\n if (options.canOverride && !isNestedInObjectOrAnd) {\n return `${current.args.name}(data)`\n }\n\n return `${current.args.name}()`\n },\n object(tree, options) {\n const { current, schema } = tree\n\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 // Use Object.hasOwn to avoid matching inherited properties like 'toString', 'valueOf', etc.\n if (options.mapper && Object.hasOwn(options.mapper, mappedName)) {\n return `\"${name}\": ${options.mapper?.[mappedName]}`\n }\n\n return `\"${name}\": ${joinItems(\n schemas\n .sort(schemaKeywordSorter)\n .map((it) =>\n this.parse(\n {\n schema,\n name,\n parent: current,\n current: it,\n siblings: schemas,\n },\n {\n ...options,\n typeName: `NonNullable<${options.typeName}>[${JSON.stringify(name)}]`,\n canOverride: false,\n },\n ),\n )\n .filter(Boolean),\n )}`\n })\n .join(',')\n\n return `{${argsObject}}`\n },\n tuple(tree, options) {\n const { current, schema, siblings } = tree\n\n if (Array.isArray(current.args.items)) {\n return fakerKeywordMapper.tuple(\n current.args.items.map((it) => this.parse({ schema, parent: current, current: it, siblings }, { ...options, canOverride: false })).filter(Boolean),\n )\n }\n\n return this.parse({ schema, parent: current, current: current.args.items, siblings }, { ...options, canOverride: false })\n },\n const(tree, _options) {\n const { current } = tree\n\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 matches(tree, options) {\n const { current } = tree\n\n if (current.args) {\n return fakerKeywordMapper.matches(current.args, options.regexGenerator)\n }\n return undefined\n },\n null() {\n return fakerKeywordMapper.null()\n },\n undefined() {\n return fakerKeywordMapper.undefined()\n },\n any() {\n return fakerKeywordMapper.any()\n },\n string(tree, _options) {\n const { siblings } = tree\n\n if (siblings) {\n const minSchema = findSchemaKeyword(siblings, 'min')\n const maxSchema = findSchemaKeyword(siblings, 'max')\n\n return fakerKeywordMapper.string(minSchema?.args, maxSchema?.args)\n }\n\n return fakerKeywordMapper.string()\n },\n number(tree, _options) {\n const { siblings } = tree\n\n if (siblings) {\n const minSchema = findSchemaKeyword(siblings, 'min')\n const maxSchema = findSchemaKeyword(siblings, 'max')\n\n return fakerKeywordMapper.number(minSchema?.args, maxSchema?.args)\n }\n\n return fakerKeywordMapper.number()\n },\n integer(tree, _options) {\n const { siblings } = tree\n\n if (siblings) {\n const minSchema = findSchemaKeyword(siblings, 'min')\n const maxSchema = findSchemaKeyword(siblings, 'max')\n\n return fakerKeywordMapper.integer(minSchema?.args, maxSchema?.args)\n }\n\n return fakerKeywordMapper.integer()\n },\n datetime() {\n return fakerKeywordMapper.datetime()\n },\n date(tree, options) {\n const { current } = tree\n\n return fakerKeywordMapper.date(current.args.type, options.dateParser)\n },\n time(tree, options) {\n const { current } = tree\n\n return fakerKeywordMapper.time(current.args.type, options.dateParser)\n },\n },\n})\n","import transformers from '@kubb/core/transformers'\nimport type { Schema } from '@kubb/plugin-oas'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\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): FabricReactNode {\n const fakerText = parserFaker.joinItems(\n tree\n .map((schema, _index, siblings) =>\n parserFaker.parse(\n { name, schema, parent: undefined, current: schema, siblings },\n {\n typeName,\n rootTypeName: name,\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 const isSimpleString = name === 'string'\n const isSimpleInt = name === 'integer'\n const isSimpleFloat = name === 'float'\n\n let fakerTextWithOverride = fakerText\n\n if (canOverride && isObject) {\n fakerTextWithOverride = `{\n ...${fakerText},\n ...data || {}\n}`\n }\n\n if (canOverride && isTuple) fakerTextWithOverride = `data || ${fakerText}`\n\n if (canOverride && isArray) {\n fakerTextWithOverride = `[\n ...${fakerText},\n ...data || []\n ]`\n }\n\n if (canOverride && isSimpleString) fakerTextWithOverride = 'data ?? faker.string.alpha()'\n\n if (canOverride && isSimpleInt) fakerTextWithOverride = 'data ?? faker.number.int()'\n\n if (canOverride && isSimpleFloat) fakerTextWithOverride = 'data ?? faker.number.float()'\n\n let type = `Partial<${typeName}>`\n\n if (isArray) type = typeName\n if (isSimpleString) type = name\n if (isSimpleInt || isSimpleFloat) type = 'number'\n\n const params = FunctionParams.factory({\n data: {\n // making a partial out of an array does not make sense\n type,\n optional: true,\n },\n })\n\n let returnType = canOverride ? typeName : undefined\n\n if (isSimpleString || isSimpleInt || isSimpleFloat) returnType = type\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={returnType}\n >\n {seed ? `faker.seed(${JSON.stringify(seed)})` : undefined}\n <br />\n {`return ${fakerTextWithOverride}`}\n </Function>\n </File.Source>\n )\n}\n"],"mappings":"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"}
|
package/dist/components.cjs
CHANGED
package/dist/components.d.cts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { n as PluginFaker, r as __name } from "./types-DPGJaaLM.cjs";
|
|
2
|
+
import { Schema } from "@kubb/plugin-oas";
|
|
2
3
|
import { FabricReactNode } from "@kubb/react-fabric/types";
|
|
3
4
|
|
|
4
5
|
//#region src/components/Faker.d.ts
|
package/dist/components.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { t as __name } from "./chunk-eQyhnF5A.js";
|
|
2
|
-
import {
|
|
2
|
+
import { n as PluginFaker } from "./types-wnjXCmBP.js";
|
|
3
|
+
import { Schema } from "@kubb/plugin-oas";
|
|
3
4
|
import { FabricReactNode } from "@kubb/react-fabric/types";
|
|
4
5
|
|
|
5
6
|
//#region src/components/Faker.d.ts
|
package/dist/components.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __name } from "./chunk-eQyhnF5A.js";
|
|
2
|
-
import { t as Faker } from "./components-
|
|
2
|
+
import { t as Faker } from "./components-CiUIlcV3.js";
|
|
3
3
|
import { SchemaGenerator, schemaKeywords } from "@kubb/plugin-oas";
|
|
4
4
|
import { pluginTsName } from "@kubb/plugin-ts";
|
|
5
5
|
import { useMode, usePluginManager } from "@kubb/core/hooks";
|
|
@@ -61,7 +61,7 @@ const fakerGenerator = createReactGenerator({
|
|
|
61
61
|
group
|
|
62
62
|
})
|
|
63
63
|
};
|
|
64
|
-
const canOverride = tree.some(({ keyword }) => keyword === schemaKeywords.array || keyword === schemaKeywords.and || keyword === schemaKeywords.object || keyword === schemaKeywords.union || keyword === schemaKeywords.tuple);
|
|
64
|
+
const canOverride = tree.some(({ keyword }) => keyword === schemaKeywords.array || keyword === schemaKeywords.and || keyword === schemaKeywords.object || keyword === schemaKeywords.union || keyword === schemaKeywords.tuple || keyword === schemaKeywords.ref);
|
|
65
65
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
66
66
|
canOverride && /* @__PURE__ */ jsx(File.Import, {
|
|
67
67
|
isTypeOnly: true,
|
|
@@ -138,7 +138,7 @@ const fakerGenerator = createReactGenerator({
|
|
|
138
138
|
}),
|
|
139
139
|
file: getFile(schema.name, { pluginKey: [pluginTsName] })
|
|
140
140
|
};
|
|
141
|
-
const canOverride = schema.tree.some(({ keyword }) => keyword === schemaKeywords.array || keyword === schemaKeywords.and || keyword === schemaKeywords.object || keyword === schemaKeywords.union || keyword === schemaKeywords.tuple || keyword === schemaKeywords.string || keyword === schemaKeywords.integer || keyword === schemaKeywords.number);
|
|
141
|
+
const canOverride = schema.tree.some(({ keyword }) => keyword === schemaKeywords.array || keyword === schemaKeywords.and || keyword === schemaKeywords.object || keyword === schemaKeywords.union || keyword === schemaKeywords.tuple || keyword === schemaKeywords.ref || keyword === schemaKeywords.string || keyword === schemaKeywords.integer || keyword === schemaKeywords.number);
|
|
142
142
|
return /* @__PURE__ */ jsxs(File, {
|
|
143
143
|
baseName: faker.file.baseName,
|
|
144
144
|
path: faker.file.path,
|
|
@@ -198,4 +198,4 @@ const fakerGenerator = createReactGenerator({
|
|
|
198
198
|
|
|
199
199
|
//#endregion
|
|
200
200
|
export { fakerGenerator as t };
|
|
201
|
-
//# sourceMappingURL=fakerGenerator-
|
|
201
|
+
//# sourceMappingURL=fakerGenerator-BWH5M054.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fakerGenerator-BWH5M054.js","names":["options"],"sources":["../src/generators/fakerGenerator.tsx"],"sourcesContent":["import { useMode, usePluginManager } from '@kubb/core/hooks'\nimport { type OperationSchema as OperationSchemaType, SchemaGenerator, schemaKeywords } from '@kubb/plugin-oas'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas, useOperationManager, useSchemaManager } from '@kubb/plugin-oas/hooks'\nimport { applyParamsCasing, getBanner, getFooter, getImports, isParameterSchema } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { File } from '@kubb/react-fabric'\nimport { Faker } from '../components'\nimport type { PluginFaker } from '../types'\n\nexport const fakerGenerator = createReactGenerator<PluginFaker>({\n name: 'faker',\n Operation({ operation, generator, plugin }) {\n const {\n options,\n options: { dateParser, regexGenerator, seed, mapper },\n } = plugin\n const mode = useMode()\n const pluginManager = usePluginManager()\n\n const oas = useOas()\n const { getSchemas, getFile, getGroup } = useOperationManager(generator)\n const schemaManager = useSchemaManager()\n\n const file = getFile(operation)\n const schemas = getSchemas(operation)\n const schemaGenerator = new SchemaGenerator(options, {\n fabric: generator.context.fabric,\n oas,\n plugin,\n events: generator.context.events,\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) => {\n // Apply paramsCasing transformation if enabled and this is a parameter schema\n const shouldTransform = isParameterSchema(name) && plugin.options.paramsCasing\n const transformedSchema = shouldTransform ? applyParamsCasing(schema, plugin.options.paramsCasing) : schema\n\n const tree = schemaGenerator.parse({ schema: transformedSchema, name, parentName: null })\n const imports = 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 keyword === schemaKeywords.ref,\n )\n\n return (\n <>\n {canOverride && <File.Import isTypeOnly root={file.path} path={type.file.path} name={[type.name]} />}\n {imports.map((imp) => (\n <File.Import key={[imp.path, imp.name, imp.isTypeOnly].join('-')} 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 </>\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, plugin }) {\n const { getName, getFile } = useSchemaManager()\n const {\n options: { output, dateParser, regexGenerator, seed, mapper },\n } = plugin\n const pluginManager = usePluginManager()\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 keyword === schemaKeywords.ref ||\n keyword === schemaKeywords.string ||\n keyword === schemaKeywords.integer ||\n keyword === schemaKeywords.number,\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) => (\n <File.Import key={[imp.path, imp.name, imp.isTypeOnly].join('-')} 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"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_components = require('./components-
|
|
1
|
+
const require_components = require('./components-D44-YPpj.cjs');
|
|
2
2
|
let _kubb_plugin_oas = require("@kubb/plugin-oas");
|
|
3
3
|
let _kubb_plugin_ts = require("@kubb/plugin-ts");
|
|
4
4
|
let _kubb_core_hooks = require("@kubb/core/hooks");
|
|
@@ -60,7 +60,7 @@ const fakerGenerator = (0, _kubb_plugin_oas_generators.createReactGenerator)({
|
|
|
60
60
|
group
|
|
61
61
|
})
|
|
62
62
|
};
|
|
63
|
-
const canOverride = tree.some(({ keyword }) => keyword === _kubb_plugin_oas.schemaKeywords.array || keyword === _kubb_plugin_oas.schemaKeywords.and || keyword === _kubb_plugin_oas.schemaKeywords.object || keyword === _kubb_plugin_oas.schemaKeywords.union || keyword === _kubb_plugin_oas.schemaKeywords.tuple);
|
|
63
|
+
const canOverride = tree.some(({ keyword }) => keyword === _kubb_plugin_oas.schemaKeywords.array || keyword === _kubb_plugin_oas.schemaKeywords.and || keyword === _kubb_plugin_oas.schemaKeywords.object || keyword === _kubb_plugin_oas.schemaKeywords.union || keyword === _kubb_plugin_oas.schemaKeywords.tuple || keyword === _kubb_plugin_oas.schemaKeywords.ref);
|
|
64
64
|
return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric_jsx_runtime.Fragment, { children: [
|
|
65
65
|
canOverride && /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
|
|
66
66
|
isTypeOnly: true,
|
|
@@ -137,7 +137,7 @@ const fakerGenerator = (0, _kubb_plugin_oas_generators.createReactGenerator)({
|
|
|
137
137
|
}),
|
|
138
138
|
file: getFile(schema.name, { pluginKey: [_kubb_plugin_ts.pluginTsName] })
|
|
139
139
|
};
|
|
140
|
-
const canOverride = schema.tree.some(({ keyword }) => keyword === _kubb_plugin_oas.schemaKeywords.array || keyword === _kubb_plugin_oas.schemaKeywords.and || keyword === _kubb_plugin_oas.schemaKeywords.object || keyword === _kubb_plugin_oas.schemaKeywords.union || keyword === _kubb_plugin_oas.schemaKeywords.tuple || keyword === _kubb_plugin_oas.schemaKeywords.string || keyword === _kubb_plugin_oas.schemaKeywords.integer || keyword === _kubb_plugin_oas.schemaKeywords.number);
|
|
140
|
+
const canOverride = schema.tree.some(({ keyword }) => keyword === _kubb_plugin_oas.schemaKeywords.array || keyword === _kubb_plugin_oas.schemaKeywords.and || keyword === _kubb_plugin_oas.schemaKeywords.object || keyword === _kubb_plugin_oas.schemaKeywords.union || keyword === _kubb_plugin_oas.schemaKeywords.tuple || keyword === _kubb_plugin_oas.schemaKeywords.ref || keyword === _kubb_plugin_oas.schemaKeywords.string || keyword === _kubb_plugin_oas.schemaKeywords.integer || keyword === _kubb_plugin_oas.schemaKeywords.number);
|
|
141
141
|
return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric.File, {
|
|
142
142
|
baseName: faker.file.baseName,
|
|
143
143
|
path: faker.file.path,
|
|
@@ -202,4 +202,4 @@ Object.defineProperty(exports, 'fakerGenerator', {
|
|
|
202
202
|
return fakerGenerator;
|
|
203
203
|
}
|
|
204
204
|
});
|
|
205
|
-
//# sourceMappingURL=fakerGenerator-
|
|
205
|
+
//# sourceMappingURL=fakerGenerator-DipEvGPU.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fakerGenerator-DipEvGPU.cjs","names":["SchemaGenerator","options","pluginTsName","schemaKeywords","File","Faker"],"sources":["../src/generators/fakerGenerator.tsx"],"sourcesContent":["import { useMode, usePluginManager } from '@kubb/core/hooks'\nimport { type OperationSchema as OperationSchemaType, SchemaGenerator, schemaKeywords } from '@kubb/plugin-oas'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas, useOperationManager, useSchemaManager } from '@kubb/plugin-oas/hooks'\nimport { applyParamsCasing, getBanner, getFooter, getImports, isParameterSchema } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { File } from '@kubb/react-fabric'\nimport { Faker } from '../components'\nimport type { PluginFaker } from '../types'\n\nexport const fakerGenerator = createReactGenerator<PluginFaker>({\n name: 'faker',\n Operation({ operation, generator, plugin }) {\n const {\n options,\n options: { dateParser, regexGenerator, seed, mapper },\n } = plugin\n const mode = useMode()\n const pluginManager = usePluginManager()\n\n const oas = useOas()\n const { getSchemas, getFile, getGroup } = useOperationManager(generator)\n const schemaManager = useSchemaManager()\n\n const file = getFile(operation)\n const schemas = getSchemas(operation)\n const schemaGenerator = new SchemaGenerator(options, {\n fabric: generator.context.fabric,\n oas,\n plugin,\n events: generator.context.events,\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) => {\n // Apply paramsCasing transformation if enabled and this is a parameter schema\n const shouldTransform = isParameterSchema(name) && plugin.options.paramsCasing\n const transformedSchema = shouldTransform ? applyParamsCasing(schema, plugin.options.paramsCasing) : schema\n\n const tree = schemaGenerator.parse({ schema: transformedSchema, name, parentName: null })\n const imports = 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 keyword === schemaKeywords.ref,\n )\n\n return (\n <>\n {canOverride && <File.Import isTypeOnly root={file.path} path={type.file.path} name={[type.name]} />}\n {imports.map((imp) => (\n <File.Import key={[imp.path, imp.name, imp.isTypeOnly].join('-')} 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 </>\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, plugin }) {\n const { getName, getFile } = useSchemaManager()\n const {\n options: { output, dateParser, regexGenerator, seed, mapper },\n } = plugin\n const pluginManager = usePluginManager()\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 keyword === schemaKeywords.ref ||\n keyword === schemaKeywords.string ||\n keyword === schemaKeywords.integer ||\n keyword === schemaKeywords.number,\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) => (\n <File.Import key={[imp.path, imp.name, imp.isTypeOnly].join('-')} 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"],"mappings":"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"}
|
package/dist/generators.cjs
CHANGED