oxc-transform

v0.117.0
  • Types
  • ESM
License
MIT
Deps
0
Install Size
52 kB/-
Vulns
0
Published

Get started

$npm install oxc-transform
$pnpm add oxc-transform
$yarn add oxc-transform
$bun add oxc-transform
$deno add npm:oxc-transform
$vlt install oxc-transform

Readme

Oxc Transform

See usage instructions.

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.