@kubb/parser-ts
TypeScript source file parser for Kubb
Converts AST nodes and raw TypeScript code into formatted source strings using the TypeScript compiler API. Handles both .ts and .tsx output.
Installation
bun add @kubb/parser-ts
# or
pnpm add @kubb/parser-ts
# or
npm install @kubb/parser-ts
Usage
import { defineConfig } from 'kubb'
import { parserTs, parserTsx } from '@kubb/parser-ts'
export default defineConfig({
input: { path: './petstore.yaml' },
output: { path: './src/gen' },
parsers: [parserTs, parserTsx],
})
To render compiler AST nodes to source text from inside a plugin, call print on the parser instance:
import { parserTs } from '@kubb/parser-ts'
import ts from 'typescript'
const source = parserTs.print(
ts.factory.createVariableStatement(
[ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],
ts.factory.createVariableDeclarationList(
[ts.factory.createVariableDeclaration('hello', undefined, undefined, ts.factory.createStringLiteral('world'))],
ts.NodeFlags.Const,
),
),
)
// → export const hello = 'world'
API
parserTs
Parser instance for .ts and .js files. Pass to defineConfig({ parsers: [...] }) to emit TypeScript source files.
parserTs.parse(file, options?)— serialise aFileNodeto TypeScript source.parserTs.print(...nodes)— convert TypeScript compilerNodeinstances to a formatted source string.
parserTsx
Parser instance for .tsx and .jsx files. Same API as parserTs with JSX support.
Supporting Kubb
Kubb is an open source project, and its development is funded entirely by sponsors. If you would like to become a sponsor, please consider: