トランスフォーマ
ターゲットランタイムが扱える形へ、未サポート構文を書き換える高性能トランスフォーマです。
機能
- ESNext を ES2015 へ引き下げる
- TypeScript を JavaScript へ変換
- JSX を JavaScript へ変換(React Refresh 内蔵)
- styled-components など普及プラグインの内蔵サポート
- グローバル変数の置換
- TypeScript コンパイラを使わずに Isolated Declarations を出力
共通オプション
transform 関数はファイル名、ソースコード、オプションオブジェクトを受け取ります。
js
import { transform } from "oxc-transform";
const result = await transform("lib.ts", sourceCode, {
// ソース言語を強制。既定ではファイル名から推論
lang: "tsx", // "js" | "jsx" | "ts" | "tsx" | "dts"
// script / module / CommonJS として扱う。既定では推論
sourceType: "module", // "script" | "module" | "commonjs" | "unambiguous"
// カレントワーキングディレクトリ。相対パス解決に使用
cwd: "/path/to/project",
// ソースマップ生成を有効化
sourcemap: true,
// ランタイムヘルパーの扱い
helpers: {
mode: "Runtime", // "Runtime"(@oxc-project/runtime から import)または "External"(グローバル babelHelpers)
},
// そのほかのオプションは各サブページ参照:
// typescript, jsx, target, assumptions, define, inject, decorator, plugins
});transform は非同期です。同じシグネチャの同期版 transformSync もあります。
インストール
Node.js
- Node バインディング oxc-transform を利用
- StackBlitz で試す
Rust
アンブレラクレート oxc の transformer 機能を有効化してください。
Rust の使用例はこちら。