Skip to content

@kubb/swagger-zodios 🦙

With the Swagger zodios plugin you can use zodios to validate your schema's based on a Swagger file.

Installation

shell
bun add @kubb/swagger-zodios @kubb/swagger-zod @kubb/swagger
shell
pnpm add @kubb/swagger-zodios @kubb/swagger-zod @kubb/swagger
shell
npm install @kubb/swagger-zodios @kubb/swagger-zod @kubb/swagger
shell
yarn add @kubb/swagger-zodios @kubb/swagger-zod @kubb/swagger

Options

output

output.path

Output to save the zodios instance.
Output should be a file(ending with .ts or .js).

INFO

Type: string
Default: 'zodios.ts'

typescript
import { pluginZodios } from '@kubb/swagger-zodios'

const plugin = pluginZodios({
  output: {
    path: './zodios.ts',
  },
})

output.exportAs

Name to be used for the export * as from './'

INFO

Type: string

typescript
import { pluginZodios } from '@kubb/swagger-zodios'

const plugin = pluginZodios({
  output: {
    path: './zodios.ts',
    exportAs: 'zodios',
  },
})

output.extName

Add an extension to the generated imports and exports, default it will not use an extension

INFO

Type: string

typescript
import { pluginZodios } from '@kubb/swagger-zodios'

const plugin = pluginZodios({
  output: {
    path: './zodios.ts',
    extName: '.js',
  },
})

output.exportType

Define what needs to exported, here you can also disable the export of barrel files

INFO

Type: 'barrel' | 'barrelNamed' | false

typescript
import { pluginZodios } from '@kubb/swagger-zodios'

const plugin = pluginZodios({
  output: {
    path: './zodios.ts',
    exportType: 'barrel',
  },
})

Example

typescript
import { defineConfig } from '@kubb/core'
import { pluginOas } from '@kubb/plugin-oas'
import { pluginZod } from '@kubb/swagger-zod'
import { pluginZodios } from '@kubb/swagger-zodios'

export default defineConfig({
  input: {
    path: './petStore.yaml',
  },
  output: {
    path: './src/gen',
  },
  plugins: [
    pluginOas(),
    pluginZod(),
    pluginZodios({
      output: {
        path: './zodios.ts',
      },
    }),
  ],
})

Released under the MIT License.