npm.io
5.0.0-beta.35 • Published 1 month ago

@kubb/parser-ts

Licence
MIT
Version
5.0.0-beta.35
Deps
2
Size
118 kB
Vulns
0
Weekly
0
Stars
1.7K

@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 a FileNode to TypeScript source.
  • parserTs.print(...nodes) — convert TypeScript compiler Node instances 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:

My sponsors

License

MIT

Keywords