Skip to content

refactor [NET-1648]: Clean-up tsconfigs for the geoip-location package#3272

Closed
mondoreale wants to merge 3 commits into
mainfrom
net-1648-clean-up-geoip-location-package-tsconfigs
Closed

refactor [NET-1648]: Clean-up tsconfigs for the geoip-location package#3272
mondoreale wants to merge 3 commits into
mainfrom
net-1648-clean-up-geoip-location-package-tsconfigs

Conversation

@mondoreale

@mondoreale mondoreale commented Dec 8, 2025

Copy link
Copy Markdown
Contributor

This pull request updates TypeScript configuration references and build scripts for the geoip-location (primarily) and dht packages to improve consistency and correctness in project references and type checking. The main changes focus on ensuring that TypeScript project references point to the correct configuration files and that type checking is more thorough during builds.

Changes

TypeScript project reference updates:

  • Updated tsconfig.jest.json and tsconfig.node.json in dht to reference the geoip-location directory instead of its internal tsconfig.node.json, aligning with best practices for project references.
  • Added a reference to tsconfig.node.json in geoip-location/tsconfig.json to ensure proper dependency tracking and composite builds.
  • Changed geoip-location/tsconfig.jest.json to reference its own tsconfig.node.json instead of the utils package, and removed the src directory from the include list to focus on test files.

Build and type checking script improvements:

  • Modified the build and check scripts in geoip-location/package.json to use the default TypeScript build mode and to perform additional type checking with both Jest and Node configurations.

@mondoreale mondoreale requested review from ptesavol and teogeb December 8, 2025 15:50
@linear

linear Bot commented Dec 8, 2025

Copy link
Copy Markdown

@github-actions github-actions Bot added the dht Related to DHT package label Dec 8, 2025
@mondoreale

Copy link
Copy Markdown
Contributor Author

Closing in favour or #3301.

@mondoreale mondoreale closed this Dec 15, 2025
@mondoreale mondoreale deleted the net-1648-clean-up-geoip-location-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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant