diff --git a/development/tooling.md b/development/tooling.md index ffc2ab8..7aff9bd 100644 --- a/development/tooling.md +++ b/development/tooling.md @@ -196,27 +196,28 @@ joining the oxfmt-superseded rules already off. are part of the public API. - The narrower scope keeps the signal high without config-file boilerplate. -### `knip` lists `src/index.ts` as an entry +### `knip` does not list the library entry #### Decision (2026-09) -`knip.json` declares `"entry": ["src/index.ts", "scripts/*.ts"]`. +`knip.json` declares `"entry": ["scripts/*.ts"]`; the library entry +`src/index.ts` is not listed. #### Why -- Supplying `entry` **replaces** knip's default entry detection, which otherwise - derives the public entry from `package.json` `exports`. Adding `scripts/*.ts` - there therefore dropped the library entry, so knip resolved the package through - its `dist/index.js` output and reported the unreferenced source entry file - `src/index.ts` as an unused file. -- Naming the source entry restores the link between the public API and the - source graph without pointing knip at build output. +- knip derives the public entry from `package.json` `exports` and resolves it to + `src/index.ts` itself, so naming the file is a redundant pattern and + `maintain:knip` reports it as a configuration hint. +- Listing `scripts/*.ts` does not switch that derivation off: the scope stays + clean with or without `dist/`, and with the barrel's own test removed. #### Rejected +- `"src/index.ts"` in `entry`: it silenced an `unused files` report for the + barrel, which the derivation above no longer produces; keeping it only adds a + hint. - `paths` mapping `dist/index.*` back to `src/index.ts`: more config to model a - relation the explicit entry states directly, and it would break whenever the - build layout changes. + relation knip already resolves. ### `maintain:outdated` ignores `@types/node` diff --git a/knip.json b/knip.json index 2b1590a..19b899b 100644 --- a/knip.json +++ b/knip.json @@ -1,5 +1,5 @@ { "$schema": "./node_modules/knip/schema.json", - "entry": ["src/index.ts", "scripts/*.ts"], + "entry": ["scripts/*.ts"], "ignoreDependencies": ["@runwisp/pubv"] }