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
| Option | Purpose | Default |
|---|---|---|
output | Where the generated handlers are written and exported. | { path: 'handlers', barrel: { type: 'named' } } |
↳ output.path | Choose the output folder or file. | 'handlers' |
↳ output.mode | Write a single file or a directory of files. | Inferred from output.path |
↳ output.barrel | Configure barrel exports. | { type: 'named' } |
↳ output.banner | Add content before generated code. | None |
↳ output.footer | Add content after generated code. | None |
group | Split output into per-tag or per-path folders. | None |
↳ group.type | Group operations by tag or URL path. | Required with group |
↳ group.name | Customize output group names. | camelCased tag or raw path segment |
baseURL | Base URL prepended to every handler's request. | None |
handlers | Emit a handlers.ts that re-exports every handler. | false |
parser | Source of the response body each handler returns. | 'data' |
include | Keep only operations that match. | None |
exclude | Skip operations that match. | [] |
override | Apply different options per pattern. | [] |
resolver | Customize generated names and file paths. | resolverMsw |
macros | Rewrite 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.
| Type | string |
| Required | false |
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.
| Type | boolean |
| Required | false |
| Default | false |
gen/handlers.ts
import { getPetHandler } from './getPetHandler'
import { addPetHandler } from './addPetHandler'
export const handlers = [getPetHandler(), addPetHandler()] as constparser
Source of the response body each handler returns.
| Type | 'data' | 'faker' |
| Required | false |
| 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.
| Type | ResolverPatch<ResolverMsw> |
| Required | false |
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'
}
}