Skip to content

refactor [NET-1647]: Clean-up tsconfigs for the dht package#3271

Closed
mondoreale wants to merge 1 commit into
mainfrom
net-1647-clean-up-dht-package-tsconfigs
Closed

refactor [NET-1647]: Clean-up tsconfigs for the dht package#3271
mondoreale wants to merge 1 commit into
mainfrom
net-1647-clean-up-dht-package-tsconfigs

Conversation

@mondoreale

@mondoreale mondoreale commented Dec 8, 2025

Copy link
Copy Markdown
Contributor

This pull request updates TypeScript configuration files across several packages to improve project references and build consistency, especially for the dht package and its dependents. The main changes involve simplifying and correcting TypeScript project references, updating build scripts, and making includes and references more precise.

Changes

TypeScript project references and configuration updates:

  • Updated all references to the dht package's TypeScript configuration from ../dht/tsconfig.node.json to simply ../dht in multiple packages, streamlining project references and aligning with TypeScript's project reference resolution. * Added and reorganized references within dht/tsconfig.json to include tsconfig.node.json and tsconfig.karma.json, ensuring all relevant configs are part of the composite project.
  • Updated dht/tsconfig.jest.json references to point to the local tsconfig.node.json and removed unnecessary references to unrelated packages, narrowing the scope for Jest builds.

Build script and inclusion improvements:

  • Modified the dht package's build script to use tsc -b (building all referenced projects) and enhanced the check script to also type-check tsconfig.node.json.
  • Expanded the include array in dht/tsconfig.node.json to add the scripts directory, ensuring scripts are included in the build.

Test and browser configuration adjustments:

  • Reformatted the types array in trackerless-network/tsconfig.jest.json for better readability.

@linear

linear Bot commented Dec 8, 2025

Copy link
Copy Markdown

@github-actions github-actions Bot added network Related to Network Package dht Related to DHT package sdk labels Dec 8, 2025
@mondoreale mondoreale force-pushed the net-1647-clean-up-dht-package-tsconfigs branch from f385ff6 to ffa3907 Compare December 12, 2025 10:53
@mondoreale mondoreale force-pushed the net-1647-clean-up-dht-package-tsconfigs branch from ffa3907 to 459773c Compare December 12, 2025 10:56
@mondoreale mondoreale marked this pull request as draft December 12, 2025 14:24
@mondoreale

Copy link
Copy Markdown
Contributor Author

Closing in favour of #3301.

@mondoreale mondoreale closed this Dec 15, 2025
@mondoreale mondoreale deleted the net-1647-clean-up-dht-package-tsconfigs branch December 15, 2025 19:23
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 network Related to Network Package sdk

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants