Skip to content

refactor!: Drop Node.js v20 support, require v22.11+#1560

Merged
gjtorikian merged 1 commit intomainfrom
support-v22
Apr 17, 2026
Merged

refactor!: Drop Node.js v20 support, require v22.11+#1560
gjtorikian merged 1 commit intomainfrom
support-v22

Conversation

@workos-sdk-automation
Copy link
Copy Markdown
Contributor

Summary

  • Bumps minimum Node.js version from v20.15.0 to v22.11.0 (first v22 LTS)
  • Removes Node 20 from CI test matrix
  • Updates @types/node from ~20 to ~22
  • Updates README requirements

Test plan

  • CI passes on Node 22 and 24
  • npm install works with Node 22.11+
  • npm install rejects Node <22.11 via engines field

🤖 Generated with Claude Code

Node.js 20 reaches end-of-life in April 2026. This bumps the minimum
supported version to 22.11.0 (the first v22 LTS release), updates the
CI matrix, @types/node, and documentation accordingly.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@workos-sdk-automation workos-sdk-automation bot requested review from a team as code owners April 17, 2026 19:03
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Apr 17, 2026

Greptile Summary

This PR drops Node.js v20 support and sets the minimum to v22.11.0 (first v22 LTS), updating the CI matrix, engines field, @types/node dev dependency, and README consistently. All primary changes are correct and coherent.

Confidence Score: 5/5

Safe to merge — all intentional changes are consistent and correct; the only finding is a minor lockfile regeneration artifact.

All four files change exactly what the PR describes. The sole finding (transitive dep versions going backwards in package-lock.json) affects only dev/optional packages and has no impact on the published library. P2 findings do not reduce the score below 5.

package-lock.json — worth a quick sanity check on the workerd/emnapi version downgrades, but not blocking.

Important Files Changed

Filename Overview
.github/workflows/ci.yml Node 20 removed from the test matrix; now tests on [22, 24] only — consistent with the new minimum version requirement.
README.md Requirements section updated from "Node 20 or higher" to "Node 22.11 or higher" to match the new engines constraint.
package.json engines.node bumped to >=22.11.0 and @types/node dev dependency updated from ~20 to ~22; both changes are consistent with the stated goal.
package-lock.json Expected changes (engines, @types/node) are present, but optional/dev transitive dependencies (@cloudflare/workerd-, @emnapi/) regressed to older versions — likely a lockfile regeneration artifact.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Drop Node 20 support] --> B[package.json engines ge 22.11.0]
    A --> C[README Node 22.11 or higher]
    A --> D[CI matrix nodes 22 and 24]
    A --> E[types/node updated to ~22]
    B --> F{npm install check}
    F -->|Node lt 22.11| G[Install rejected]
    F -->|Node ge 22.11| H[Install proceeds]
    D --> I[Tests on Node 22 LTS]
    D --> J[Tests on Node 24]
Loading

Comments Outside Diff (1)

  1. package-lock.json, line 61-67 (link)

    P2 Unexpected transitive dependency downgrades

    Several optional/dev packages regressed to older versions in this lockfile regeneration: @cloudflare/workerd-* went from 1.20260415.11.20260317.1 and @emnapi/core/@emnapi/runtime went from 1.9.21.9.1. These are likely an artifact of running npm install from a different state than the prior lockfile. Since they're dev/optional deps this doesn't affect published output, but it's worth confirming the lockfile was regenerated intentionally (e.g. with a clean node_modules) rather than picking up stale resolutions.

Reviews (1): Last reviewed commit: "refactor!: Drop Node.js v20 support, req..." | Re-trigger Greptile

@gjtorikian gjtorikian merged commit 24609a7 into main Apr 17, 2026
7 checks passed
@gjtorikian gjtorikian deleted the support-v22 branch April 17, 2026 19:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant