Require node >= 20.x#367
Merged
byara merged 2 commits intotrivago:v6from Jul 9, 2025
Merged
Conversation
11c5348 to
e1879ea
Compare
Contributor
Author
|
@vladislavarsenev @byara do you mind taking a look at this PR please? |
byara
approved these changes
Jul 9, 2025
Collaborator
byara
left a comment
There was a problem hiding this comment.
Thanks for the PR @RobbieTheWagner
byara
added a commit
that referenced
this pull request
Oct 28, 2025
* Add sort by length option * fix types * Correct default type Co-authored-by: annes <76728727+annesnour03@users.noreply.github.com> * Yet another <SEPARATOR> feature PR (#339) * Added current-state snapshots Capturing the current state of transformations so we can see how the upcoming changes affect them. * Add `<SEPARATOR>` support When `importOrderSeparation` is enabled, users can further control separation placement with the `<SEPARATOR>` keyword. * fix tests, update docs * feat: Import sort order skip files * Downgraded minimatch for node 18 * Added new types * (fix) Types error * Switch to ESM * Ensure all tests are running * Correctly resolve plugin * Remove some changes * Fix svelte * Require node >= 20.x (#367) * Require node >= 20.x * Add checking 24.x * docs: add pnpm install command to README (#361) * Switch to vitest for better ESM support I was still hitting issues with jest and trying to get full ESM support, so I decided to switch to vitest. This seems to be working and snapshots are generated essentially the same. * Explicitly import expect and test * Fix types * Fix accidentally checked file * Add extensions to imports, fix some example issues * Make tsc happy * Convert all cjs to mjs * Fix some things * Get examples and tests working * (fix) PR review comments analysed and reviewed * State now matches upstream/main * Revert "State now matches upstream/main" This reverts commit a7db2b5. * Fixed version mis matches * [Format] Run prettier on most files Summary: ``` $ npx prettier --write . ``` Manually inspected changes, and reverted changes to examples, package.json, and tsconfig.json Test Plan: doitlive * Delete ppsi.spec.js.snap * Delete prettier.config.mjs * Alt: Add support for gjs/gts, fix examples more (#377) * Add support for gjs/gts, fix examples more * WIP * hm * wheeeee * Revert extraneous svelte change * Revert extraneous vue change * Update src/preprocessors/ember-preprocessor.ts Co-authored-by: Robbie Wagner <rwwagner90@gmail.com> * Update examples/.prettierrc Co-authored-by: Robbie Wagner <rwwagner90@gmail.com> * Update .prettierrc Co-authored-by: Robbie Wagner <rwwagner90@gmail.com> * Update examples/example.gts Co-authored-by: Robbie Wagner <rwwagner90@gmail.com> * Update examples/example.gjs Co-authored-by: Robbie Wagner <rwwagner90@gmail.com> * Update tests/Ember/sfc.gts Co-authored-by: Robbie Wagner <rwwagner90@gmail.com> * Support namespace imports * Support named type imports * Fix all type imports * debugging improvement to run_spec * Fix parser * Reduce config * Extract replaceAt to its own util and add tests for it * Fix spelling: injest -> ingest --------- Co-authored-by: Robbie Wagner <robbie.wagner@hashicorp.com> Co-authored-by: Robbie Wagner <rwwagner90@gmail.com> * 6.0.0-0 * [Test] Stop ignoring exceptions thrown in snapshot tests Summary: This logic can hide breakages and cause tests to pass when the underlying logic is actually broken. I encountered these hidden breakages while working on some further feature changes, and figured it was appropriate to fix this first. As all existing tests pass without the try/catch, this change is effectively a no-op. Test Plan: `yarn install && yarn run test ./tests/` * [Perf] Improve performance of removeNodesFromOriginalCode() Summary: This change replaces the existing RegExp replace() logic with concatenated string slices. This avoids reallocation the result string for each node replacement, replacing it with string slice operations (which are implemented as O(1) string views within v8) and a single .join(''), which can be optimized by the runtime to a single allocation. This probably won't make a noticable difference, but the change also simplifies some further feature work I am attempting to add. Test Plan: `yarn install && yarn run test --all` * [Refactor] Stop rerendering directives, inject imports instead Summary: This commit changes how the sorted imports are combined with the original source. Prior to this commit, all ImportDeclaration nodes and their leading comments, plus any InterpreterDirective and Directive nodes, were extracted from the original code and re-rendered using babel. The rendered nodes were then concatenated with the original source with those nodes removed to produce the updated source. This approach safely protected against functional changes, but removed newlines around comments near the beginning of the file when the first node of the original source was an ImportDeclaration, as babel does not preserve whitespace when rendering content. If a user has configured a plugin that attempts to manage comments and/or whitespace near the top of the file, such as auto-inserting a license header (as I am trying to do), this results in conflicts / formatting churn. This commit does not directly resolve this incompatibility, however it better prepares the codebase for a plugin option to be added that can resolve the issue. Test Plan: `yarn install && yarn run test --all` Note that one snapshot was changed by this commit where a newline was changed, acting as an effective example of how the original approach could affect whitespace in the re-rendered portion of the file. * [Feature] Expand detection for `sort-imports-ignore` Summary: Prior to this commit, isSortImportsIgnored() checked comments associated with the extracted ImportDirectives, and only if the comment started on line 1. This could result in a failure to suppress sorting if the comment was not next to an ImportDirective (never considered), the first import directive were embedded later in the file (line mismatch), or directives/shebangs were used (Line 1 is unavailable). With this change, the line restriction is removed, and all comments from the beginning of the file and the first statement are checked. This ensures better coverage, especially with the importOrderIgnoreHeaderComments feature stacked on this commit. Test Plan: `yarn install && yarn run test --all` * Add sortNodeBuiltinModulesToTop * Refactor: Use <BUILTIN_MODULES> placeholder instead of boolean option * Fix test file extensions to .mjs for ES modules compatibility * fix undefined error * Update Ember snapshot and clean up debug code * run yarn prettify * prettify files * remove changelog entry * update CHANGELOG with features * run yarn * Revert "run yarn" This reverts commit 5b1b267. --------- Co-authored-by: KLewin23 <kieran.lewin2000@gmail.com> Co-authored-by: annes <76728727+annesnour03@users.noreply.github.com> Co-authored-by: Chason Choate <125305848+chason-choate-trilliant@users.noreply.github.com> Co-authored-by: RyderKishan <kishan020696@gmail.com> Co-authored-by: Robbie Wagner <robbie.wagner@hashicorp.com> Co-authored-by: Robert Wagner <rwwagner90@gmail.com> Co-authored-by: Vladislav Arsenev <51095682+vladislavarsenev@users.noreply.github.com> Co-authored-by: Nathan H. Leung <github@nathanhleung.com> Co-authored-by: Balkishan <32493250+RyderKishan@users.noreply.github.com> Co-authored-by: Cullen Walsh <ckwalsh@cullenwalsh.com> Co-authored-by: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Co-authored-by: Ayush Sharma <ayush.sharma@trivago.com> Co-authored-by: Vladislav Arsenev <vladislav.arsenev@trivago.com> Co-authored-by: Stuart Dotson <stuart.dotson@calm.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Node 18 is EOL and holds us back on a few things. We may want to consider dropping support for 18.x