Skip to content

chore: update all dependencies - #1201

Open
bekvbe wants to merge 6 commits into
ci/github-actions-node22from
chore/update-dependencies
Open

bekvbe wants to merge 6 commits into
ci/github-actions-node22from
chore/update-dependencies

Conversation

@bekvbe

@bekvbe bekvbe commented Jul 6, 2026

Copy link
Copy Markdown

Summary

Stacked on #1200 (GHA + Node 22). Brings every dependency current:

Runtime deps

  • isomorphic-fetch 2.2.1 → 3.0.0 — retires the ancient node-fetch v1 fallback (pre-Node-18 consumers get node-fetch v2; Node 18+ uses native fetch as before)
  • promise-retry 1.1.1 → 2.0.1, @babel/runtime → latest 7.x, lodash → 4.18
  • Babel stays on 7.x on purpose — @babel/runtime 8.0.0 requires migrating the whole build chain to Babel 8, out of scope here

Dev deps

  • typescript 4.3 → 6.0 with @goodeggs/tsconfig 1 → 2 and @goodeggs/toolkit 7 → 8
  • mocha 11, nyc 18, leasot 14, @types/node 22, latest @types/* (@types/node-fetch stays v2 to match what isomorphic-fetch 3 uses)
  • Removed flow-bin — nothing references it (build:types runs tsc); it was 80+ releases stale

Type fallout (no runtime behavior changes)

  • TS 6 no longer auto-includes @types packages → explicit types list in tsconfig; skipLibCheck for third-party declaration hygiene
  • catch variables are unknown under modern strict mode → annotated where the code mutates errors (the existing err.retryCount/err.name pattern; 13 lint warnings for no-explicit-any, no errors)
  • Test fetch spy/stub types use Parameters<typeof fetch> instead of the DOM-lib RequestInfo global
  • getRequestOptions return cast documents that it intentionally passes node-fetch extension options (timeout, agent) not present in RequestInit

Not changed: engines stays >=12 — the shipped (transpiled) code is unchanged, so no reason to force a breaking engine bump on consumers.

Test plan

  • Full yarn test green on Node 22: 35 passing, 0 failing; typecheck 0 errors; lint 0 errors
  • yarn build (transpile + declarations) succeeds
  • CI passes

Note for reviewers

@goodeggs/toolkit/@goodeggs/tsconfig metadata on npm.goodeggs.com requires auth that yarn 1 fails to send from ~/.npmrc scope config — updating those two needed a temporary project-local token line (not committed; verified no token in the diff). Existing lockfile installs are unaffected.

bekvbe added 6 commits July 6, 2026 16:15
Runtime: isomorphic-fetch 2→3 (node-fetch v2 fallback for pre-18 node),
promise-retry 1→2, latest babel 7.x runtime, lodash 4.18.

Dev: typescript 4.3→6.0 with @goodeggs/tsconfig 2 and @goodeggs/toolkit 8,
mocha 11, nyc 18, leasot 14, @types/node 22. Removed flow-bin (nothing
references it; build:types uses tsc).

Type fallout from TS 6 + the ESNext-only lib in tsconfig v2:
- explicit types list in tsconfig (TS 6 no longer auto-includes @types)
  plus skipLibCheck
- catch variables are unknown under strict mode: annotated where the
  code mutates the error
- test fetch spy/stub types use Parameters<typeof fetch> instead of the
  DOM-lib RequestInfo global
- getRequestOptions return cast: it intentionally passes node-fetch
  extension options (timeout, agent) that RequestInit does not declare
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant