Skip to content

☂️ Transformer Milestone 1 #2859

@Boshen

Description

@Boshen

Call for help

This is a call for help; we need assistance from experts who are proficient in Babel and Rust to help us achieve the fastest and most feature-complete JavaScript transformer. The contributor need to adhere to the project rules outlined at https://oxc-project.github.io/docs/contribute/rules.html.

Background

When I prototyped and created the current transformer (https://github.com/oxc-project/oxc/tree/main/crates/oxc_transformer), I was working alone and porting Babel without planning ahead. The result was a dead end - @Dunqing and I became stuck and burned out.

Fortunately, @milesj and @rzvxa showed up and offered help. After some consideration and discussion, we (@Boshen, @Dunqing, @milesj, and @rzvxa) formed a working group to tackle the transformer together.

Restart from scratch

Although we have a significant amount of code in https://github.com/oxc-project/oxc/tree/main/crates/oxc_transformer, with 320 out of 1415 tests passing (as indicated in https://github.com/oxc-project/oxc/blob/main/tasks/transform_conformance/babel.snap.md), let's proceed as if none of this code exists. This will allow us to restart with shared knowledge within the working group.


Milestone 1

The first milestone is to complete @babel/preset-react and @babel/preset-typescript so that tools can transform .jsx and .ts(x) files to the latest ECMAScript version.

Here's the plan:

  • Completely discard the current transformer implementation.
  • Begin anew to avoid carrying any technical debt.
  • Lay out the architecture with placeholders.
  • Proceed from both ends:
  • Ensure that all code is reviewed by at least two people to facilitate knowledge sharing and enable concurrent progress towards the next milestones.

Metadata

Metadata

Assignees

Labels

A-transformerArea - Transformer / Transpiler

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions