wessberg / DI-compiler

A Custom Transformer for Typescript that enables compile-time Dependency Injection
MIT License
80 stars 7 forks source link

Support custom tsconfig paths #30

Open cmidgley opened 3 months ago

cmidgley commented 3 months ago

Custom tsconfig.json file are ignored by di-compiler, as it uses the get-tsconfig package to scan for the default tsconfig.json file. For example, if using tsconfig.test.json with "di": { "identifier": "myContainer" }, it will not work because di-compiler will load these settings from tsconfig.json (and not tsconfig.test.json).

To resolve this, the arguments passed to the compiler (in typescript.sys.args) are checked for the -p (or --project) options and the following parameter is used as the typescript filename, which is then provided to the get-tsconfig method getTsconfig. If the -p option is not found, it results in undefined, which falls back on the existing defaults to scan for a tsconfig.json file.

Ran test suite and all tests pass. Likely the github actions execution will fail again, as my last pull request failed due to a pnpm version compatibility issue with the actions (and #28 likely needs to be addressed as well).