🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@kubb/parser-ts

Package Overview
Dependencies
Maintainers
1
Versions
513
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@kubb/parser-ts

TypeScript and TSX source file parser for Kubb. Converts AST nodes into formatted source strings using the TypeScript compiler API.

Source
npmnpm
Version
5.0.0-beta.95
Version published
Weekly downloads
49K
-32.41%
Maintainers
1
Weekly downloads
 
Created
Source
Kubb banner

npm version npm downloads Stars License Node

Documentation · Report Bug · Request Feature


@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: './petstore.yaml',
  output: { path: './src/gen' },
  parsers: [parserTs(), parserTsx()],
})

Pass an extension map to rewrite the extensions emitted in import/export statements. Keys are the source extension, values the output, and an empty string drops it. Parsers drop the extension by default. Use { '.ts': '.js' } for ESM when the consumer transpiles to JavaScript, or { '.ts': '.ts' } to keep it for Node16/NodeNext resolution:

export default defineConfig({
  input: './petstore.yaml',
  output: { path: './src/gen' },
  parsers: [parserTs({ extension: { '.ts': '.js' } }), parserTsx()],
})

To render compiler AST nodes to source text from inside a plugin, call print on a 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(options?)

Factory returning a parser instance for .ts and .js files. Pass to defineConfig({ parsers: [...] }) to emit TypeScript source files. The optional extension map rewrites the extensions written in import/export statements and defaults to { '.ts': '' }.

The returned instance exposes parse(file) to serialize a FileNode to TypeScript source and print(...nodes) to convert TypeScript compiler Node instances to a formatted source string.

parserTsx(options?)

Factory returning a parser instance for .tsx and .jsx files. Same API and extension option 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:

My sponsors

License

MIT

Keywords

codegen

FAQs

Package last updated on 11 Jul 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts