Skip to content

feat: add Node 24 tsconfig presets - #50

Merged
ryanmcafee merged 1 commit into
mainfrom
feat/PLATENG-1397-node24-tsconfig-preset
Oct 21, 2026
Merged

ryanmcafee merged 1 commit into
mainfrom
feat/PLATENG-1397-node24-tsconfig-preset

Conversation

@ryanmcafee

Copy link
Copy Markdown
Contributor

https://jupiterone.atlassian.net/browse/PLATENG-1397

Consumers moving to Node 24 (e.g. graphql-proxy-service, PLATENG-1399) have no preset newer than node20. Adds typescript-node24 and typescript-node24-monorepo targeting ES2024. module stays CommonJS from the shared base, so CJS consumers are not forced onto NodeNext. ES2024 requires TypeScript >= 5.7.

Bumps to 20.1.0; the release job publishes on merge.

Add typescript-node24 and typescript-node24-monorepo presets with
target/lib ES2024 (fully supported by Node 24's V8). module stays
CommonJS via the shared base so CJS consumers are not forced onto
NodeNext. ES2024 requires TypeScript >= 5.7; the package already
depends on typescript ^5.8.3.

Bump to 20.1.0 so the release job publishes on merge.

Refs: PLATENG-1397

Co-Authored-By: Ryan McAfee - AI <ryan.mcafee+ai@jupiterone.com>
@ryanmcafee

Copy link
Copy Markdown
Contributor Author

Verification: graphql-proxy-service can extend the node24 preset

Setup: scratch worktree of graphql-proxy-service at origin/main, npm pack of this branch (9c4f658) installed into it, root tsconfig.json switched to typescript-node24-monorepo. No PR opened there (that is PLATENG-1399).

Resolved config: target: es2024, lib: [es2024], module: commonjs, moduleResolution: node10, composite/declaration: true.

Results:

  • npm run build (nx, both packages): pass
  • auth-cache-client npm run typecheck: pass
  • graphql-proxy-service package (no typecheck script, so a temporary tsc --noEmit script was added): 3x TS18046 'err' is of type 'unknown' on the first run. The same 3 errors show up with the node18 preset on 20.1.0, so they come from useUnknownInCatchVariables (in the shared base since 20.0.0), not from the node24 preset. With those 3 catch sites narrowed in scratch, the type-check passes.
  • npm run lint: fails because typescript-tools 20.x brings ESLint 9 and graphql-proxy-service has no eslint.config.*. This is also unrelated to the preset.

Bumping typescript-tools also moves the hoisted TypeScript from 5.4.5 to 5.9.3, which ES2024 needs (>= 5.7).

Follow-ups for PLATENG-1399: fix the 3 catch sites (ErrorTolerantDataSource.ts:95, LambdaDataSource.ts:246, rateLimitHook.ts:100), migrate to flat ESLint config, and bump esbuild --target=node18 to node24.

@ryanmcafee
ryanmcafee merged commit 8d0101c into main Oct 21, 2026
8 checks passed
@ryanmcafee
ryanmcafee deleted the feat/PLATENG-1397-node24-tsconfig-preset branch October 21, 2026 18:00
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.

2 participants