@kubb/plugin-faker 4.31.6 → 4.32.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.
- package/dist/{chunk-DKWOrOAv.js → chunk--u3MIqq1.js} +1 -2
- package/dist/{Faker-eDce4Xeu.js → components-B68UsxPY.js} +3 -5
- package/dist/components-B68UsxPY.js.map +1 -0
- package/dist/{Faker-BgffWuWf.cjs → components-D_u3P-i_.cjs} +23 -30
- package/dist/components-D_u3P-i_.cjs.map +1 -0
- package/dist/components.cjs +3 -4
- package/dist/components.d.ts +2 -2
- package/dist/components.js +2 -3
- package/dist/{fakerGenerator-C68x1Nq-.js → fakerGenerator-BVz1bBsB.js} +4 -5
- package/dist/{fakerGenerator-C68x1Nq-.js.map → fakerGenerator-BVz1bBsB.js.map} +1 -1
- package/dist/{fakerGenerator-DXlc0o9U.cjs → fakerGenerator-CUELBiY_.cjs} +10 -11
- package/dist/{fakerGenerator-DXlc0o9U.cjs.map → fakerGenerator-CUELBiY_.cjs.map} +1 -1
- package/dist/generators.cjs +3 -4
- package/dist/generators.d.ts +2 -2
- package/dist/generators.js +2 -3
- package/dist/index.cjs +5 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +3 -4
- package/dist/index.js.map +1 -1
- package/dist/{types-BIWyHbXy.d.ts → types-WKLWEptG.d.ts} +2 -2
- package/package.json +5 -5
- package/dist/Faker-BgffWuWf.cjs.map +0 -1
- package/dist/Faker-eDce4Xeu.js.map +0 -1
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import "./chunk--u3MIqq1.js";
|
|
2
2
|
import transformers from "@kubb/core/transformers";
|
|
3
3
|
import { createParser, findSchemaKeyword, isKeyword, schemaKeywords } from "@kubb/plugin-oas";
|
|
4
4
|
import { File, Function, FunctionParams } from "@kubb/react-fabric";
|
|
5
5
|
import { jsx, jsxs } from "@kubb/react-fabric/jsx-runtime";
|
|
6
|
-
|
|
7
6
|
//#region src/parser.ts
|
|
8
7
|
const fakerKeywordMapper = {
|
|
9
8
|
any: () => "undefined",
|
|
@@ -277,7 +276,6 @@ const parse = createParser({
|
|
|
277
276
|
}
|
|
278
277
|
}
|
|
279
278
|
});
|
|
280
|
-
|
|
281
279
|
//#endregion
|
|
282
280
|
//#region src/components/Faker.tsx
|
|
283
281
|
function Faker({ tree, description, name, typeName, seed, regexGenerator, canOverride, mapper, dateParser }) {
|
|
@@ -344,7 +342,7 @@ function Faker({ tree, description, name, typeName, seed, regexGenerator, canOve
|
|
|
344
342
|
})
|
|
345
343
|
});
|
|
346
344
|
}
|
|
347
|
-
|
|
348
345
|
//#endregion
|
|
349
346
|
export { Faker as t };
|
|
350
|
-
|
|
347
|
+
|
|
348
|
+
//# sourceMappingURL=components-B68UsxPY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components-B68UsxPY.js","names":["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 bigint: () => 'faker.number.bigInt()',\n string: (min?: number, max?: number) => {\n if (max !== undefined && min !== undefined) {\n return `faker.string.alpha({ length: { min: ${min}, max: ${max} } })`\n }\n\n if (max !== undefined) {\n return `faker.string.alpha({ length: ${max} })`\n }\n\n if (min !== undefined) {\n return `faker.string.alpha({ length: ${min} })`\n }\n\n return 'faker.string.alpha()'\n },\n boolean: () => 'faker.datatype.boolean()',\n 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 bigint(_tree, _options) {\n return fakerKeywordMapper.bigint()\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 { isKeyword, schemaKeywords } 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 isRefToArray = tree.some((s) => isKeyword(s, schemaKeywords.schema) && s.args.type === 'array')\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 (isRefToArray) 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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"}
|
|
@@ -10,16 +10,12 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
10
10
|
var __getProtoOf = Object.getPrototypeOf;
|
|
11
11
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
12
|
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
}
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
14
|
+
key = keys[i];
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: ((k) => from[k]).bind(null, key),
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
23
19
|
}
|
|
24
20
|
return to;
|
|
25
21
|
};
|
|
@@ -27,14 +23,12 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
27
23
|
value: mod,
|
|
28
24
|
enumerable: true
|
|
29
25
|
}) : target, mod));
|
|
30
|
-
|
|
31
26
|
//#endregion
|
|
32
27
|
let _kubb_core_transformers = require("@kubb/core/transformers");
|
|
33
28
|
_kubb_core_transformers = __toESM(_kubb_core_transformers);
|
|
34
29
|
let _kubb_plugin_oas = require("@kubb/plugin-oas");
|
|
35
30
|
let _kubb_react_fabric = require("@kubb/react-fabric");
|
|
36
31
|
let _kubb_react_fabric_jsx_runtime = require("@kubb/react-fabric/jsx-runtime");
|
|
37
|
-
|
|
38
32
|
//#region src/parser.ts
|
|
39
33
|
const fakerKeywordMapper = {
|
|
40
34
|
any: () => "undefined",
|
|
@@ -308,7 +302,6 @@ const parse = (0, _kubb_plugin_oas.createParser)({
|
|
|
308
302
|
}
|
|
309
303
|
}
|
|
310
304
|
});
|
|
311
|
-
|
|
312
305
|
//#endregion
|
|
313
306
|
//#region src/components/Faker.tsx
|
|
314
307
|
function Faker({ tree, description, name, typeName, seed, regexGenerator, canOverride, mapper, dateParser }) {
|
|
@@ -375,24 +368,24 @@ function Faker({ tree, description, name, typeName, seed, regexGenerator, canOve
|
|
|
375
368
|
})
|
|
376
369
|
});
|
|
377
370
|
}
|
|
378
|
-
|
|
379
371
|
//#endregion
|
|
380
|
-
Object.defineProperty(exports,
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
372
|
+
Object.defineProperty(exports, "Faker", {
|
|
373
|
+
enumerable: true,
|
|
374
|
+
get: function() {
|
|
375
|
+
return Faker;
|
|
376
|
+
}
|
|
385
377
|
});
|
|
386
|
-
Object.defineProperty(exports,
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
378
|
+
Object.defineProperty(exports, "__name", {
|
|
379
|
+
enumerable: true,
|
|
380
|
+
get: function() {
|
|
381
|
+
return __name;
|
|
382
|
+
}
|
|
391
383
|
});
|
|
392
|
-
Object.defineProperty(exports,
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
384
|
+
Object.defineProperty(exports, "__toESM", {
|
|
385
|
+
enumerable: true,
|
|
386
|
+
get: function() {
|
|
387
|
+
return __toESM;
|
|
388
|
+
}
|
|
397
389
|
});
|
|
398
|
-
|
|
390
|
+
|
|
391
|
+
//# sourceMappingURL=components-D_u3P-i_.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components-D_u3P-i_.cjs","names":["transformers","schemaKeywords","parserFaker.joinItems","parserFaker.parse","schemaKeywords","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 bigint: () => 'faker.number.bigInt()',\n string: (min?: number, max?: number) => {\n if (max !== undefined && min !== undefined) {\n return `faker.string.alpha({ length: { min: ${min}, max: ${max} } })`\n }\n\n if (max !== undefined) {\n return `faker.string.alpha({ length: ${max} })`\n }\n\n if (min !== undefined) {\n return `faker.string.alpha({ length: ${min} })`\n }\n\n return 'faker.string.alpha()'\n },\n boolean: () => 'faker.datatype.boolean()',\n 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 bigint(_tree, _options) {\n return fakerKeywordMapper.bigint()\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 { isKeyword, schemaKeywords } 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 isRefToArray = tree.some((s) => isKeyword(s, schemaKeywords.schema) && s.args.type === 'array')\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 (isRefToArray) 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
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value:
|
|
2
|
-
const
|
|
3
|
-
|
|
4
|
-
exports.Faker = require_Faker.Faker;
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_components = require("./components-D_u3P-i_.cjs");
|
|
3
|
+
exports.Faker = require_components.Faker;
|
package/dist/components.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as __name } from "./chunk
|
|
2
|
-
import { n as PluginFaker } from "./types-
|
|
1
|
+
import { t as __name } from "./chunk--u3MIqq1.js";
|
|
2
|
+
import { n as PluginFaker } from "./types-WKLWEptG.js";
|
|
3
3
|
import { Schema } from "@kubb/plugin-oas";
|
|
4
4
|
import { FabricReactNode } from "@kubb/react-fabric/types";
|
|
5
5
|
|
package/dist/components.js
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import { t as Faker } from "./
|
|
2
|
-
|
|
3
|
-
export { Faker };
|
|
1
|
+
import { t as Faker } from "./components-B68UsxPY.js";
|
|
2
|
+
export { Faker };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { t as Faker } from "./
|
|
1
|
+
import "./chunk--u3MIqq1.js";
|
|
2
|
+
import { t as Faker } from "./components-B68UsxPY.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";
|
|
@@ -8,7 +8,6 @@ import { useOas, useOperationManager, useSchemaManager } from "@kubb/plugin-oas/
|
|
|
8
8
|
import { applyParamsCasing, getBanner, getFooter, getImports, isParameterSchema } from "@kubb/plugin-oas/utils";
|
|
9
9
|
import { File } from "@kubb/react-fabric";
|
|
10
10
|
import { Fragment, jsx, jsxs } from "@kubb/react-fabric/jsx-runtime";
|
|
11
|
-
|
|
12
11
|
//#region src/generators/fakerGenerator.tsx
|
|
13
12
|
const fakerGenerator = createReactGenerator({
|
|
14
13
|
name: "faker",
|
|
@@ -195,7 +194,7 @@ const fakerGenerator = createReactGenerator({
|
|
|
195
194
|
});
|
|
196
195
|
}
|
|
197
196
|
});
|
|
198
|
-
|
|
199
197
|
//#endregion
|
|
200
198
|
export { fakerGenerator as t };
|
|
201
|
-
|
|
199
|
+
|
|
200
|
+
//# sourceMappingURL=fakerGenerator-BVz1bBsB.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fakerGenerator-C68x1Nq-.js","names":[],"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.enum ||\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.enum ||\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
|
+
{"version":3,"file":"fakerGenerator-BVz1bBsB.js","names":[],"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.enum ||\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.enum ||\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
|
|
1
|
+
const require_components = require("./components-D_u3P-i_.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");
|
|
@@ -7,7 +7,6 @@ let _kubb_plugin_oas_hooks = require("@kubb/plugin-oas/hooks");
|
|
|
7
7
|
let _kubb_plugin_oas_utils = require("@kubb/plugin-oas/utils");
|
|
8
8
|
let _kubb_react_fabric = require("@kubb/react-fabric");
|
|
9
9
|
let _kubb_react_fabric_jsx_runtime = require("@kubb/react-fabric/jsx-runtime");
|
|
10
|
-
|
|
11
10
|
//#region src/generators/fakerGenerator.tsx
|
|
12
11
|
const fakerGenerator = (0, _kubb_plugin_oas_generators.createReactGenerator)({
|
|
13
12
|
name: "faker",
|
|
@@ -77,7 +76,7 @@ const fakerGenerator = (0, _kubb_plugin_oas_generators.createReactGenerator)({
|
|
|
77
76
|
imp.name,
|
|
78
77
|
imp.isTypeOnly
|
|
79
78
|
].join("-"))),
|
|
80
|
-
/* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(
|
|
79
|
+
/* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(require_components.Faker, {
|
|
81
80
|
name: faker.name,
|
|
82
81
|
typeName: type.name,
|
|
83
82
|
description,
|
|
@@ -179,7 +178,7 @@ const fakerGenerator = (0, _kubb_plugin_oas_generators.createReactGenerator)({
|
|
|
179
178
|
imp.name,
|
|
180
179
|
imp.isTypeOnly
|
|
181
180
|
].join("-"))),
|
|
182
|
-
/* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(
|
|
181
|
+
/* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(require_components.Faker, {
|
|
183
182
|
name: faker.name,
|
|
184
183
|
typeName: type.name,
|
|
185
184
|
description: schema.value.description,
|
|
@@ -194,12 +193,12 @@ const fakerGenerator = (0, _kubb_plugin_oas_generators.createReactGenerator)({
|
|
|
194
193
|
});
|
|
195
194
|
}
|
|
196
195
|
});
|
|
197
|
-
|
|
198
196
|
//#endregion
|
|
199
|
-
Object.defineProperty(exports,
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
197
|
+
Object.defineProperty(exports, "fakerGenerator", {
|
|
198
|
+
enumerable: true,
|
|
199
|
+
get: function() {
|
|
200
|
+
return fakerGenerator;
|
|
201
|
+
}
|
|
204
202
|
});
|
|
205
|
-
|
|
203
|
+
|
|
204
|
+
//# sourceMappingURL=fakerGenerator-CUELBiY_.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fakerGenerator-DXlc0o9U.cjs","names":["SchemaGenerator","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.enum ||\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.enum ||\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
|
+
{"version":3,"file":"fakerGenerator-CUELBiY_.cjs","names":["SchemaGenerator","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.enum ||\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.enum ||\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
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value:
|
|
2
|
-
const require_fakerGenerator = require(
|
|
3
|
-
|
|
4
|
-
exports.fakerGenerator = require_fakerGenerator.fakerGenerator;
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_fakerGenerator = require("./fakerGenerator-CUELBiY_.cjs");
|
|
3
|
+
exports.fakerGenerator = require_fakerGenerator.fakerGenerator;
|
package/dist/generators.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as __name } from "./chunk
|
|
2
|
-
import { n as PluginFaker } from "./types-
|
|
1
|
+
import { t as __name } from "./chunk--u3MIqq1.js";
|
|
2
|
+
import { n as PluginFaker } from "./types-WKLWEptG.js";
|
|
3
3
|
import { BaseGenerator, Config, FileMetaBase, Group, KubbEvents, Output, Plugin, PluginFactoryOptions, PluginManager, ResolveNameParams } from "@kubb/core";
|
|
4
4
|
import { Fabric } from "@kubb/react-fabric";
|
|
5
5
|
import { FabricReactNode } from "@kubb/react-fabric/types";
|
package/dist/generators.js
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import { t as fakerGenerator } from "./fakerGenerator-
|
|
2
|
-
|
|
3
|
-
export { fakerGenerator };
|
|
1
|
+
import { t as fakerGenerator } from "./fakerGenerator-BVz1bBsB.js";
|
|
2
|
+
export { fakerGenerator };
|
package/dist/index.cjs
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value:
|
|
2
|
-
const
|
|
3
|
-
const require_fakerGenerator = require(
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_components = require("./components-D_u3P-i_.cjs");
|
|
3
|
+
const require_fakerGenerator = require("./fakerGenerator-CUELBiY_.cjs");
|
|
4
4
|
let node_path = require("node:path");
|
|
5
|
-
node_path =
|
|
5
|
+
node_path = require_components.__toESM(node_path);
|
|
6
6
|
let _kubb_core = require("@kubb/core");
|
|
7
7
|
let _kubb_core_transformers = require("@kubb/core/transformers");
|
|
8
8
|
let _kubb_plugin_oas = require("@kubb/plugin-oas");
|
|
9
9
|
let _kubb_plugin_ts = require("@kubb/plugin-ts");
|
|
10
|
-
|
|
11
10
|
//#region src/plugin.ts
|
|
12
11
|
const pluginFakerName = "plugin-faker";
|
|
13
12
|
const pluginFaker = (0, _kubb_core.definePlugin)((options) => {
|
|
@@ -99,8 +98,8 @@ const pluginFaker = (0, _kubb_core.definePlugin)((options) => {
|
|
|
99
98
|
}
|
|
100
99
|
};
|
|
101
100
|
});
|
|
102
|
-
|
|
103
101
|
//#endregion
|
|
104
102
|
exports.pluginFaker = pluginFaker;
|
|
105
103
|
exports.pluginFakerName = pluginFakerName;
|
|
104
|
+
|
|
106
105
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["fakerGenerator","pluginOasName","pluginTsName","path","SchemaGenerator","OperationGenerator"],"sources":["../src/plugin.ts"],"sourcesContent":["import path from 'node:path'\nimport { definePlugin, type Group, getBarrelFiles, getMode } from '@kubb/core'\nimport { camelCase } from '@kubb/core/transformers'\nimport { OperationGenerator, pluginOasName, SchemaGenerator } from '@kubb/plugin-oas'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { fakerGenerator } from './generators/fakerGenerator.tsx'\nimport type { PluginFaker } from './types.ts'\n\nexport const pluginFakerName = 'plugin-faker' satisfies PluginFaker['name']\n\nexport const pluginFaker = definePlugin<PluginFaker>((options) => {\n const {\n output = { path: 'mocks', barrelType: 'named' },\n seed,\n group,\n exclude = [],\n include,\n override = [],\n transformers = {},\n mapper = {},\n unknownType = 'any',\n emptySchemaType = unknownType,\n dateType = 'string',\n integerType = 'number',\n dateParser = 'faker',\n generators = [fakerGenerator].filter(Boolean),\n regexGenerator = 'faker',\n paramsCasing,\n contentType,\n } = options\n\n // @deprecated Will be removed in v5 when collisionDetection defaults to true\n const usedEnumNames = {}\n\n return {\n name: pluginFakerName,\n options: {\n output,\n transformers,\n seed,\n dateType,\n integerType,\n unknownType,\n emptySchemaType,\n dateParser,\n mapper,\n override,\n regexGenerator,\n paramsCasing,\n group,\n usedEnumNames,\n },\n pre: [pluginOasName, pluginTsName],\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? getMode(path.resolve(root, output.path))\n\n if (mode === 'single') {\n /**\n * when output is a file then we will always append to the same file(output file), see fileManager.addOrAppend\n * Other plugins then need to call addOrAppend instead of just add from the fileManager class\n */\n return path.resolve(root, output.path)\n }\n\n if (group && (options?.group?.path || options?.group?.tag)) {\n const groupName: Group['name'] = group?.name\n ? group.name\n : (ctx) => {\n if (group?.type === 'path') {\n return `${ctx.group.split('/')[1]}`\n }\n return `${camelCase(ctx.group)}Controller`\n }\n\n return path.resolve(\n root,\n output.path,\n groupName({\n group: group.type === 'path' ? options.group.path! : options.group.tag!,\n }),\n baseName,\n )\n }\n\n return path.resolve(root, output.path, baseName)\n },\n resolveName(name, type) {\n const resolvedName = camelCase(name, {\n prefix: type ? 'create' : undefined,\n isFile: type === 'file',\n })\n\n if (type) {\n return transformers?.name?.(resolvedName, type) || resolvedName\n }\n\n return resolvedName\n },\n async install() {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = getMode(path.resolve(root, output.path))\n const oas = await this.getOas()\n\n const schemaGenerator = new SchemaGenerator(this.plugin.options, {\n fabric: this.fabric,\n oas,\n pluginManager: this.pluginManager,\n events: this.events,\n plugin: this.plugin,\n contentType,\n include: undefined,\n override,\n mode,\n output: output.path,\n })\n\n const schemaFiles = await schemaGenerator.build(...generators)\n await this.upsertFile(...schemaFiles)\n\n const operationGenerator = new OperationGenerator(this.plugin.options, {\n fabric: this.fabric,\n oas,\n pluginManager: this.pluginManager,\n events: this.events,\n plugin: this.plugin,\n contentType,\n exclude,\n include,\n override,\n mode,\n })\n\n const operationFiles = await operationGenerator.build(...generators)\n await this.upsertFile(...operationFiles)\n\n const barrelFiles = await getBarrelFiles(this.fabric.files, {\n type: output.barrelType ?? 'named',\n root,\n output,\n meta: {\n pluginKey: this.plugin.key,\n },\n })\n\n await this.upsertFile(...barrelFiles)\n },\n }\n})\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["fakerGenerator","pluginOasName","pluginTsName","path","SchemaGenerator","OperationGenerator"],"sources":["../src/plugin.ts"],"sourcesContent":["import path from 'node:path'\nimport { definePlugin, type Group, getBarrelFiles, getMode } from '@kubb/core'\nimport { camelCase } from '@kubb/core/transformers'\nimport { OperationGenerator, pluginOasName, SchemaGenerator } from '@kubb/plugin-oas'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { fakerGenerator } from './generators/fakerGenerator.tsx'\nimport type { PluginFaker } from './types.ts'\n\nexport const pluginFakerName = 'plugin-faker' satisfies PluginFaker['name']\n\nexport const pluginFaker = definePlugin<PluginFaker>((options) => {\n const {\n output = { path: 'mocks', barrelType: 'named' },\n seed,\n group,\n exclude = [],\n include,\n override = [],\n transformers = {},\n mapper = {},\n unknownType = 'any',\n emptySchemaType = unknownType,\n dateType = 'string',\n integerType = 'number',\n dateParser = 'faker',\n generators = [fakerGenerator].filter(Boolean),\n regexGenerator = 'faker',\n paramsCasing,\n contentType,\n } = options\n\n // @deprecated Will be removed in v5 when collisionDetection defaults to true\n const usedEnumNames = {}\n\n return {\n name: pluginFakerName,\n options: {\n output,\n transformers,\n seed,\n dateType,\n integerType,\n unknownType,\n emptySchemaType,\n dateParser,\n mapper,\n override,\n regexGenerator,\n paramsCasing,\n group,\n usedEnumNames,\n },\n pre: [pluginOasName, pluginTsName],\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? getMode(path.resolve(root, output.path))\n\n if (mode === 'single') {\n /**\n * when output is a file then we will always append to the same file(output file), see fileManager.addOrAppend\n * Other plugins then need to call addOrAppend instead of just add from the fileManager class\n */\n return path.resolve(root, output.path)\n }\n\n if (group && (options?.group?.path || options?.group?.tag)) {\n const groupName: Group['name'] = group?.name\n ? group.name\n : (ctx) => {\n if (group?.type === 'path') {\n return `${ctx.group.split('/')[1]}`\n }\n return `${camelCase(ctx.group)}Controller`\n }\n\n return path.resolve(\n root,\n output.path,\n groupName({\n group: group.type === 'path' ? options.group.path! : options.group.tag!,\n }),\n baseName,\n )\n }\n\n return path.resolve(root, output.path, baseName)\n },\n resolveName(name, type) {\n const resolvedName = camelCase(name, {\n prefix: type ? 'create' : undefined,\n isFile: type === 'file',\n })\n\n if (type) {\n return transformers?.name?.(resolvedName, type) || resolvedName\n }\n\n return resolvedName\n },\n async install() {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = getMode(path.resolve(root, output.path))\n const oas = await this.getOas()\n\n const schemaGenerator = new SchemaGenerator(this.plugin.options, {\n fabric: this.fabric,\n oas,\n pluginManager: this.pluginManager,\n events: this.events,\n plugin: this.plugin,\n contentType,\n include: undefined,\n override,\n mode,\n output: output.path,\n })\n\n const schemaFiles = await schemaGenerator.build(...generators)\n await this.upsertFile(...schemaFiles)\n\n const operationGenerator = new OperationGenerator(this.plugin.options, {\n fabric: this.fabric,\n oas,\n pluginManager: this.pluginManager,\n events: this.events,\n plugin: this.plugin,\n contentType,\n exclude,\n include,\n override,\n mode,\n })\n\n const operationFiles = await operationGenerator.build(...generators)\n await this.upsertFile(...operationFiles)\n\n const barrelFiles = await getBarrelFiles(this.fabric.files, {\n type: output.barrelType ?? 'named',\n root,\n output,\n meta: {\n pluginKey: this.plugin.key,\n },\n })\n\n await this.upsertFile(...barrelFiles)\n },\n }\n})\n"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as __name } from "./chunk
|
|
2
|
-
import { n as PluginFaker, t as Options } from "./types-
|
|
1
|
+
import { t as __name } from "./chunk--u3MIqq1.js";
|
|
2
|
+
import { n as PluginFaker, t as Options } from "./types-WKLWEptG.js";
|
|
3
3
|
import * as _kubb_core0 from "@kubb/core";
|
|
4
4
|
|
|
5
5
|
//#region src/plugin.d.ts
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { t as fakerGenerator } from "./fakerGenerator-
|
|
1
|
+
import "./chunk--u3MIqq1.js";
|
|
2
|
+
import { t as fakerGenerator } from "./fakerGenerator-BVz1bBsB.js";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { definePlugin, getBarrelFiles, getMode } from "@kubb/core";
|
|
5
5
|
import { camelCase } from "@kubb/core/transformers";
|
|
6
6
|
import { OperationGenerator, SchemaGenerator, pluginOasName } from "@kubb/plugin-oas";
|
|
7
7
|
import { pluginTsName } from "@kubb/plugin-ts";
|
|
8
|
-
|
|
9
8
|
//#region src/plugin.ts
|
|
10
9
|
const pluginFakerName = "plugin-faker";
|
|
11
10
|
const pluginFaker = definePlugin((options) => {
|
|
@@ -97,7 +96,7 @@ const pluginFaker = definePlugin((options) => {
|
|
|
97
96
|
}
|
|
98
97
|
};
|
|
99
98
|
});
|
|
100
|
-
|
|
101
99
|
//#endregion
|
|
102
100
|
export { pluginFaker, pluginFakerName };
|
|
101
|
+
|
|
103
102
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/plugin.ts"],"sourcesContent":["import path from 'node:path'\nimport { definePlugin, type Group, getBarrelFiles, getMode } from '@kubb/core'\nimport { camelCase } from '@kubb/core/transformers'\nimport { OperationGenerator, pluginOasName, SchemaGenerator } from '@kubb/plugin-oas'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { fakerGenerator } from './generators/fakerGenerator.tsx'\nimport type { PluginFaker } from './types.ts'\n\nexport const pluginFakerName = 'plugin-faker' satisfies PluginFaker['name']\n\nexport const pluginFaker = definePlugin<PluginFaker>((options) => {\n const {\n output = { path: 'mocks', barrelType: 'named' },\n seed,\n group,\n exclude = [],\n include,\n override = [],\n transformers = {},\n mapper = {},\n unknownType = 'any',\n emptySchemaType = unknownType,\n dateType = 'string',\n integerType = 'number',\n dateParser = 'faker',\n generators = [fakerGenerator].filter(Boolean),\n regexGenerator = 'faker',\n paramsCasing,\n contentType,\n } = options\n\n // @deprecated Will be removed in v5 when collisionDetection defaults to true\n const usedEnumNames = {}\n\n return {\n name: pluginFakerName,\n options: {\n output,\n transformers,\n seed,\n dateType,\n integerType,\n unknownType,\n emptySchemaType,\n dateParser,\n mapper,\n override,\n regexGenerator,\n paramsCasing,\n group,\n usedEnumNames,\n },\n pre: [pluginOasName, pluginTsName],\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? getMode(path.resolve(root, output.path))\n\n if (mode === 'single') {\n /**\n * when output is a file then we will always append to the same file(output file), see fileManager.addOrAppend\n * Other plugins then need to call addOrAppend instead of just add from the fileManager class\n */\n return path.resolve(root, output.path)\n }\n\n if (group && (options?.group?.path || options?.group?.tag)) {\n const groupName: Group['name'] = group?.name\n ? group.name\n : (ctx) => {\n if (group?.type === 'path') {\n return `${ctx.group.split('/')[1]}`\n }\n return `${camelCase(ctx.group)}Controller`\n }\n\n return path.resolve(\n root,\n output.path,\n groupName({\n group: group.type === 'path' ? options.group.path! : options.group.tag!,\n }),\n baseName,\n )\n }\n\n return path.resolve(root, output.path, baseName)\n },\n resolveName(name, type) {\n const resolvedName = camelCase(name, {\n prefix: type ? 'create' : undefined,\n isFile: type === 'file',\n })\n\n if (type) {\n return transformers?.name?.(resolvedName, type) || resolvedName\n }\n\n return resolvedName\n },\n async install() {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = getMode(path.resolve(root, output.path))\n const oas = await this.getOas()\n\n const schemaGenerator = new SchemaGenerator(this.plugin.options, {\n fabric: this.fabric,\n oas,\n pluginManager: this.pluginManager,\n events: this.events,\n plugin: this.plugin,\n contentType,\n include: undefined,\n override,\n mode,\n output: output.path,\n })\n\n const schemaFiles = await schemaGenerator.build(...generators)\n await this.upsertFile(...schemaFiles)\n\n const operationGenerator = new OperationGenerator(this.plugin.options, {\n fabric: this.fabric,\n oas,\n pluginManager: this.pluginManager,\n events: this.events,\n plugin: this.plugin,\n contentType,\n exclude,\n include,\n override,\n mode,\n })\n\n const operationFiles = await operationGenerator.build(...generators)\n await this.upsertFile(...operationFiles)\n\n const barrelFiles = await getBarrelFiles(this.fabric.files, {\n type: output.barrelType ?? 'named',\n root,\n output,\n meta: {\n pluginKey: this.plugin.key,\n },\n })\n\n await this.upsertFile(...barrelFiles)\n },\n }\n})\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/plugin.ts"],"sourcesContent":["import path from 'node:path'\nimport { definePlugin, type Group, getBarrelFiles, getMode } from '@kubb/core'\nimport { camelCase } from '@kubb/core/transformers'\nimport { OperationGenerator, pluginOasName, SchemaGenerator } from '@kubb/plugin-oas'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { fakerGenerator } from './generators/fakerGenerator.tsx'\nimport type { PluginFaker } from './types.ts'\n\nexport const pluginFakerName = 'plugin-faker' satisfies PluginFaker['name']\n\nexport const pluginFaker = definePlugin<PluginFaker>((options) => {\n const {\n output = { path: 'mocks', barrelType: 'named' },\n seed,\n group,\n exclude = [],\n include,\n override = [],\n transformers = {},\n mapper = {},\n unknownType = 'any',\n emptySchemaType = unknownType,\n dateType = 'string',\n integerType = 'number',\n dateParser = 'faker',\n generators = [fakerGenerator].filter(Boolean),\n regexGenerator = 'faker',\n paramsCasing,\n contentType,\n } = options\n\n // @deprecated Will be removed in v5 when collisionDetection defaults to true\n const usedEnumNames = {}\n\n return {\n name: pluginFakerName,\n options: {\n output,\n transformers,\n seed,\n dateType,\n integerType,\n unknownType,\n emptySchemaType,\n dateParser,\n mapper,\n override,\n regexGenerator,\n paramsCasing,\n group,\n usedEnumNames,\n },\n pre: [pluginOasName, pluginTsName],\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? getMode(path.resolve(root, output.path))\n\n if (mode === 'single') {\n /**\n * when output is a file then we will always append to the same file(output file), see fileManager.addOrAppend\n * Other plugins then need to call addOrAppend instead of just add from the fileManager class\n */\n return path.resolve(root, output.path)\n }\n\n if (group && (options?.group?.path || options?.group?.tag)) {\n const groupName: Group['name'] = group?.name\n ? group.name\n : (ctx) => {\n if (group?.type === 'path') {\n return `${ctx.group.split('/')[1]}`\n }\n return `${camelCase(ctx.group)}Controller`\n }\n\n return path.resolve(\n root,\n output.path,\n groupName({\n group: group.type === 'path' ? options.group.path! : options.group.tag!,\n }),\n baseName,\n )\n }\n\n return path.resolve(root, output.path, baseName)\n },\n resolveName(name, type) {\n const resolvedName = camelCase(name, {\n prefix: type ? 'create' : undefined,\n isFile: type === 'file',\n })\n\n if (type) {\n return transformers?.name?.(resolvedName, type) || resolvedName\n }\n\n return resolvedName\n },\n async install() {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = getMode(path.resolve(root, output.path))\n const oas = await this.getOas()\n\n const schemaGenerator = new SchemaGenerator(this.plugin.options, {\n fabric: this.fabric,\n oas,\n pluginManager: this.pluginManager,\n events: this.events,\n plugin: this.plugin,\n contentType,\n include: undefined,\n override,\n mode,\n output: output.path,\n })\n\n const schemaFiles = await schemaGenerator.build(...generators)\n await this.upsertFile(...schemaFiles)\n\n const operationGenerator = new OperationGenerator(this.plugin.options, {\n fabric: this.fabric,\n oas,\n pluginManager: this.pluginManager,\n events: this.events,\n plugin: this.plugin,\n contentType,\n exclude,\n include,\n override,\n mode,\n })\n\n const operationFiles = await operationGenerator.build(...generators)\n await this.upsertFile(...operationFiles)\n\n const barrelFiles = await getBarrelFiles(this.fabric.files, {\n type: output.barrelType ?? 'named',\n root,\n output,\n meta: {\n pluginKey: this.plugin.key,\n },\n })\n\n await this.upsertFile(...barrelFiles)\n },\n }\n})\n"],"mappings":";;;;;;;;AAQA,MAAa,kBAAkB;AAE/B,MAAa,cAAc,cAA2B,YAAY;CAChE,MAAM,EACJ,SAAS;EAAE,MAAM;EAAS,YAAY;EAAS,EAC/C,MACA,OACA,UAAU,EAAE,EACZ,SACA,WAAW,EAAE,EACb,eAAe,EAAE,EACjB,SAAS,EAAE,EACX,cAAc,OACd,kBAAkB,aAClB,WAAW,UACX,cAAc,UACd,aAAa,SACb,aAAa,CAAC,eAAe,CAAC,OAAO,QAAQ,EAC7C,iBAAiB,SACjB,cACA,gBACE;AAKJ,QAAO;EACL,MAAM;EACN,SAAS;GACP;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,eAlBkB,EAAE;GAmBrB;EACD,KAAK,CAAC,eAAe,aAAa;EAClC,YAAY,UAAU,UAAU,SAAS;GACvC,MAAM,OAAO,KAAK,QAAQ,KAAK,OAAO,MAAM,KAAK,OAAO,OAAO,KAAK;AAGpE,QAFa,YAAY,QAAQ,KAAK,QAAQ,MAAM,OAAO,KAAK,CAAC,MAEpD;;;;;AAKX,UAAO,KAAK,QAAQ,MAAM,OAAO,KAAK;AAGxC,OAAI,UAAU,SAAS,OAAO,QAAQ,SAAS,OAAO,MAAM;IAC1D,MAAM,YAA2B,OAAO,OACpC,MAAM,QACL,QAAQ;AACP,SAAI,OAAO,SAAS,OAClB,QAAO,GAAG,IAAI,MAAM,MAAM,IAAI,CAAC;AAEjC,YAAO,GAAG,UAAU,IAAI,MAAM,CAAC;;AAGrC,WAAO,KAAK,QACV,MACA,OAAO,MACP,UAAU,EACR,OAAO,MAAM,SAAS,SAAS,QAAQ,MAAM,OAAQ,QAAQ,MAAM,KACpE,CAAC,EACF,SACD;;AAGH,UAAO,KAAK,QAAQ,MAAM,OAAO,MAAM,SAAS;;EAElD,YAAY,MAAM,MAAM;GACtB,MAAM,eAAe,UAAU,MAAM;IACnC,QAAQ,OAAO,WAAW,KAAA;IAC1B,QAAQ,SAAS;IAClB,CAAC;AAEF,OAAI,KACF,QAAO,cAAc,OAAO,cAAc,KAAK,IAAI;AAGrD,UAAO;;EAET,MAAM,UAAU;GACd,MAAM,OAAO,KAAK,QAAQ,KAAK,OAAO,MAAM,KAAK,OAAO,OAAO,KAAK;GACpE,MAAM,OAAO,QAAQ,KAAK,QAAQ,MAAM,OAAO,KAAK,CAAC;GACrD,MAAM,MAAM,MAAM,KAAK,QAAQ;GAe/B,MAAM,cAAc,MAbI,IAAI,gBAAgB,KAAK,OAAO,SAAS;IAC/D,QAAQ,KAAK;IACb;IACA,eAAe,KAAK;IACpB,QAAQ,KAAK;IACb,QAAQ,KAAK;IACb;IACA,SAAS,KAAA;IACT;IACA;IACA,QAAQ,OAAO;IAChB,CAAC,CAEwC,MAAM,GAAG,WAAW;AAC9D,SAAM,KAAK,WAAW,GAAG,YAAY;GAerC,MAAM,iBAAiB,MAbI,IAAI,mBAAmB,KAAK,OAAO,SAAS;IACrE,QAAQ,KAAK;IACb;IACA,eAAe,KAAK;IACpB,QAAQ,KAAK;IACb,QAAQ,KAAK;IACb;IACA;IACA;IACA;IACA;IACD,CAAC,CAE8C,MAAM,GAAG,WAAW;AACpE,SAAM,KAAK,WAAW,GAAG,eAAe;GAExC,MAAM,cAAc,MAAM,eAAe,KAAK,OAAO,OAAO;IAC1D,MAAM,OAAO,cAAc;IAC3B;IACA;IACA,MAAM,EACJ,WAAW,KAAK,OAAO,KACxB;IACF,CAAC;AAEF,SAAM,KAAK,WAAW,GAAG,YAAY;;EAExC;EACD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as __name } from "./chunk
|
|
1
|
+
import { t as __name } from "./chunk--u3MIqq1.js";
|
|
2
2
|
import { Group, Output, PluginFactoryOptions, ResolveNameParams } from "@kubb/core";
|
|
3
3
|
import { Exclude, Include, Override, ResolvePathOptions, Schema } from "@kubb/plugin-oas";
|
|
4
4
|
import { Generator } from "@kubb/plugin-oas/generators";
|
|
@@ -129,4 +129,4 @@ type ResolvedOptions = {
|
|
|
129
129
|
type PluginFaker = PluginFactoryOptions<'plugin-faker', Options, ResolvedOptions, never, ResolvePathOptions>;
|
|
130
130
|
//#endregion
|
|
131
131
|
export { PluginFaker as n, Options as t };
|
|
132
|
-
//# sourceMappingURL=types-
|
|
132
|
+
//# sourceMappingURL=types-WKLWEptG.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubb/plugin-faker",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.32.1",
|
|
4
4
|
"description": "Faker.js data generator plugin for Kubb, creating realistic mock data from OpenAPI specifications for development and testing.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"faker",
|
|
@@ -72,10 +72,10 @@
|
|
|
72
72
|
],
|
|
73
73
|
"dependencies": {
|
|
74
74
|
"@kubb/react-fabric": "0.13.3",
|
|
75
|
-
"@kubb/core": "4.
|
|
76
|
-
"@kubb/oas": "4.
|
|
77
|
-
"@kubb/plugin-oas": "4.
|
|
78
|
-
"@kubb/plugin-ts": "4.
|
|
75
|
+
"@kubb/core": "4.32.1",
|
|
76
|
+
"@kubb/oas": "4.32.1",
|
|
77
|
+
"@kubb/plugin-oas": "4.32.1",
|
|
78
|
+
"@kubb/plugin-ts": "4.32.1"
|
|
79
79
|
},
|
|
80
80
|
"engines": {
|
|
81
81
|
"node": ">=20"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Faker-BgffWuWf.cjs","names":["transformers","schemaKeywords","parserFaker.joinItems","parserFaker.parse","schemaKeywords","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 bigint: () => 'faker.number.bigInt()',\n string: (min?: number, max?: number) => {\n if (max !== undefined && min !== undefined) {\n return `faker.string.alpha({ length: { min: ${min}, max: ${max} } })`\n }\n\n if (max !== undefined) {\n return `faker.string.alpha({ length: ${max} })`\n }\n\n if (min !== undefined) {\n return `faker.string.alpha({ length: ${min} })`\n }\n\n return 'faker.string.alpha()'\n },\n boolean: () => 'faker.datatype.boolean()',\n 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 bigint(_tree, _options) {\n return fakerKeywordMapper.bigint()\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 { isKeyword, schemaKeywords } 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 isRefToArray = tree.some((s) => isKeyword(s, schemaKeywords.schema) && s.args.type === 'array')\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 (isRefToArray) 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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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Faker-eDce4Xeu.js","names":["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 bigint: () => 'faker.number.bigInt()',\n string: (min?: number, max?: number) => {\n if (max !== undefined && min !== undefined) {\n return `faker.string.alpha({ length: { min: ${min}, max: ${max} } })`\n }\n\n if (max !== undefined) {\n return `faker.string.alpha({ length: ${max} })`\n }\n\n if (min !== undefined) {\n return `faker.string.alpha({ length: ${min} })`\n }\n\n return 'faker.string.alpha()'\n },\n boolean: () => 'faker.datatype.boolean()',\n 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 bigint(_tree, _options) {\n return fakerKeywordMapper.bigint()\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 { isKeyword, schemaKeywords } 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 isRefToArray = tree.some((s) => isKeyword(s, schemaKeywords.schema) && s.args.type === 'array')\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 (isRefToArray) 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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"}
|