Transformer
Transformador de alto desempenho que reescreve sintaxe não suportada em formas aceitas pelo runtime-alvo.
Recursos
- Descer ESNext até ES2015.
- Converter TypeScript para JavaScript.
- Converter JSX para JavaScript, com React Refresh embutido.
- Suporte embutido a plugins populares, como styled-components.
- Substituir variáveis globais.
- Emitir declarações isoladas TypeScript sem o compilador tsc.
Opções gerais
A função transform recebe um nome de arquivo, o código-fonte e um objeto de opções:
js
import { transform } from "oxc-transform";
const result = await transform("lib.ts", sourceCode, {
// Força o idioma de origem. Inferido pela extensão por padrão.
lang: "tsx", // "js" | "jsx" | "ts" | "tsx" | "dts"
// Tratar como script, módulo ou CommonJS. Inferido por padrão.
sourceType: "module", // "script" | "module" | "commonjs" | "unambiguous"
// Diretório de trabalho atual. Resolve caminhos relativos.
cwd: "/path/to/project",
// Ativa geração de source maps.
sourcemap: true,
// Estratégia de helpers de runtime.
helpers: {
mode: "Runtime", // "Runtime" (import de @oxc-project/runtime) ou "External" (global babelHelpers)
},
// Veja as subpáginas para mais opções:
// typescript, jsx, target, assumptions, define, inject, decorator, plugins
});transform é assíncrona. Também há transformSync, com a mesma assinatura.
Instalação
Node.js
- Binding Node oxc-transform.
- Experimente no StackBlitz.
Rust
Use o crate oxc com a feature transformer.
Exemplo em Rust aqui.