Skip to content
Reference

Options

Configuration options for @kubb/plugin-msw.

Pass these options to pluginMsw(). Shared options link to Shared plugin options, which documents their behavior once.

Options overview

OptionPurposeDefault
outputWhere the generated handlers are written and exported.{ path: 'handlers', barrel: { type: 'named' } }
↳ output.pathChoose the output folder or file.'handlers'
↳ output.modeWrite a single file or a directory of files.Inferred from output.path
↳ output.barrelConfigure barrel exports.{ type: 'named' }
↳ output.bannerAdd content before generated code.None
↳ output.footerAdd content after generated code.None
groupSplit output into per-tag or per-path folders.None
↳ group.typeGroup operations by tag or URL path.Required with group
↳ group.nameCustomize output group names.camelCased tag or raw path segment
baseURLBase URL prepended to every handler's request.None
handlersEmit a handlers.ts that re-exports every handler.false
parserSource of the response body each handler returns.'data'
includeKeep only operations that match.None
excludeSkip operations that match.[]
overrideApply different options per pattern.[]
resolverCustomize generated names and file paths.resolverMsw
macrosRewrite AST nodes before printing.[]

Option details

baseURL

Base URL prepended to every handler's request. When omitted, no host is prepended and each handler matches the operation's relative path from the spec. Set it to point at a different environment than the spec.

Typestring
Requiredfalse

handlers

Emits a handlers.ts file that re-exports every generated handler in operation order. Spread it into your MSW setupServer(...handlers) or setupWorker(...handlers) call.

Typeboolean
Requiredfalse
Defaultfalse
gen/handlers.ts
import { getPetHandler } from './getPetHandler'
import { addPetHandler } from './addPetHandler'

export const handlers = [getPetHandler(), addPetHandler()] as const

parser

Source of the response body each handler returns.

Type'data' | 'faker'
Requiredfalse
Default'data'
'data'
Default value. Returns a typed payload from @kubb/plugin-ts that you supply in tests. The handler uses new Response(JSON.stringify(data), ...).
'faker'
Falls back to a value generated by @kubb/plugin-faker when no data is supplied. Register pluginFaker() alongside this plugin.
'faker'
export function getPetHandler(data?: GetPetQueryResponse | ((info: Parameters<Parameters<typeof http.get>[1]>[0]) => Response | Promise<Response>)) {
  return http.get('/pet/:petId', function handler(info) {
    if (typeof data === 'function') return data(info)

    return new Response(JSON.stringify(data || createGetPetQueryResponse(data)), {
      status: 200,
      headers: { 'Content-Type': 'application/json' },
    })
  })
}

resolver

Overrides generated file and symbol names. Omitted members keep resolverMsw. The shared members (name, file, imports) and the this context are described under resolver.

TypeResolverPatch<ResolverMsw>
Requiredfalse
Partial override
type ResolverMswPatch = {
  name?(name: string): string
  file?: {
    baseName?(params: { name: string; extname: string }): string
    path?(params: { baseName: string; output: Output }): string
  }
  imports?(options: ResolveImportsOptions): Array<ImportNode>
  handler?: {
    name?(node: OperationNode): string  // → 'getPetHandler'
    listName?(): string                 // → 'handlers'
  }
}