Skip to content

Localized mock data

Generate values that read as German by setting locale to 'de'. The plugin switches the Faker import to fakerDE, so names, addresses, and phone numbers match that region.

kubb.config.ts
typescript
import { defineConfig } from 'kubb/config'
import { pluginTs } from '@kubb/plugin-ts'
import { pluginFaker } from '@kubb/plugin-faker'

export default defineConfig({
  input: './petStore.yaml',
  output: { path: './src/gen', clean: true },
  plugins: [
    pluginTs(),
    pluginFaker({
      output: { path: 'mocks', mode: 'directory' },
      locale: 'de',
    }),
  ],
})

Output example

src/gen/mocks/createPet.ts
typescript
import type { Pet } from '../types/Pet'
import { createCategory } from './createCategory'
import { createTag } from './createTag'
import { fakerDE as faker } from '@faker-js/faker'

export function createPet<TData extends Partial<Pet> = object>(data?: TData)
{
  const defaultFakeData = {
  id: faker.number.bigInt(),
  name: faker.string.alpha(),
  category: createCategory(),
  photoUrls: faker.helpers.multiple(() => (faker.string.alpha())),
  tags: faker.helpers.multiple(() => (createTag())),
  status: faker.helpers.arrayElement<NonNullable<Pet>["status"]>(['available', 'pending', 'sold']),
}
  return {
    ...defaultFakeData,
    ...(data || {}),
  } as Omit<typeof defaultFakeData, keyof TData> & TData
}
usage.ts
typescript
import { createPet } from './src/gen/mocks/createPet'

// faker.number/string calls come from fakerDE, so text-like fields read as German
const pet = createPet()