-
-
Notifications
You must be signed in to change notification settings - Fork 475
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(ast_tools): output typescript to a separate package #6755
feat(ast_tools): output typescript to a separate package #6755
Conversation
Your org has enabled the Graphite merge queue for merging into mainAdd the label “0-merge” to the PR and Graphite will automatically add it to the merge queue when it’s ready to merge. Or use the label “hotfix” to add to the merge queue as a hot fix. You must have a Graphite account and log in to Graphite in order to use the merge queue. Sign up using this link. |
This stack of pull requests is managed by Graphite. Learn more about stacking. Join @ottomated and the rest of your teammates on Graphite |
👍 nice work |
Our ts types came from typescript-eslint, I would model them as such https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/ast-spec/src/expression/ArrayExpression/spec.ts but this is for another topic: #6347 (comment) |
353e0c5
to
fda6df0
Compare
fda6df0
to
a20f980
Compare
CodSpeed Performance ReportMerging #6755 will not alter performanceComparing Summary
|
I have taken the liberty of combining the changes from #6687 into this PR, since neither PR stands alone, and it was confusing trying to review each in isolation. I've preserved the separate commits from both PRs. I've added a commit to remove unused dependencies, which unblocks the "autofix" CI job. @ottomated You will need to force pull the branch to your local machine, and then run This is great, but there are a few problems: AutofixThe "autofix" CI job automatically reformats all Longer term we should run oxc/.github/workflows/autofix.yml Lines 4 to 8 in d2b8f50
Then re-run WASM typesThis PR generates the I suggest in this PR:
That'll get this PR into a state in which it can be merged. Leave figuring out how to share the same type defs between Missing custom typesThe generated Sorry if this all feels like bureaucracy! It's annoying sometimes, but each individual PR (even in a stack) should not leave any crates / packages in a broken state. The advantage of stacked PRs is you can move fast (no need to wait for previous PR to get merged before starting on the next one), but the trade-off is that you need to consider the order you do things in, to keep CI green on every PR. |
@overlookmotel thanks for the PR juggling, I'm well aware that this PR is not done and have marked it as draft for clarity. |
@overlookmotel everything should be addressed now! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All looks good. Very nice! My comments below are just nits.
The one remaining question is the name of the types package. We don't control the @oxc
npm scope unfortunately, and Oxc's NPM packages are scattered around a bit.
We could use either a scope-less package name oxc-types
or @oxc-project/types
.
@Boshen I've reviewed all the Rust code, but could you please take a look at the package publishing + github workflow stuff? Also, see above my question about package name for the types. |
I'll address these after this PR is merged. |
Let me make a new release for |
Could also be @oxc-ast/types or something along those lines |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Merge activity
|
Part of #6347. Moves typescript logic from derive_estree into a new ast_tools generator.
f51b1f5
to
1145341
Compare
## [0.34.0] - 2024-10-26 - 4618aa2 transformer: [**BREAKING**] Rename `TransformerOptions::react` to `jsx` (#6888) (Boshen) - 90c786c regular_expression: [**BREAKING**] Support ES2025 Duplicated named capture groups (#6847) (leaysgur) - 67a7bde napi/parser: [**BREAKING**] Add typings to napi/parser (#6796) (ottomated) ### Features - 1145341 ast_tools: Output typescript to a separate package (#6755) (ottomated) - 4429754 ecmascript: Constant eval `null` to number (#6879) (Boshen) - fd57e00 ecmascript: Add abstract_relational_comparison to dce (#6846) (Boshen) - 8bcaf59 minifier: Late peeophole optimization (#6882) (Boshen) - 860cbca minifier: Implement folding simple arrow fns (#6875) (camc314) - c26020e minifier: Implement folding String.prototype.replaceAll (#6871) (camc314) - 50744f3 minifier: Implement folding String.prototype.replace (#6870) (camc314) - fccf82e minifier: Implement folding `substring` string fns (#6869) (camc314) - e6a5a1b minifier: Implement folding `charCodeAt` string fns (#6475) (camc314) - 0d0bb17 transformer: Complete the async-to-generator plugin (#6658) (Dunqing) - 419343b traverse: Implement `GetAddress` for `Ancestor` (#6877) (overlookmotel) ### Bug Fixes - a47c70e minifier: Fix remaining runtime bugs (#6855) (Boshen) - 686727f minifier: Reference read has side effect (#6851) (Boshen) - c658d93 minifier: Keep template literals with expressions (#6849) (Boshen) - 4dc5e51 transformer: Only run typescript plugin for typescript source (#6889) (Boshen) - 076f5c3 transformer/typescript: Retain ExportNamedDeclaration without specifiers and declaration (#6848) (Dunqing) - b075982 types: Change @oxc/types package name (#6874) (ottomated) ### Documentation - 6eeb0e6 ast: Mention typescript-eslint, field ordering and shape (#6863) (Boshen) - 99e3b32 napi: Remove JSON.parse from example (#6836) (ottomated) ### Refactor - adb5039 allocator: Add `impl GetAddress for Address` (#6891) (overlookmotel) - 3e7507f ast_tools: Reduce macro usage (#6895) (overlookmotel) - 423d54c rust: Remove the annoying `clippy::wildcard_imports` (#6860) (Boshen) - 2d95009 transformer: Implement `Debug` on `StatementInjector` internal types (#6886) (overlookmotel) - c383c34 transformer: Make `StatementInjectorStore` methods generic over `GetAddress` (#6885) (overlookmotel) - 1f29523 transformer: Rename ReactJsx to Jsx (#6883) (Boshen) - 333b758 transformer: `StatementInjectorStore` methods take `&Statement` as target (#6858) (overlookmotel) - c19996c transformer: Add `StatementInjectorStore::insert_many_before` method (#6857) (overlookmotel) - 7339dde transformer: `StatementInjectorStore::insert_many_after` take an iterator (#6856) (overlookmotel) - 4348eae transformer/typescript: Re-order visitor methods (#6864) (overlookmotel) - 3a56d59 transformer/typescript: Insert assignments after super by `StatementInjector` (#6654) (Dunqing) - a366fae traverse: Rename `TraverseScoping::generate_binding_in_current_scope` (#6832) (overlookmotel) - 3b99fe6 traverse: Move `generate_binding` to `TraverseScoping` (#6831) (overlookmotel) - 60f487a traverse: `TraverseCtx::generate_binding` take an `Atom` (#6830) (overlookmotel) ### Styling - 262b2ed ast: Move crate doc comment to top of file (#6890) (overlookmotel) --------- Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
…#6755) Part of oxc-project#6347. Moves typescript logic from derive_estree into a new ast_tools generator.
## [0.34.0] - 2024-10-26 - 4618aa2 transformer: [**BREAKING**] Rename `TransformerOptions::react` to `jsx` (oxc-project#6888) (Boshen) - 90c786c regular_expression: [**BREAKING**] Support ES2025 Duplicated named capture groups (oxc-project#6847) (leaysgur) - 67a7bde napi/parser: [**BREAKING**] Add typings to napi/parser (oxc-project#6796) (ottomated) ### Features - 1145341 ast_tools: Output typescript to a separate package (oxc-project#6755) (ottomated) - 4429754 ecmascript: Constant eval `null` to number (oxc-project#6879) (Boshen) - fd57e00 ecmascript: Add abstract_relational_comparison to dce (oxc-project#6846) (Boshen) - 8bcaf59 minifier: Late peeophole optimization (oxc-project#6882) (Boshen) - 860cbca minifier: Implement folding simple arrow fns (oxc-project#6875) (camc314) - c26020e minifier: Implement folding String.prototype.replaceAll (oxc-project#6871) (camc314) - 50744f3 minifier: Implement folding String.prototype.replace (oxc-project#6870) (camc314) - fccf82e minifier: Implement folding `substring` string fns (oxc-project#6869) (camc314) - e6a5a1b minifier: Implement folding `charCodeAt` string fns (oxc-project#6475) (camc314) - 0d0bb17 transformer: Complete the async-to-generator plugin (oxc-project#6658) (Dunqing) - 419343b traverse: Implement `GetAddress` for `Ancestor` (oxc-project#6877) (overlookmotel) ### Bug Fixes - a47c70e minifier: Fix remaining runtime bugs (oxc-project#6855) (Boshen) - 686727f minifier: Reference read has side effect (oxc-project#6851) (Boshen) - c658d93 minifier: Keep template literals with expressions (oxc-project#6849) (Boshen) - 4dc5e51 transformer: Only run typescript plugin for typescript source (oxc-project#6889) (Boshen) - 076f5c3 transformer/typescript: Retain ExportNamedDeclaration without specifiers and declaration (oxc-project#6848) (Dunqing) - b075982 types: Change @oxc/types package name (oxc-project#6874) (ottomated) ### Documentation - 6eeb0e6 ast: Mention typescript-eslint, field ordering and shape (oxc-project#6863) (Boshen) - 99e3b32 napi: Remove JSON.parse from example (oxc-project#6836) (ottomated) ### Refactor - adb5039 allocator: Add `impl GetAddress for Address` (oxc-project#6891) (overlookmotel) - 3e7507f ast_tools: Reduce macro usage (oxc-project#6895) (overlookmotel) - 423d54c rust: Remove the annoying `clippy::wildcard_imports` (oxc-project#6860) (Boshen) - 2d95009 transformer: Implement `Debug` on `StatementInjector` internal types (oxc-project#6886) (overlookmotel) - c383c34 transformer: Make `StatementInjectorStore` methods generic over `GetAddress` (oxc-project#6885) (overlookmotel) - 1f29523 transformer: Rename ReactJsx to Jsx (oxc-project#6883) (Boshen) - 333b758 transformer: `StatementInjectorStore` methods take `&Statement` as target (oxc-project#6858) (overlookmotel) - c19996c transformer: Add `StatementInjectorStore::insert_many_before` method (oxc-project#6857) (overlookmotel) - 7339dde transformer: `StatementInjectorStore::insert_many_after` take an iterator (oxc-project#6856) (overlookmotel) - 4348eae transformer/typescript: Re-order visitor methods (oxc-project#6864) (overlookmotel) - 3a56d59 transformer/typescript: Insert assignments after super by `StatementInjector` (oxc-project#6654) (Dunqing) - a366fae traverse: Rename `TraverseScoping::generate_binding_in_current_scope` (oxc-project#6832) (overlookmotel) - 3b99fe6 traverse: Move `generate_binding` to `TraverseScoping` (oxc-project#6831) (overlookmotel) - 60f487a traverse: `TraverseCtx::generate_binding` take an `Atom` (oxc-project#6830) (overlookmotel) ### Styling - 262b2ed ast: Move crate doc comment to top of file (oxc-project#6890) (overlookmotel) --------- Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Part of #6347.
Moves typescript logic from derive_estree into a new ast_tools generator.