Skip to content

refactor [NET-1651]: Clean-up tsconfigs for the sdk package#3275

Closed
mondoreale wants to merge 9 commits into
mainfrom
net-1651-clean-up-sdk-package-tsconfigs
Closed

refactor [NET-1651]: Clean-up tsconfigs for the sdk package#3275
mondoreale wants to merge 9 commits into
mainfrom
net-1651-clean-up-sdk-package-tsconfigs

Conversation

@mondoreale

Copy link
Copy Markdown
Contributor

This PR refactors TypeScript configuration files and build scripts – primarily within the SDK package – to improve project structure, TypeScript build performance, and overall code clarity. Changes include updated project references, standardized tsconfig setups, enhanced SDK build/check workflows, and minor code quality improvements for environment compatibility and type safety.

Changes

TypeScript configuration & build improvements

  • Updated project references in several tsconfig files to point to the SDK package directory (../sdk), aligning with composite project best practices.
  • Refactored packages/sdk/tsconfig.json to explicitly reference both Jest and Node configs and to enable composite options for faster builds.
  • Cleaned up packages/sdk/tsconfig.node.json and tsconfig.jest.json by removing unused options, standardizing includes/excludes, and improving maintainability.

Build script enhancements

  • Updated SDK build and check scripts to use tsc -b, ensuring both Jest and Node configurations are type-checked for better CI and local error detection.

Code quality & compatibility

  • Added a @todo and DOM lib reference in RSAKeyPair.ts to flag mixed browser/Node logic for future separation.
  • Improved type safety in ECDSAKeyPairIdentity.ts by switching to webcrypto.JsonWebKey for better alignment with Node.js crypto APIs.

Cleanup

  • Removed the unused tsconfig.browser.json file from the sdk package, reducing clutter.

@linear

linear Bot commented Dec 8, 2025

Copy link
Copy Markdown

@github-actions github-actions Bot added cli-tools Related to CLI Tools Package sdk node labels Dec 8, 2025
@mondoreale mondoreale requested a review from teogeb December 8, 2025 21:41
@mondoreale mondoreale marked this pull request as ready for review December 8, 2025 21:41
Oh boy, once you start doing it tsc freaks out in terms of local/own src files (if you also happen to include those).
Now that `jest` includes all src we don't need to check node tsconfig separately.
@mondoreale

Copy link
Copy Markdown
Contributor Author

Closing in favour or #3301.

@mondoreale mondoreale closed this Dec 15, 2025
@mondoreale mondoreale deleted the net-1651-clean-up-sdk-package-tsconfigs branch December 15, 2025 19:26
mondoreale added a commit that referenced this pull request Dec 16, 2025
This pull request refactors TypeScript configuration across several
packages to simplify project structure and build scripts. It removes
redundant or legacy `tsconfig.node.json` and related files, consolidates
configuration into main `tsconfig.json` files, and updates references
and build scripts accordingly. The changes aim to reduce duplication,
streamline TypeScript project references, and make the build and test
processes more maintainable.

