@kubb/plugin-faker 3.0.0-alpha.10 → 3.0.0-alpha.11

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/kubb/kubb/packages/plugin-faker/dist/components.cjs","../src/components/OperationSchema.tsx","../src/SchemaGenerator.tsx","../src/components/Schema.tsx","../src/parser/index.ts","../src/plugin.ts","../src/OperationGenerator.tsx"],"names":["value","options","transformers","pluginTsName","schema","jsx","SchemaGenerator"],"mappings":"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","file":"/home/runner/work/kubb/kubb/packages/plugin-faker/dist/components.cjs","sourcesContent":[null,"import { Oas } from '@kubb/plugin-oas/components'\nimport { useOas, useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { File, useApp } from '@kubb/react'\n\nimport { SchemaGenerator } from '../SchemaGenerator.tsx'\n\nimport type { OperationSchema as OperationSchemaType } from '@kubb/plugin-oas'\nimport type { ReactNode } from 'react'\nimport type { FileMeta, PluginFaker } from '../types.ts'\nimport { Schema } from './Schema.tsx'\n\ntype Props = {\n description?: string\n}\n\nexport function OperationSchema({ description }: Props): ReactNode {\n return <Schema withData={false} description={description} />\n}\n\ntype FileProps = {}\n\nOperationSchema.File = function ({}: FileProps): ReactNode {\n const { plugin, pluginManager, mode } = useApp<PluginFaker>()\n\n const oas = useOas()\n const { getSchemas, getFile } = useOperationManager()\n const operation = useOperation()\n\n const file = getFile(operation)\n const schemas = getSchemas(operation)\n const generator = new SchemaGenerator(plugin.options, {\n oas,\n plugin,\n pluginManager,\n mode,\n override: plugin.options.override,\n })\n\n const items = [schemas.pathParams, schemas.queryParams, schemas.headerParams, schemas.statusCodes, schemas.request, schemas.response].flat().filter(Boolean)\n\n const mapItem = ({ name, schema, description, ...options }: OperationSchemaType, i: number) => {\n // used for this.options.typed\n const typeName = pluginManager.resolveName({\n name,\n pluginKey: [pluginTsName],\n type: 'type',\n })\n const typeFileName = pluginManager.resolveName({\n name: options.operationName || name,\n pluginKey: [pluginTsName],\n type: 'file',\n })\n\n // todo replace by getFile\n const typePath = pluginManager.resolvePath({\n baseName: typeFileName,\n pluginKey: [pluginTsName],\n options: { tag: options.operation?.getTags()[0]?.name },\n })\n\n const tree = generator.parse({ schema, name })\n\n return (\n <Oas.Schema key={i} name={name} value={schema} tree={tree}>\n {typeName && typePath && <File.Import isTypeOnly root={file.path} path={typePath} name={[typeName]} />}\n {plugin.options.dateParser && <File.Import path={plugin.options.dateParser} name={plugin.options.dateParser} />}\n\n {mode === 'split' && <Oas.Schema.Imports />}\n <OperationSchema description={description} />\n </Oas.Schema>\n )\n }\n\n return (\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n <File.Import name={['faker']} path=\"@faker-js/faker\" />\n {plugin.options.regexGenerator === 'randexp' && <File.Import name={'RandExp'} path={'randexp'} />}\n {items.map(mapItem)}\n </File>\n )\n}\n","import type { SchemaObject } from '@kubb/oas'\nimport { SchemaGenerator as Generator } from '@kubb/plugin-oas'\nimport type { SchemaMethodResult } from '@kubb/plugin-oas'\nimport { Oas } from '@kubb/plugin-oas/components'\nimport { App, createRoot } from '@kubb/react'\nimport { Schema } from './components/Schema.tsx'\nimport type { FileMeta, PluginFaker } from './types.ts'\n\nexport class SchemaGenerator extends Generator<PluginFaker['resolvedOptions'], PluginFaker> {\n async schema(name: string, schema: SchemaObject, options: PluginFaker['resolvedOptions']): SchemaMethodResult<FileMeta> {\n const { oas, pluginManager, plugin, mode, output } = this.context\n\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n const tree = this.parse({ schema, name })\n\n root.render(\n <App pluginManager={pluginManager} plugin={{ ...plugin, options }} mode={mode}>\n <Oas oas={oas}>\n <Oas.Schema name={name} value={schema} tree={tree}>\n <Schema.File />\n </Oas.Schema>\n </Oas>\n </App>,\n )\n\n return root.files\n }\n}\n","import { Oas } from '@kubb/plugin-oas/components'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { File, Function, useApp, useFile } from '@kubb/react'\n\nimport transformers from '@kubb/core/transformers'\nimport { schemaKeywords } from '@kubb/plugin-oas'\nimport { useSchema } from '@kubb/plugin-oas/hooks'\nimport type { ReactNode } from 'react'\nimport * as parserFaker from '../parser/index.ts'\nimport { pluginFakerName } from '../plugin.ts'\nimport type { PluginFaker } from '../types.ts'\n\ntype Props = {\n description?: string\n withData?: boolean\n}\n\nexport function Schema(props: Props): ReactNode {\n const { withData, description } = props\n const { tree, name } = useSchema()\n const {\n pluginManager,\n plugin: {\n options: { dateParser, regexGenerator, mapper, seed },\n },\n } = useApp<PluginFaker>()\n\n // all checks are also inside this.schema(React)\n const resolvedName = pluginManager.resolveName({\n name,\n pluginKey: [pluginFakerName],\n type: 'function',\n })\n\n const typeName = pluginManager.resolveName({\n name,\n pluginKey: [pluginTsName],\n type: 'type',\n })\n\n const fakerText = parserFaker.joinItems(\n tree\n .map((schema) => parserFaker.parse(undefined, schema, { name: resolvedName, typeName, seed, regexGenerator, mapper, withData, dateParser }))\n .filter(Boolean),\n )\n\n let fakerDefaultOverride: '' | '[]' | '{}' | undefined = undefined\n let fakerTextWithOverride = fakerText\n\n if (withData && fakerText.startsWith('{')) {\n fakerDefaultOverride = '{}'\n fakerTextWithOverride = `{\n ...${fakerText},\n ...data\n}`\n }\n\n if (withData && fakerText.startsWith('faker.helpers.arrayElements')) {\n fakerDefaultOverride = '[]'\n fakerTextWithOverride = `[\n ...${fakerText},\n ...data\n ]`\n }\n\n const params = fakerDefaultOverride ? `data: NonNullable<Partial<${typeName}>> = ${fakerDefaultOverride}` : `data?: NonNullable<Partial<${typeName}>>`\n\n return (\n <File.Source name={resolvedName} isExportable isIndexable>\n <Function\n export\n name={resolvedName}\n JSDoc={{ comments: [description ? `@description ${transformers.jsStringEscape(description)}` : undefined].filter(Boolean) }}\n params={withData ? params : ''}\n returnType={typeName ? `NonNullable<${typeName}>` : ''}\n >\n {seed ? `faker.seed(${JSON.stringify(seed)})` : ''}\n <br />\n <Function.Return>{fakerTextWithOverride}</Function.Return>\n </Function>\n <br />\n </File.Source>\n )\n}\n\ntype FileProps = {}\n\nSchema.File = function ({}: FileProps): ReactNode {\n const { pluginManager } = useApp<PluginFaker>()\n const { tree, schema } = useSchema()\n\n const withData = tree.some(\n (schema) =>\n schema.keyword === schemaKeywords.array ||\n schema.keyword === schemaKeywords.and ||\n schema.keyword === schemaKeywords.object ||\n schema.keyword === schemaKeywords.union ||\n schema.keyword === schemaKeywords.tuple,\n )\n\n return (\n <Oas.Schema.File output={pluginManager.config.output.path}>\n <Schema.Imports />\n <Schema description={schema?.description} withData={withData} />\n </Oas.Schema.File>\n )\n}\nSchema.Imports = (): ReactNode => {\n const {\n pluginManager,\n plugin: {\n options: { extName, dateParser, regexGenerator },\n },\n } = useApp<PluginFaker>()\n const { path: root } = useFile()\n const { name, tree, schema } = useSchema()\n\n // used for this.options.typed\n const typeName = pluginManager.resolveName({\n name,\n pluginKey: [pluginTsName],\n type: 'type',\n })\n\n const typeFileName = pluginManager.resolveName({\n name: name,\n pluginKey: [pluginTsName],\n type: 'file',\n })\n\n const typePath = pluginManager.resolvePath({\n baseName: typeFileName,\n pluginKey: [pluginTsName],\n })\n\n return (\n <>\n <File.Import name={['faker']} path=\"@faker-js/faker\" />\n {regexGenerator === 'randexp' && <File.Import name={'RandExp'} path={'randexp'} />}\n {dateParser && <File.Import path={dateParser} name={dateParser} />}\n {typeName && typePath && <File.Import isTypeOnly root={root} path={typePath} name={[typeName]} />}\n </>\n )\n}\n","import transformers from '@kubb/core/transformers'\nimport { SchemaGenerator, isKeyword, schemaKeywords } from '@kubb/plugin-oas'\n\nimport type { Schema, SchemaKeywordBase, SchemaKeywordMapper, SchemaMapper } from '@kubb/plugin-oas'\nimport type { Options } from '../types.ts'\n\nexport const fakerKeywordMapper = {\n any: () => 'undefined',\n unknown: () => 'unknown',\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 (min !== undefined) {\n return `faker.number.float({ min: ${min} })`\n }\n\n if (max !== undefined) {\n return `faker.number.float({ max: ${max} })`\n }\n\n return 'faker.number.float()'\n },\n integer: (min?: number, max?: number) => {\n if (max !== undefined && min !== undefined) {\n return `faker.number.int({ min: ${min}, max: ${max} })`\n }\n\n if (min !== undefined) {\n return `faker.number.int({ min: ${min} })`\n }\n\n if (max !== undefined) {\n return `faker.number.int({ max: ${max} })`\n }\n\n return 'faker.number.int()'\n },\n string: (min?: number, max?: number) => {\n if (max !== undefined && min !== undefined) {\n return `faker.string.alpha({ length: { min: ${min}, max: ${max} } })`\n }\n\n if (min !== undefined) {\n return `faker.string.alpha({ length: { min: ${min} } })`\n }\n\n if (max !== undefined) {\n return `faker.string.alpha({ length: { max: ${max} } })`\n }\n\n return 'faker.string.alpha()'\n },\n boolean: () => 'faker.datatype.boolean()',\n undefined: () => 'undefined',\n null: () => 'null',\n array: (items: string[] = []) => `faker.helpers.arrayElements([${items.join(', ')}]) as any`,\n tuple: (items: string[] = []) => `faker.helpers.arrayElements([${items.join(', ')}]) as any`,\n enum: (items: Array<string | number> = []) => `faker.helpers.arrayElement<any>([${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?: string) => {\n if (type === 'string') {\n if (parser) {\n return `${parser}(faker.date.anytime()).format(\"YYYY-MM-DD\")`\n }\n return 'faker.date.anytime().toString()'\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?: string) => {\n if (type === 'string') {\n if (parser) {\n return `${parser}(faker.date.anytime()).format(\"HH:mm:ss\")`\n }\n return 'faker.date.anytime().toString()'\n }\n return 'faker.date.anytime()'\n },\n uuid: () => 'faker.string.uuid()',\n url: () => 'faker.internet.url()',\n and: (items: string[] = []) => `Object.assign({}, ${items.join(', ')})`,\n object: () => 'object',\n ref: () => 'ref',\n matches: (value = '', regexGenerator: 'faker' | 'randexp' = 'faker') => {\n if (regexGenerator === 'randexp') {\n return `${transformers.toRegExpString(value, 'RandExp')}.gen()`\n }\n return `faker.helpers.fromRegExp(${transformers.toRegExpString(value)})`\n },\n email: () => 'faker.internet.email()',\n firstName: () => 'faker.person.firstName()',\n lastName: () => 'faker.person.lastName()',\n password: () => 'faker.internet.password()',\n phone: () => 'faker.phone.number()',\n blob: () => 'faker.image.imageUrl() 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 strict: undefined,\n deprecated: undefined,\n example: undefined,\n schema: undefined,\n catchall: undefined,\n name: undefined,\n} satisfies SchemaMapper<string | null | undefined>\n\n/**\n * @link based on https://github.com/cellular/oazapfts/blob/7ba226ebb15374e8483cc53e7532f1663179a22c/src/codegen/generate.ts#L398\n */\n\nfunction schemaKeywordsorter(a: Schema, b: Schema) {\n if (b.keyword === 'null') {\n return -1\n }\n\n return 0\n}\n\nexport function joinItems(items: string[]): string {\n switch (items.length) {\n case 0:\n return 'undefined'\n case 1:\n return items[0]!\n default:\n return fakerKeywordMapper.union(items)\n }\n}\n\ntype ParserOptions = {\n name: string\n typeName?: string\n description?: string\n\n seed?: number | number[]\n regexGenerator?: 'faker' | 'randexp'\n withData?: boolean\n dateParser?: Options['dateParser']\n mapper?: Record<string, string>\n}\n\nexport function parse(parent: Schema | undefined, current: Schema, options: ParserOptions): string | null | undefined {\n const value = fakerKeywordMapper[current.keyword as keyof typeof fakerKeywordMapper]\n\n if (!value) {\n return undefined\n }\n\n if (isKeyword(current, schemaKeywords.union)) {\n return fakerKeywordMapper.union(current.args.map((schema) => parse(current, schema, { ...options, withData: false })).filter(Boolean))\n }\n\n if (isKeyword(current, schemaKeywords.and)) {\n return fakerKeywordMapper.and(current.args.map((schema) => parse(current, schema, { ...options, withData: false })).filter(Boolean))\n }\n\n if (isKeyword(current, schemaKeywords.array)) {\n return fakerKeywordMapper.array(current.args.items.map((schema) => parse(current, schema, { ...options, withData: false })).filter(Boolean))\n }\n\n if (isKeyword(current, schemaKeywords.enum)) {\n return fakerKeywordMapper.enum(\n current.args.items.map((schema) => {\n if (schema.format === 'number') {\n return schema.name\n }\n return transformers.stringify(schema.name)\n }),\n )\n }\n\n if (isKeyword(current, schemaKeywords.ref)) {\n if (!current.args?.name) {\n throw new Error(`Name not defined for keyword ${current.keyword}`)\n }\n\n if (options.withData) {\n return `${current.args.name}(data)`\n }\n\n return `${current.args.name}()`\n }\n\n if (isKeyword(current, schemaKeywords.object)) {\n const argsObject = Object.entries(current.args?.properties || {})\n .filter((item) => {\n const schema = item[1]\n return schema && typeof schema.map === 'function'\n })\n .map(([name, schemas]) => {\n const nameSchema = schemas.find((schema) => schema.keyword === schemaKeywords.name) as SchemaKeywordMapper['name']\n const mappedName = nameSchema?.args || name\n\n // custom mapper(pluginOptions)\n if (options.mapper?.[mappedName]) {\n return `\"${name}\": ${options.mapper?.[mappedName]}`\n }\n\n return `\"${name}\": ${joinItems(\n schemas\n .sort(schemaKeywordsorter)\n .map((schema) => parse(current, schema, { ...options, withData: false }))\n .filter(Boolean),\n )}`\n })\n .join(',')\n\n return `{${argsObject}}`\n }\n\n if (isKeyword(current, schemaKeywords.tuple)) {\n if (Array.isArray(current.args.items)) {\n return fakerKeywordMapper.tuple(current.args.items.map((schema) => parse(current, schema, { ...options, withData: false })).filter(Boolean))\n }\n\n return parse(current, current.args.items, { ...options, withData: false })\n }\n\n if (isKeyword(current, schemaKeywords.const)) {\n if (current.args.format === 'number' && current.args.name !== undefined) {\n return fakerKeywordMapper.const(current.args.name?.toString())\n }\n return fakerKeywordMapper.const(transformers.stringify(current.args.value))\n }\n\n if (isKeyword(current, schemaKeywords.matches) && current.args) {\n return fakerKeywordMapper.matches(current.args, options.regexGenerator)\n }\n\n if (isKeyword(current, schemaKeywords.null) || isKeyword(current, schemaKeywords.undefined) || isKeyword(current, schemaKeywords.any)) {\n return value() || ''\n }\n\n if (isKeyword(current, schemaKeywords.string)) {\n if (parent) {\n const minSchema = SchemaGenerator.find([parent], schemaKeywords.min)\n const maxSchema = SchemaGenerator.find([parent], schemaKeywords.max)\n\n return fakerKeywordMapper.string(minSchema?.args, maxSchema?.args)\n }\n\n return fakerKeywordMapper.string()\n }\n\n if (isKeyword(current, schemaKeywords.number)) {\n if (parent) {\n const minSchema = SchemaGenerator.find([parent], schemaKeywords.min)\n const maxSchema = SchemaGenerator.find([parent], schemaKeywords.max)\n\n return fakerKeywordMapper.number(minSchema?.args, maxSchema?.args)\n }\n\n return fakerKeywordMapper.number()\n }\n\n if (isKeyword(current, schemaKeywords.integer)) {\n if (parent) {\n const minSchema = SchemaGenerator.find([parent], schemaKeywords.min)\n const maxSchema = SchemaGenerator.find([parent], schemaKeywords.max)\n\n return fakerKeywordMapper.integer(minSchema?.args, maxSchema?.args)\n }\n\n return fakerKeywordMapper.integer()\n }\n\n if (isKeyword(current, schemaKeywords.datetime)) {\n return fakerKeywordMapper.datetime()\n }\n\n if (isKeyword(current, schemaKeywords.date)) {\n return fakerKeywordMapper.date(current.args.type, options.dateParser)\n }\n\n if (isKeyword(current, schemaKeywords.time)) {\n return fakerKeywordMapper.time(current.args.type, options.dateParser)\n }\n\n if (current.keyword in fakerKeywordMapper && 'args' in current) {\n const value = fakerKeywordMapper[current.keyword as keyof typeof fakerKeywordMapper] as (typeof fakerKeywordMapper)['const']\n\n const options = JSON.stringify((current as SchemaKeywordBase<unknown>).args)\n\n return value(options)\n }\n\n if (current.keyword in fakerKeywordMapper) {\n return value()\n }\n\n return undefined\n}\n","import path from 'node:path'\n\nimport { FileManager, PluginManager, createPlugin } from '@kubb/core'\nimport { camelCase } from '@kubb/core/transformers'\nimport { renderTemplate } from '@kubb/core/utils'\nimport { pluginOasName } from '@kubb/plugin-oas'\n\nimport { pluginTsName } from '@kubb/plugin-ts'\n\nimport { OperationGenerator } from './OperationGenerator.tsx'\nimport { SchemaGenerator } from './SchemaGenerator.tsx'\n\nimport type { Plugin } from '@kubb/core'\nimport type { PluginOas } from '@kubb/plugin-oas'\nimport type { PluginFaker } from './types.ts'\n\nexport const pluginFakerName = 'plugin-faker' satisfies PluginFaker['name']\n\nexport const pluginFaker = createPlugin<PluginFaker>((options) => {\n const {\n output = { path: 'mocks' },\n seed,\n group,\n exclude = [],\n include,\n override = [],\n transformers = {},\n mapper = {},\n dateType = 'string',\n unknownType = 'any',\n dateParser,\n regexGenerator = 'faker',\n } = options\n const template = group?.output ? group.output : `${output.path}/{{tag}}Controller`\n\n return {\n name: pluginFakerName,\n output: {\n exportType: 'barrelNamed',\n ...output,\n },\n options: {\n extName: output.extName,\n transformers,\n dateType,\n seed,\n unknownType,\n dateParser,\n mapper,\n override,\n regexGenerator,\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 ?? FileManager.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 (options?.tag && group?.type === 'tag') {\n const tag = camelCase(options.tag)\n\n return path.resolve(root, renderTemplate(template, { tag }), baseName)\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 buildStart() {\n const [swaggerPlugin]: [Plugin<PluginOas>] = PluginManager.getDependedPlugins<PluginOas>(this.plugins, [pluginOasName])\n\n const oas = await swaggerPlugin.context.getOas()\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = FileManager.getMode(path.resolve(root, output.path))\n\n const schemaGenerator = new SchemaGenerator(this.plugin.options, {\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType: swaggerPlugin.context.contentType,\n include: undefined,\n override,\n mode,\n output: output.path,\n })\n\n const schemaFiles = await schemaGenerator.build()\n await this.addFile(...schemaFiles)\n\n const operationGenerator = new OperationGenerator(this.plugin.options, {\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType: swaggerPlugin.context.contentType,\n exclude,\n include,\n override,\n mode,\n })\n\n const operationFiles = await operationGenerator.build()\n await this.addFile(...operationFiles)\n\n if (this.config.output.exportType) {\n const barrelFiles = await this.fileManager.getBarrelFiles({\n root,\n output,\n files: this.fileManager.files,\n meta: {\n pluginKey: this.plugin.key,\n },\n logger: this.logger,\n })\n\n await this.addFile(...barrelFiles)\n }\n },\n }\n})\n","import { OperationGenerator as Generator } from '@kubb/plugin-oas'\nimport { Oas } from '@kubb/plugin-oas/components'\nimport { App, createRoot } from '@kubb/react'\n\nimport { OperationSchema } from './components/OperationSchema.tsx'\n\nimport type { Operation } from '@kubb/oas'\nimport type { OperationMethodResult } from '@kubb/plugin-oas'\nimport type { FileMeta, PluginFaker } from './types.ts'\n\nexport class OperationGenerator extends Generator<PluginFaker['resolvedOptions'], PluginFaker> {\n async operation(operation: Operation, options: PluginFaker['resolvedOptions']): OperationMethodResult<FileMeta> {\n const { oas, pluginManager, plugin, mode } = this.context\n\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n root.render(\n <App pluginManager={pluginManager} plugin={{ ...plugin, options }} mode={mode}>\n <Oas oas={oas} operations={[operation]} generator={this}>\n <Oas.Operation operation={operation}>\n <OperationSchema.File />\n </Oas.Operation>\n </Oas>\n </App>,\n )\n\n return root.files\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/parser/index.ts","../src/OperationGenerator.tsx","../src/plugin.ts","../src/components/Schema.tsx","../src/SchemaGenerator.tsx","../src/components/OperationSchema.tsx"],"names":["transformers","isKeyword","schemaKeywords","SchemaGenerator","value","options","Generator","createRoot","jsx","App","Oas","createPlugin","pluginOasName","pluginTsName","path","FileManager","camelCase","renderTemplate","PluginManager","useSchema","useApp","jsxs","File","Function","schema","useFile","Fragment","useOas","useOperationManager","useOperation"],"mappings":"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","file":"components.cjs","sourcesContent":["import transformers from '@kubb/core/transformers'\nimport { SchemaGenerator, isKeyword, schemaKeywords } from '@kubb/plugin-oas'\n\nimport type { Schema, SchemaKeywordBase, SchemaKeywordMapper, SchemaMapper } from '@kubb/plugin-oas'\nimport type { Options } from '../types.ts'\n\nexport const fakerKeywordMapper = {\n any: () => 'undefined',\n unknown: () => 'unknown',\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 (min !== undefined) {\n return `faker.number.float({ min: ${min} })`\n }\n\n if (max !== undefined) {\n return `faker.number.float({ max: ${max} })`\n }\n\n return 'faker.number.float()'\n },\n integer: (min?: number, max?: number) => {\n if (max !== undefined && min !== undefined) {\n return `faker.number.int({ min: ${min}, max: ${max} })`\n }\n\n if (min !== undefined) {\n return `faker.number.int({ min: ${min} })`\n }\n\n if (max !== undefined) {\n return `faker.number.int({ max: ${max} })`\n }\n\n return 'faker.number.int()'\n },\n string: (min?: number, max?: number) => {\n if (max !== undefined && min !== undefined) {\n return `faker.string.alpha({ length: { min: ${min}, max: ${max} } })`\n }\n\n if (min !== undefined) {\n return `faker.string.alpha({ length: { min: ${min} } })`\n }\n\n if (max !== undefined) {\n return `faker.string.alpha({ length: { max: ${max} } })`\n }\n\n return 'faker.string.alpha()'\n },\n boolean: () => 'faker.datatype.boolean()',\n undefined: () => 'undefined',\n null: () => 'null',\n array: (items: string[] = []) => `faker.helpers.arrayElements([${items.join(', ')}]) as any`,\n tuple: (items: string[] = []) => `faker.helpers.arrayElements([${items.join(', ')}]) as any`,\n enum: (items: Array<string | number> = []) => `faker.helpers.arrayElement<any>([${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?: string) => {\n if (type === 'string') {\n if (parser) {\n return `${parser}(faker.date.anytime()).format(\"YYYY-MM-DD\")`\n }\n return 'faker.date.anytime().toString()'\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?: string) => {\n if (type === 'string') {\n if (parser) {\n return `${parser}(faker.date.anytime()).format(\"HH:mm:ss\")`\n }\n return 'faker.date.anytime().toString()'\n }\n return 'faker.date.anytime()'\n },\n uuid: () => 'faker.string.uuid()',\n url: () => 'faker.internet.url()',\n and: (items: string[] = []) => `Object.assign({}, ${items.join(', ')})`,\n object: () => 'object',\n ref: () => 'ref',\n matches: (value = '', regexGenerator: 'faker' | 'randexp' = 'faker') => {\n if (regexGenerator === 'randexp') {\n return `${transformers.toRegExpString(value, 'RandExp')}.gen()`\n }\n return `faker.helpers.fromRegExp(${transformers.toRegExpString(value)})`\n },\n email: () => 'faker.internet.email()',\n firstName: () => 'faker.person.firstName()',\n lastName: () => 'faker.person.lastName()',\n password: () => 'faker.internet.password()',\n phone: () => 'faker.phone.number()',\n blob: () => 'faker.image.imageUrl() 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 strict: undefined,\n deprecated: undefined,\n example: undefined,\n schema: undefined,\n catchall: undefined,\n name: undefined,\n} satisfies SchemaMapper<string | null | undefined>\n\n/**\n * @link based on https://github.com/cellular/oazapfts/blob/7ba226ebb15374e8483cc53e7532f1663179a22c/src/codegen/generate.ts#L398\n */\n\nfunction schemaKeywordsorter(a: Schema, b: Schema) {\n if (b.keyword === 'null') {\n return -1\n }\n\n return 0\n}\n\nexport function joinItems(items: string[]): string {\n switch (items.length) {\n case 0:\n return 'undefined'\n case 1:\n return items[0]!\n default:\n return fakerKeywordMapper.union(items)\n }\n}\n\ntype ParserOptions = {\n name: string\n typeName?: string\n description?: string\n\n seed?: number | number[]\n regexGenerator?: 'faker' | 'randexp'\n withData?: boolean\n dateParser?: Options['dateParser']\n mapper?: Record<string, string>\n}\n\nexport function parse(parent: Schema | undefined, current: Schema, options: ParserOptions): string | null | undefined {\n const value = fakerKeywordMapper[current.keyword as keyof typeof fakerKeywordMapper]\n\n if (!value) {\n return undefined\n }\n\n if (isKeyword(current, schemaKeywords.union)) {\n return fakerKeywordMapper.union(current.args.map((schema) => parse(current, schema, { ...options, withData: false })).filter(Boolean))\n }\n\n if (isKeyword(current, schemaKeywords.and)) {\n return fakerKeywordMapper.and(current.args.map((schema) => parse(current, schema, { ...options, withData: false })).filter(Boolean))\n }\n\n if (isKeyword(current, schemaKeywords.array)) {\n return fakerKeywordMapper.array(current.args.items.map((schema) => parse(current, schema, { ...options, withData: false })).filter(Boolean))\n }\n\n if (isKeyword(current, schemaKeywords.enum)) {\n return fakerKeywordMapper.enum(\n current.args.items.map((schema) => {\n if (schema.format === 'number') {\n return schema.name\n }\n return transformers.stringify(schema.name)\n }),\n )\n }\n\n if (isKeyword(current, schemaKeywords.ref)) {\n if (!current.args?.name) {\n throw new Error(`Name not defined for keyword ${current.keyword}`)\n }\n\n if (options.withData) {\n return `${current.args.name}(data)`\n }\n\n return `${current.args.name}()`\n }\n\n if (isKeyword(current, schemaKeywords.object)) {\n const argsObject = Object.entries(current.args?.properties || {})\n .filter((item) => {\n const schema = item[1]\n return schema && typeof schema.map === 'function'\n })\n .map(([name, schemas]) => {\n const nameSchema = schemas.find((schema) => schema.keyword === schemaKeywords.name) as SchemaKeywordMapper['name']\n const mappedName = nameSchema?.args || name\n\n // custom mapper(pluginOptions)\n if (options.mapper?.[mappedName]) {\n return `\"${name}\": ${options.mapper?.[mappedName]}`\n }\n\n return `\"${name}\": ${joinItems(\n schemas\n .sort(schemaKeywordsorter)\n .map((schema) => parse(current, schema, { ...options, withData: false }))\n .filter(Boolean),\n )}`\n })\n .join(',')\n\n return `{${argsObject}}`\n }\n\n if (isKeyword(current, schemaKeywords.tuple)) {\n if (Array.isArray(current.args.items)) {\n return fakerKeywordMapper.tuple(current.args.items.map((schema) => parse(current, schema, { ...options, withData: false })).filter(Boolean))\n }\n\n return parse(current, current.args.items, { ...options, withData: false })\n }\n\n if (isKeyword(current, schemaKeywords.const)) {\n if (current.args.format === 'number' && current.args.name !== undefined) {\n return fakerKeywordMapper.const(current.args.name?.toString())\n }\n return fakerKeywordMapper.const(transformers.stringify(current.args.value))\n }\n\n if (isKeyword(current, schemaKeywords.matches) && current.args) {\n return fakerKeywordMapper.matches(current.args, options.regexGenerator)\n }\n\n if (isKeyword(current, schemaKeywords.null) || isKeyword(current, schemaKeywords.undefined) || isKeyword(current, schemaKeywords.any)) {\n return value() || ''\n }\n\n if (isKeyword(current, schemaKeywords.string)) {\n if (parent) {\n const minSchema = SchemaGenerator.find([parent], schemaKeywords.min)\n const maxSchema = SchemaGenerator.find([parent], schemaKeywords.max)\n\n return fakerKeywordMapper.string(minSchema?.args, maxSchema?.args)\n }\n\n return fakerKeywordMapper.string()\n }\n\n if (isKeyword(current, schemaKeywords.number)) {\n if (parent) {\n const minSchema = SchemaGenerator.find([parent], schemaKeywords.min)\n const maxSchema = SchemaGenerator.find([parent], schemaKeywords.max)\n\n return fakerKeywordMapper.number(minSchema?.args, maxSchema?.args)\n }\n\n return fakerKeywordMapper.number()\n }\n\n if (isKeyword(current, schemaKeywords.integer)) {\n if (parent) {\n const minSchema = SchemaGenerator.find([parent], schemaKeywords.min)\n const maxSchema = SchemaGenerator.find([parent], schemaKeywords.max)\n\n return fakerKeywordMapper.integer(minSchema?.args, maxSchema?.args)\n }\n\n return fakerKeywordMapper.integer()\n }\n\n if (isKeyword(current, schemaKeywords.datetime)) {\n return fakerKeywordMapper.datetime()\n }\n\n if (isKeyword(current, schemaKeywords.date)) {\n return fakerKeywordMapper.date(current.args.type, options.dateParser)\n }\n\n if (isKeyword(current, schemaKeywords.time)) {\n return fakerKeywordMapper.time(current.args.type, options.dateParser)\n }\n\n if (current.keyword in fakerKeywordMapper && 'args' in current) {\n const value = fakerKeywordMapper[current.keyword as keyof typeof fakerKeywordMapper] as (typeof fakerKeywordMapper)['const']\n\n const options = JSON.stringify((current as SchemaKeywordBase<unknown>).args)\n\n return value(options)\n }\n\n if (current.keyword in fakerKeywordMapper) {\n return value()\n }\n\n return undefined\n}\n","import { OperationGenerator as Generator } from '@kubb/plugin-oas'\nimport { Oas } from '@kubb/plugin-oas/components'\nimport { App, createRoot } from '@kubb/react'\n\nimport { OperationSchema } from './components/OperationSchema.tsx'\n\nimport type { Operation } from '@kubb/oas'\nimport type { OperationMethodResult } from '@kubb/plugin-oas'\nimport type { FileMeta, PluginFaker } from './types.ts'\n\nexport class OperationGenerator extends Generator<PluginFaker['resolvedOptions'], PluginFaker> {\n async operation(operation: Operation, options: PluginFaker['resolvedOptions']): OperationMethodResult<FileMeta> {\n const { oas, pluginManager, plugin, mode } = this.context\n\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n root.render(\n <App pluginManager={pluginManager} plugin={{ ...plugin, options }} mode={mode}>\n <Oas oas={oas} operations={[operation]} generator={this}>\n <Oas.Operation operation={operation}>\n <OperationSchema.File />\n </Oas.Operation>\n </Oas>\n </App>,\n )\n\n return root.files\n }\n}\n","import path from 'node:path'\n\nimport { FileManager, PluginManager, createPlugin } from '@kubb/core'\nimport { camelCase } from '@kubb/core/transformers'\nimport { renderTemplate } from '@kubb/core/utils'\nimport { pluginOasName } from '@kubb/plugin-oas'\n\nimport { pluginTsName } from '@kubb/plugin-ts'\n\nimport { OperationGenerator } from './OperationGenerator.tsx'\nimport { SchemaGenerator } from './SchemaGenerator.tsx'\n\nimport type { Plugin } from '@kubb/core'\nimport type { PluginOas } from '@kubb/plugin-oas'\nimport type { PluginFaker } from './types.ts'\n\nexport const pluginFakerName = 'plugin-faker' satisfies PluginFaker['name']\n\nexport const pluginFaker = createPlugin<PluginFaker>((options) => {\n const {\n output = { path: 'mocks' },\n seed,\n group,\n exclude = [],\n include,\n override = [],\n transformers = {},\n mapper = {},\n dateType = 'string',\n unknownType = 'any',\n dateParser,\n regexGenerator = 'faker',\n } = options\n const template = group?.output ? group.output : `${output.path}/{{tag}}Controller`\n\n return {\n name: pluginFakerName,\n output: {\n exportType: 'barrelNamed',\n ...output,\n },\n options: {\n extName: output.extName,\n transformers,\n dateType,\n seed,\n unknownType,\n dateParser,\n mapper,\n override,\n regexGenerator,\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 ?? FileManager.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 (options?.tag && group?.type === 'tag') {\n const tag = camelCase(options.tag)\n\n return path.resolve(root, renderTemplate(template, { tag }), baseName)\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 buildStart() {\n const [swaggerPlugin]: [Plugin<PluginOas>] = PluginManager.getDependedPlugins<PluginOas>(this.plugins, [pluginOasName])\n\n const oas = await swaggerPlugin.context.getOas()\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = FileManager.getMode(path.resolve(root, output.path))\n\n const schemaGenerator = new SchemaGenerator(this.plugin.options, {\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType: swaggerPlugin.context.contentType,\n include: undefined,\n override,\n mode,\n output: output.path,\n })\n\n const schemaFiles = await schemaGenerator.build()\n await this.addFile(...schemaFiles)\n\n const operationGenerator = new OperationGenerator(this.plugin.options, {\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType: swaggerPlugin.context.contentType,\n exclude,\n include,\n override,\n mode,\n })\n\n const operationFiles = await operationGenerator.build()\n await this.addFile(...operationFiles)\n\n if (this.config.output.exportType) {\n const barrelFiles = await this.fileManager.getBarrelFiles({\n root,\n output,\n files: this.fileManager.files,\n meta: {\n pluginKey: this.plugin.key,\n },\n logger: this.logger,\n })\n\n await this.addFile(...barrelFiles)\n }\n },\n }\n})\n","import { Oas } from '@kubb/plugin-oas/components'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { File, Function, useApp, useFile } from '@kubb/react'\n\nimport transformers from '@kubb/core/transformers'\nimport { schemaKeywords } from '@kubb/plugin-oas'\nimport { useSchema } from '@kubb/plugin-oas/hooks'\nimport type { ReactNode } from 'react'\nimport * as parserFaker from '../parser/index.ts'\nimport { pluginFakerName } from '../plugin.ts'\nimport type { PluginFaker } from '../types.ts'\n\ntype Props = {\n description?: string\n withData?: boolean\n}\n\nexport function Schema(props: Props): ReactNode {\n const { withData, description } = props\n const { tree, name } = useSchema()\n const {\n pluginManager,\n plugin: {\n options: { dateParser, regexGenerator, mapper, seed },\n },\n } = useApp<PluginFaker>()\n\n // all checks are also inside this.schema(React)\n const resolvedName = pluginManager.resolveName({\n name,\n pluginKey: [pluginFakerName],\n type: 'function',\n })\n\n const typeName = pluginManager.resolveName({\n name,\n pluginKey: [pluginTsName],\n type: 'type',\n })\n\n const fakerText = parserFaker.joinItems(\n tree\n .map((schema) => parserFaker.parse(undefined, schema, { name: resolvedName, typeName, seed, regexGenerator, mapper, withData, dateParser }))\n .filter(Boolean),\n )\n\n let fakerDefaultOverride: '' | '[]' | '{}' | undefined = undefined\n let fakerTextWithOverride = fakerText\n\n if (withData && fakerText.startsWith('{')) {\n fakerDefaultOverride = '{}'\n fakerTextWithOverride = `{\n ...${fakerText},\n ...data\n}`\n }\n\n if (withData && fakerText.startsWith('faker.helpers.arrayElements')) {\n fakerDefaultOverride = '[]'\n fakerTextWithOverride = `[\n ...${fakerText},\n ...data\n ]`\n }\n\n const params = fakerDefaultOverride ? `data: NonNullable<Partial<${typeName}>> = ${fakerDefaultOverride}` : `data?: NonNullable<Partial<${typeName}>>`\n\n return (\n <File.Source name={resolvedName} isExportable isIndexable>\n <Function\n export\n name={resolvedName}\n JSDoc={{ comments: [description ? `@description ${transformers.jsStringEscape(description)}` : undefined].filter(Boolean) }}\n params={withData ? params : ''}\n returnType={typeName ? `NonNullable<${typeName}>` : ''}\n >\n {seed ? `faker.seed(${JSON.stringify(seed)})` : ''}\n <br />\n <Function.Return>{fakerTextWithOverride}</Function.Return>\n </Function>\n <br />\n </File.Source>\n )\n}\n\ntype FileProps = {}\n\nSchema.File = function ({}: FileProps): ReactNode {\n const { pluginManager } = useApp<PluginFaker>()\n const { tree, schema } = useSchema()\n\n const withData = tree.some(\n (schema) =>\n schema.keyword === schemaKeywords.array ||\n schema.keyword === schemaKeywords.and ||\n schema.keyword === schemaKeywords.object ||\n schema.keyword === schemaKeywords.union ||\n schema.keyword === schemaKeywords.tuple,\n )\n\n return (\n <Oas.Schema.File output={pluginManager.config.output.path}>\n <Schema.Imports />\n <Schema description={schema?.description} withData={withData} />\n </Oas.Schema.File>\n )\n}\nSchema.Imports = (): ReactNode => {\n const {\n pluginManager,\n plugin: {\n options: { extName, dateParser, regexGenerator },\n },\n } = useApp<PluginFaker>()\n const { path: root } = useFile()\n const { name, tree, schema } = useSchema()\n\n // used for this.options.typed\n const typeName = pluginManager.resolveName({\n name,\n pluginKey: [pluginTsName],\n type: 'type',\n })\n\n const typeFileName = pluginManager.resolveName({\n name: name,\n pluginKey: [pluginTsName],\n type: 'file',\n })\n\n const typePath = pluginManager.resolvePath({\n baseName: typeFileName,\n pluginKey: [pluginTsName],\n })\n\n return (\n <>\n <File.Import name={['faker']} path=\"@faker-js/faker\" />\n {regexGenerator === 'randexp' && <File.Import name={'RandExp'} path={'randexp'} />}\n {dateParser && <File.Import path={dateParser} name={dateParser} />}\n {typeName && typePath && <File.Import isTypeOnly root={root} path={typePath} name={[typeName]} />}\n </>\n )\n}\n","import type { SchemaObject } from '@kubb/oas'\nimport { SchemaGenerator as Generator } from '@kubb/plugin-oas'\nimport type { SchemaMethodResult } from '@kubb/plugin-oas'\nimport { Oas } from '@kubb/plugin-oas/components'\nimport { App, createRoot } from '@kubb/react'\nimport { Schema } from './components/Schema.tsx'\nimport type { FileMeta, PluginFaker } from './types.ts'\n\nexport class SchemaGenerator extends Generator<PluginFaker['resolvedOptions'], PluginFaker> {\n async schema(name: string, schema: SchemaObject, options: PluginFaker['resolvedOptions']): SchemaMethodResult<FileMeta> {\n const { oas, pluginManager, plugin, mode, output } = this.context\n\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n const tree = this.parse({ schema, name })\n\n root.render(\n <App pluginManager={pluginManager} plugin={{ ...plugin, options }} mode={mode}>\n <Oas oas={oas}>\n <Oas.Schema name={name} value={schema} tree={tree}>\n <Schema.File />\n </Oas.Schema>\n </Oas>\n </App>,\n )\n\n return root.files\n }\n}\n","import { Oas } from '@kubb/plugin-oas/components'\nimport { useOas, useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { File, useApp } from '@kubb/react'\n\nimport { SchemaGenerator } from '../SchemaGenerator.tsx'\n\nimport type { OperationSchema as OperationSchemaType } from '@kubb/plugin-oas'\nimport type { ReactNode } from 'react'\nimport type { FileMeta, PluginFaker } from '../types.ts'\nimport { Schema } from './Schema.tsx'\n\ntype Props = {\n description?: string\n}\n\nexport function OperationSchema({ description }: Props): ReactNode {\n return <Schema withData={false} description={description} />\n}\n\ntype FileProps = {}\n\nOperationSchema.File = function ({}: FileProps): ReactNode {\n const { plugin, pluginManager, mode } = useApp<PluginFaker>()\n\n const oas = useOas()\n const { getSchemas, getFile } = useOperationManager()\n const operation = useOperation()\n\n const file = getFile(operation)\n const schemas = getSchemas(operation)\n const generator = new SchemaGenerator(plugin.options, {\n oas,\n plugin,\n pluginManager,\n mode,\n override: plugin.options.override,\n })\n\n const items = [schemas.pathParams, schemas.queryParams, schemas.headerParams, schemas.statusCodes, schemas.request, schemas.response].flat().filter(Boolean)\n\n const mapItem = ({ name, schema, description, ...options }: OperationSchemaType, i: number) => {\n // used for this.options.typed\n const typeName = pluginManager.resolveName({\n name,\n pluginKey: [pluginTsName],\n type: 'type',\n })\n const typeFileName = pluginManager.resolveName({\n name: options.operationName || name,\n pluginKey: [pluginTsName],\n type: 'file',\n })\n\n // todo replace by getFile\n const typePath = pluginManager.resolvePath({\n baseName: typeFileName,\n pluginKey: [pluginTsName],\n options: { tag: options.operation?.getTags()[0]?.name },\n })\n\n const tree = generator.parse({ schema, name })\n\n return (\n <Oas.Schema key={i} name={name} value={schema} tree={tree}>\n {typeName && typePath && <File.Import isTypeOnly root={file.path} path={typePath} name={[typeName]} />}\n {plugin.options.dateParser && <File.Import path={plugin.options.dateParser} name={plugin.options.dateParser} />}\n\n {mode === 'split' && <Oas.Schema.Imports />}\n <OperationSchema description={description} />\n </Oas.Schema>\n )\n }\n\n return (\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n <File.Import name={['faker']} path=\"@faker-js/faker\" />\n {plugin.options.regexGenerator === 'randexp' && <File.Import name={'RandExp'} path={'randexp'} />}\n {items.map(mapItem)}\n </File>\n )\n}\n"]}
@@ -1,25 +1,15 @@
1
- // src/components/OperationSchema.tsx
2
- import { Oas as Oas4 } from "@kubb/plugin-oas/components";
3
- import { useOas, useOperation, useOperationManager } from "@kubb/plugin-oas/hooks";
4
- import { pluginTsName as pluginTsName3 } from "@kubb/plugin-ts";
5
- import { File as File2, useApp as useApp2 } from "@kubb/react";
6
-
7
- // src/SchemaGenerator.tsx
8
- import { SchemaGenerator as Generator2 } from "@kubb/plugin-oas";
9
- import { Oas as Oas3 } from "@kubb/plugin-oas/components";
10
- import { App as App2, createRoot as createRoot2 } from "@kubb/react";
1
+ import { Oas } from '@kubb/plugin-oas/components';
2
+ import { useSchema, useOas, useOperationManager, useOperation } from '@kubb/plugin-oas/hooks';
3
+ import { pluginTsName } from '@kubb/plugin-ts';
4
+ import { createRoot, App, useApp, File, Function, useFile } from '@kubb/react';
5
+ import { pluginOasName, SchemaGenerator, OperationGenerator as OperationGenerator$1, schemaKeywords, isKeyword } from '@kubb/plugin-oas';
6
+ import transformers, { camelCase } from '@kubb/core/transformers';
7
+ import path from 'node:path';
8
+ import { createPlugin, FileManager, PluginManager } from '@kubb/core';
9
+ import { renderTemplate } from '@kubb/core/utils';
10
+ import { jsx, jsxs, Fragment } from '@kubb/react/jsx-runtime';
11
11
 
12
- // src/components/Schema.tsx
13
- import { Oas as Oas2 } from "@kubb/plugin-oas/components";
14
- import { pluginTsName as pluginTsName2 } from "@kubb/plugin-ts";
15
- import { File, Function, useApp, useFile } from "@kubb/react";
16
- import transformers2 from "@kubb/core/transformers";
17
- import { schemaKeywords as schemaKeywords2 } from "@kubb/plugin-oas";
18
- import { useSchema } from "@kubb/plugin-oas/hooks";
19
-
20
- // src/parser/index.ts
21
- import transformers from "@kubb/core/transformers";
22
- import { SchemaGenerator, isKeyword, schemaKeywords } from "@kubb/plugin-oas";
12
+ // src/components/OperationSchema.tsx
23
13
  var fakerKeywordMapper = {
24
14
  any: () => "undefined",
25
15
  unknown: () => "unknown",
@@ -257,21 +247,7 @@ function parse(parent, current, options) {
257
247
  }
258
248
  return void 0;
259
249
  }
260
-
261
- // src/plugin.ts
262
- import path from "node:path";
263
- import { FileManager, PluginManager, createPlugin } from "@kubb/core";
264
- import { camelCase } from "@kubb/core/transformers";
265
- import { renderTemplate } from "@kubb/core/utils";
266
- import { pluginOasName } from "@kubb/plugin-oas";
267
- import { pluginTsName } from "@kubb/plugin-ts";
268
-
269
- // src/OperationGenerator.tsx
270
- import { OperationGenerator as Generator } from "@kubb/plugin-oas";
271
- import { Oas } from "@kubb/plugin-oas/components";
272
- import { App, createRoot } from "@kubb/react";
273
- import { jsx } from "@kubb/react/jsx-runtime";
274
- var OperationGenerator = class extends Generator {
250
+ var OperationGenerator = class extends OperationGenerator$1 {
275
251
  async operation(operation, options) {
276
252
  const { oas, pluginManager, plugin, mode } = this.context;
277
253
  const root = createRoot({
@@ -286,7 +262,7 @@ var OperationGenerator = class extends Generator {
286
262
 
287
263
  // src/plugin.ts
288
264
  var pluginFakerName = "plugin-faker";
289
- var pluginFaker = createPlugin((options) => {
265
+ createPlugin((options) => {
290
266
  const {
291
267
  output = { path: "mocks" },
292
268
  seed,
@@ -386,9 +362,6 @@ var pluginFaker = createPlugin((options) => {
386
362
  }
387
363
  };
388
364
  });
389
-
390
- // src/components/Schema.tsx
391
- import { Fragment, jsx as jsx2, jsxs } from "@kubb/react/jsx-runtime";
392
365
  function Schema(props) {
393
366
  const { withData, description } = props;
394
367
  const { tree, name } = useSchema();
@@ -405,7 +378,7 @@ function Schema(props) {
405
378
  });
406
379
  const typeName = pluginManager.resolveName({
407
380
  name,
408
- pluginKey: [pluginTsName2],
381
+ pluginKey: [pluginTsName],
409
382
  type: "type"
410
383
  });
411
384
  const fakerText = joinItems(
@@ -434,28 +407,28 @@ function Schema(props) {
434
407
  {
435
408
  export: true,
436
409
  name: resolvedName,
437
- JSDoc: { comments: [description ? `@description ${transformers2.jsStringEscape(description)}` : void 0].filter(Boolean) },
410
+ JSDoc: { comments: [description ? `@description ${transformers.jsStringEscape(description)}` : void 0].filter(Boolean) },
438
411
  params: withData ? params : "",
439
412
  returnType: typeName ? `NonNullable<${typeName}>` : "",
440
413
  children: [
441
414
  seed ? `faker.seed(${JSON.stringify(seed)})` : "",
442
- /* @__PURE__ */ jsx2("br", {}),
443
- /* @__PURE__ */ jsx2(Function.Return, { children: fakerTextWithOverride })
415
+ /* @__PURE__ */ jsx("br", {}),
416
+ /* @__PURE__ */ jsx(Function.Return, { children: fakerTextWithOverride })
444
417
  ]
445
418
  }
446
419
  ),
447
- /* @__PURE__ */ jsx2("br", {})
420
+ /* @__PURE__ */ jsx("br", {})
448
421
  ] });
449
422
  }
450
423
  Schema.File = function({}) {
451
424
  const { pluginManager } = useApp();
452
425
  const { tree, schema } = useSchema();
453
426
  const withData = tree.some(
454
- (schema2) => schema2.keyword === schemaKeywords2.array || schema2.keyword === schemaKeywords2.and || schema2.keyword === schemaKeywords2.object || schema2.keyword === schemaKeywords2.union || schema2.keyword === schemaKeywords2.tuple
427
+ (schema2) => schema2.keyword === schemaKeywords.array || schema2.keyword === schemaKeywords.and || schema2.keyword === schemaKeywords.object || schema2.keyword === schemaKeywords.union || schema2.keyword === schemaKeywords.tuple
455
428
  );
456
- return /* @__PURE__ */ jsxs(Oas2.Schema.File, { output: pluginManager.config.output.path, children: [
457
- /* @__PURE__ */ jsx2(Schema.Imports, {}),
458
- /* @__PURE__ */ jsx2(Schema, { description: schema?.description, withData })
429
+ return /* @__PURE__ */ jsxs(Oas.Schema.File, { output: pluginManager.config.output.path, children: [
430
+ /* @__PURE__ */ jsx(Schema.Imports, {}),
431
+ /* @__PURE__ */ jsx(Schema, { description: schema?.description, withData })
459
432
  ] });
460
433
  };
461
434
  Schema.Imports = () => {
@@ -469,49 +442,43 @@ Schema.Imports = () => {
469
442
  const { name, tree, schema } = useSchema();
470
443
  const typeName = pluginManager.resolveName({
471
444
  name,
472
- pluginKey: [pluginTsName2],
445
+ pluginKey: [pluginTsName],
473
446
  type: "type"
474
447
  });
475
448
  const typeFileName = pluginManager.resolveName({
476
449
  name,
477
- pluginKey: [pluginTsName2],
450
+ pluginKey: [pluginTsName],
478
451
  type: "file"
479
452
  });
480
453
  const typePath = pluginManager.resolvePath({
481
454
  baseName: typeFileName,
482
- pluginKey: [pluginTsName2]
455
+ pluginKey: [pluginTsName]
483
456
  });
484
457
  return /* @__PURE__ */ jsxs(Fragment, { children: [
485
- /* @__PURE__ */ jsx2(File.Import, { name: ["faker"], path: "@faker-js/faker" }),
486
- regexGenerator === "randexp" && /* @__PURE__ */ jsx2(File.Import, { name: "RandExp", path: "randexp" }),
487
- dateParser && /* @__PURE__ */ jsx2(File.Import, { path: dateParser, name: dateParser }),
488
- typeName && typePath && /* @__PURE__ */ jsx2(File.Import, { isTypeOnly: true, root, path: typePath, name: [typeName] })
458
+ /* @__PURE__ */ jsx(File.Import, { name: ["faker"], path: "@faker-js/faker" }),
459
+ regexGenerator === "randexp" && /* @__PURE__ */ jsx(File.Import, { name: "RandExp", path: "randexp" }),
460
+ dateParser && /* @__PURE__ */ jsx(File.Import, { path: dateParser, name: dateParser }),
461
+ typeName && typePath && /* @__PURE__ */ jsx(File.Import, { isTypeOnly: true, root, path: typePath, name: [typeName] })
489
462
  ] });
490
463
  };
491
-
492
- // src/SchemaGenerator.tsx
493
- import { jsx as jsx3 } from "@kubb/react/jsx-runtime";
494
- var SchemaGenerator2 = class extends Generator2 {
464
+ var SchemaGenerator2 = class extends SchemaGenerator {
495
465
  async schema(name, schema, options) {
496
466
  const { oas, pluginManager, plugin, mode, output } = this.context;
497
- const root = createRoot2({
467
+ const root = createRoot({
498
468
  logger: pluginManager.logger
499
469
  });
500
470
  const tree = this.parse({ schema, name });
501
471
  root.render(
502
- /* @__PURE__ */ jsx3(App2, { pluginManager, plugin: { ...plugin, options }, mode, children: /* @__PURE__ */ jsx3(Oas3, { oas, children: /* @__PURE__ */ jsx3(Oas3.Schema, { name, value: schema, tree, children: /* @__PURE__ */ jsx3(Schema.File, {}) }) }) })
472
+ /* @__PURE__ */ jsx(App, { pluginManager, plugin: { ...plugin, options }, mode, children: /* @__PURE__ */ jsx(Oas, { oas, children: /* @__PURE__ */ jsx(Oas.Schema, { name, value: schema, tree, children: /* @__PURE__ */ jsx(Schema.File, {}) }) }) })
503
473
  );
504
474
  return root.files;
505
475
  }
506
476
  };
507
-
508
- // src/components/OperationSchema.tsx
509
- import { jsx as jsx4, jsxs as jsxs2 } from "@kubb/react/jsx-runtime";
510
477
  function OperationSchema({ description }) {
511
- return /* @__PURE__ */ jsx4(Schema, { withData: false, description });
478
+ return /* @__PURE__ */ jsx(Schema, { withData: false, description });
512
479
  }
513
480
  OperationSchema.File = function({}) {
514
- const { plugin, pluginManager, mode } = useApp2();
481
+ const { plugin, pluginManager, mode } = useApp();
515
482
  const oas = useOas();
516
483
  const { getSchemas, getFile } = useOperationManager();
517
484
  const operation = useOperation();
@@ -528,35 +495,34 @@ OperationSchema.File = function({}) {
528
495
  const mapItem = ({ name, schema, description, ...options }, i) => {
529
496
  const typeName = pluginManager.resolveName({
530
497
  name,
531
- pluginKey: [pluginTsName3],
498
+ pluginKey: [pluginTsName],
532
499
  type: "type"
533
500
  });
534
501
  const typeFileName = pluginManager.resolveName({
535
502
  name: options.operationName || name,
536
- pluginKey: [pluginTsName3],
503
+ pluginKey: [pluginTsName],
537
504
  type: "file"
538
505
  });
539
506
  const typePath = pluginManager.resolvePath({
540
507
  baseName: typeFileName,
541
- pluginKey: [pluginTsName3],
508
+ pluginKey: [pluginTsName],
542
509
  options: { tag: options.operation?.getTags()[0]?.name }
543
510
  });
544
511
  const tree = generator.parse({ schema, name });
545
- return /* @__PURE__ */ jsxs2(Oas4.Schema, { name, value: schema, tree, children: [
546
- typeName && typePath && /* @__PURE__ */ jsx4(File2.Import, { isTypeOnly: true, root: file.path, path: typePath, name: [typeName] }),
547
- plugin.options.dateParser && /* @__PURE__ */ jsx4(File2.Import, { path: plugin.options.dateParser, name: plugin.options.dateParser }),
548
- mode === "split" && /* @__PURE__ */ jsx4(Oas4.Schema.Imports, {}),
549
- /* @__PURE__ */ jsx4(OperationSchema, { description })
512
+ return /* @__PURE__ */ jsxs(Oas.Schema, { name, value: schema, tree, children: [
513
+ typeName && typePath && /* @__PURE__ */ jsx(File.Import, { isTypeOnly: true, root: file.path, path: typePath, name: [typeName] }),
514
+ plugin.options.dateParser && /* @__PURE__ */ jsx(File.Import, { path: plugin.options.dateParser, name: plugin.options.dateParser }),
515
+ mode === "split" && /* @__PURE__ */ jsx(Oas.Schema.Imports, {}),
516
+ /* @__PURE__ */ jsx(OperationSchema, { description })
550
517
  ] }, i);
551
518
  };
552
- return /* @__PURE__ */ jsxs2(File2, { baseName: file.baseName, path: file.path, meta: file.meta, children: [
553
- /* @__PURE__ */ jsx4(File2.Import, { name: ["faker"], path: "@faker-js/faker" }),
554
- plugin.options.regexGenerator === "randexp" && /* @__PURE__ */ jsx4(File2.Import, { name: "RandExp", path: "randexp" }),
519
+ return /* @__PURE__ */ jsxs(File, { baseName: file.baseName, path: file.path, meta: file.meta, children: [
520
+ /* @__PURE__ */ jsx(File.Import, { name: ["faker"], path: "@faker-js/faker" }),
521
+ plugin.options.regexGenerator === "randexp" && /* @__PURE__ */ jsx(File.Import, { name: "RandExp", path: "randexp" }),
555
522
  items.map(mapItem)
556
523
  ] });
557
524
  };
558
- export {
559
- OperationSchema,
560
- Schema
561
- };
525
+
526
+ export { OperationSchema, Schema };
527
+ //# sourceMappingURL=components.js.map
562
528
  //# sourceMappingURL=components.js.map