oxc_transform_napi 0.102.0

A collection of JavaScript tools written in Rust.
Documentation

Oxc Transform

This is alpha software and may yield incorrect results, feel free to submit a bug report.

TypeScript and React JSX Transform

import assert from 'assert';
import { transformSync } from 'oxc-transform';

const { code, declaration, errors } = transformSync(
  'test.ts',
  'class A<T> {}',
  {
    typescript: {
      declaration: true, // With isolated declarations in a single step.
    },
  },
);
// or `await transform(filename, code, options)`

assert.equal(code, 'class A {}\n');
assert.equal(declaration, 'declare class A<T> {}\n');
assert(errors.length == 0);

Isolated Declarations for Standalone DTS Emit

Conforms to TypeScript compiler's --isolatedDeclarations .d.ts emit.

Usage

import assert from 'assert';
import { isolatedDeclarationSync } from 'oxc-transform';

const { map, code, errors } = isolatedDeclarationSync('test.ts', 'class A {}');
// or `await isolatedDeclaration(filename, code, options)`

assert.equal(code, 'declare class A {}\n');
assert(errors.length == 0);

API

Transform Functions

// Synchronous transform
transformSync(
  filename: string,
  sourceText: string,
  options?: TransformOptions,
): TransformResult

// Asynchronous transform
transform(
  filename: string,
  sourceText: string,
  options?: TransformOptions,
): Promise<TransformResult>

Isolated Declaration Functions

// Synchronous isolated declaration
isolatedDeclarationSync(
  filename: string,
  sourceText: string,
  options?: IsolatedDeclarationsOptions,
): IsolatedDeclarationsResult

// Asynchronous isolated declaration
isolatedDeclaration(
  filename: string,
  sourceText: string,
  options?: IsolatedDeclarationsOptions,
): Promise<IsolatedDeclarationsResult>

Use the Sync versions for synchronous operations. Use async versions for asynchronous operations, which can be beneficial in I/O-bound or concurrent scenarios, though they add async overhead.

See index.d.ts for complete type definitions.

Supports WASM

See https://stackblitz.com/edit/oxc-transform for usage example.