Skip to content

Parser

Высокопроизводительный парсер JavaScript / TypeScript на Rust — основа других инструментов Oxc.

Возможности

  • примерно в 3 раза быстрее парсера swc (бенчмарк);
  • разбирает .js(x) и .ts(x);
  • проходит все тесты парсера Test262 и ~99% тестов Babel и TypeScript;
  • отдаёт информацию об ESM напрямую, без es-module-lexer;
  • ✅ совместим с checker.ts

Установка

Node.js

Rust

Общий crate oxc или отдельно oxc_ast и oxc_parser.

Пример на Rust здесь.

Печать кода

После парсинга и трансформаций код можно напечатать обратно.

Прямой пример с esrap («parse» наоборот!):

js
import { print } from "esrap";
import ts from "esrap/languages/ts";
import { parseSync } from "oxc-parser";

const { program } = parseSync("test.js", 'alert("hello oxc & esrap");');
const { code } = print(program, ts());

console.log(code); // alert("hello oxc & esrap");

INFO

Сейчас комментарии при печати не сохраняются. Поддержка появится благодаря oxc-parser #13285.