Parser
Высокопроизводительный парсер JavaScript / TypeScript на Rust — основа других инструментов Oxc.
Возможности
- примерно в 3 раза быстрее парсера swc (бенчмарк);
- разбирает
.js(x)и.ts(x); - проходит все тесты парсера Test262 и ~99% тестов Babel и TypeScript;
- отдаёт информацию об ESM напрямую, без
es-module-lexer; - ✅ совместим с checker.ts
Установка
Node.js
- привязка oxc-parser;
- попробовать на stackblitz.
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.