> [!NOTE]
> 
> In essence, this PR
> - Simplifies `build` – `tsc -b` across the board.
> - Simplifies `check` – `tsc -p tsconfig.jest.json`
> - Drops the Eslint-driven requirement of test files being in
package-level `tsconfig.json` files.
> 💡 `test/` dirs have their own `tsconfig.json` files that satisfy
eslint's project service resolver.
> - Renames `tsconfig.node.json` to `tsconfig.json` making it the main
entrypoint of each package.
> - Drop `references` field from `tsconfig.jest.json` files as these
produce a lot of unnecessary noise and we don't "build" through these.
> - Make the root `tsconfig.jest.json` disable emitting properly – we
\*don't* reference jest tsconfigs anymore!
> 💡 Although tsc does not complain, previously this behaviour was
against the rules of `composite` tsconfig setup – makes it hard to
predict what the outcome is (will it emit, or it won't?).
>
> It also covers a lot of what the following PRs offer:
> - #3271
> - #3272
> - #3273 
> - #3274
> - #3275
> - #3276
> - #3277 

### Changes

**TypeScript configuration consolidation:**

* Removed `tsconfig.node.json` and related files from multiple packages
(`autocertifier-server`, `cdn-location`, `cli-tools`), consolidating
configuration into main `tsconfig.json` files and updating their
`extends`, `include`, and `references` fields for clarity and
maintainability.
[[1]](diffhunk://#diff-b8ca01c11975250ba2d1cf703ecb4dfb3a3197b14d1e0fb1c92cab47c0f393efL1-L16)
[[2]](diffhunk://#diff-829757d9b00ea7fbff093ee2e216391cd3edcd5f46ddf05bde89e75eae6bfe83L1-L12)
[[3]](diffhunk://#diff-4e2d6360af04c468b2d5b2f6616a8ddd0c008d6f25cb3173a8b741cd15ec77d3L1-L18)
[[4]](diffhunk://#diff-4f7db719f0663c85b00b0dbfb67cd08b73003012b9de614802b30a1490546861L1-L9)
[[5]](diffhunk://#diff-6911c66f995472db595934d34bed8bb3b9d4f5f4e8dcef1329a16d498928e684L2-R14)
[[6]](diffhunk://#diff-6348cef142feb7833264b39ad43d4ef7281cf1ac9530f0ac807d3e6a547c9795L2-R10)
[[7]](diffhunk://#diff-38daa775ecafcf440e7c2b9817052481019197dfba8e0bbb482e7ce5efe0cfafL2-R16)
[[8]](diffhunk://#diff-ae13578e8d026eec67d6b00c439076ab2fc27081e16cb0744b996b414ec28a98L12-R12)

* Updated `tsconfig.jest.json` files to directly include relevant
source, test, and config files, and removed obsolete project references.
[[1]](diffhunk://#diff-08758b3945f3c6bf5569734c2c5d0528c21904deef2ca70414543e91107e6af9R4-L7)
[[2]](diffhunk://#diff-7b3ee0dcec62b1726878a419c615b3645198209626245d78f996ea5bb2a9ea31R4-L8)
[[3]](diffhunk://#diff-198e2b7b2035fa308d0d3c58fddc55ee01229e98c40f7c40ac11cffb40092f83L8-L14)

**Build and check script simplification:**

* Simplified `check` and `build` scripts in `package.json` files to use
the consolidated TypeScript configs, removing redundant or chained
TypeScript invocations.
[[1]](diffhunk://#diff-50299ff04a4b7e150c72c86a7d621a7a799aa89849e4885c6ac0887af7da9629L22-R22)
[[2]](diffhunk://#diff-650e71c74d8235428c25ec35eb19d1ab8daa27dc303d7564f493507a8c011b26L28-R28)
[[3]](diffhunk://#diff-2595495f28a036656bd9466e08f5fe32af851fb9bd3465eef7b2c202cd6ff83dL21-R21)
[[4]](diffhunk://#diff-48deceddbbe98a41ff1d0f560db132548031fbd96d790c09ffeed924a20e8a05L27-R29)

* Updated shell scripts and build commands to no longer rely on removed
config files.

**Test configuration improvements:**

* Added dedicated `test/tsconfig.json` files in several packages to
ensure test files are properly included and configured for TypeScript
and Jest.
[[1]](diffhunk://#diff-99570814e8a6d99b92ce03d11db23716ed24927bbc40da26f16424cb9135917cR1-R6)
[[2]](diffhunk://#diff-d33492e918ed4916dd23554eb003330d2983698030d26bbf2667c472e2bb0166R1-R6)

Overall, these changes make the TypeScript setup across packages more
consistent, easier to understand, and less error-prone.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cli-tools Related to CLI Tools Package node sdk

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant