Skip to content

refactor [NET-1652]: Clean-up tsconfigs for the test-utils package#3276

Closed
mondoreale wants to merge 1 commit into
mainfrom
net-1652-clean-up-test-utils-package-tsconfigs
Closed

refactor [NET-1652]: Clean-up tsconfigs for the test-utils package#3276
mondoreale wants to merge 1 commit into
mainfrom
net-1652-clean-up-test-utils-package-tsconfigs

Conversation

@mondoreale

Copy link
Copy Markdown
Contributor

This pull request updates TypeScript project references and configuration for the test-utils package and its consumers. The main change is to simplify references to test-utils by pointing directly to the package directory instead of specific config files, and to clean up and clarify TypeScript config files for better project structure and build reliability.

TypeScript project reference updates

  • Updated all consumer packages (such as autocertifier-server, cdn-location, dht, node, proto-rpc, and sdk) to reference the test-utils package directly instead of test-utils/tsconfig.node.json in their various TypeScript config files (tsconfig.node.json, tsconfig.jest.json, tsconfig.browser.json).

test-utils package configuration improvements

  • Cleaned up and clarified the TypeScript config files in test-utils: added a root tsconfig.json with composite enabled and explicit references, reduced the tsconfig.jest.json include scope to only the test directory, and improved the formatting of tsconfig.node.json.

Build and script adjustments

  • Updated the build and check scripts in test-utils/package.json to use the root build and to ensure both jest and node configs are checked for type correctness.

@linear

linear Bot commented Dec 8, 2025

Copy link
Copy Markdown

@github-actions github-actions Bot added test-utils Related to Test Utils Package dht Related to DHT package proto-rpc sdk node labels Dec 8, 2025
@mondoreale mondoreale marked this pull request as ready for review December 8, 2025 22:01
@mondoreale mondoreale requested review from ptesavol and teogeb December 8, 2025 22:01
@mondoreale mondoreale marked this pull request as draft December 12, 2025 14:25
@mondoreale

Copy link
Copy Markdown
Contributor Author

Closing in favour or #3301.

@mondoreale mondoreale closed this Dec 15, 2025
@mondoreale mondoreale deleted the net-1652-clean-up-test-utils-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

dht Related to DHT package node proto-rpc sdk test-utils Related to Test Utils Package

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant