MSW
Officialv5.0.11@kubb/plugin-msw
kubb add plugin-msw
Options
Pass these options to pluginMsw(). Shared options link to Shared plugin options.
Options overview
| Option | Purpose | Default |
|---|---|---|
output | Where files are written: path, mode, barrel, banner, footer. | { path: 'handlers', barrel: { type: 'named' } } |
group | Split output by tag or path: type, name. | None |
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 the data you pass to the handler, typed with the
@kubb/plugin-ts types. The handler uses new Response(JSON.stringify(data), ...).'faker'
Falls back to a value generated by
@kubb/plugin-faker when data is missing or falsy, such as 0, false, or ''. 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'
}
}