Releases: btravstack/tools
Release list
@btravstack/tsconfig@0.4.0
Minor Changes
-
7dc497d:
test-d.json: the preset for a type-level test project.Type-level tests assert with bindings nothing reads —
type _x = Expect<Equal<A, B>>
— sonoUnusedLocalsandnoUnusedParametersmust be off for that project and
on everywhere else. Every workspace with atsconfig.test-d.jsonwas writing
those two flags out by hand, along with the reason, or more often without it.{ "extends": ["./tsconfig.json", "@btravstack/tsconfig/test-d.json"], "include": ["src/**/*.test-d.ts"] }The preset comes last in the array so its relaxations win over the strict
config beneath.It carries no
include, and cannot: TypeScript resolves a base config's
include/exclude/filesrelative to the base file's own directory,
so a shipped glob would point insidenode_modulesand match nothing. Measured
— anincludeofsrc/**/*.test-d.tsin a base one directory up resolves to
../base/src/**/*.test-d.tsand reportsTS18003.scripts/validate.mjsholds the shape as an
allow-list —$schemaplus exactly those twocompilerOptions— rather
than forbidding the four keys a reader would reach for. The preset is layered
last in a consumer'sextendsarray, so anything it grows silently overrides
the workspace's own config, and only naming what may appear catches a key
nobody thought to forbid.
@btravstack/tsconfig@0.3.0
Minor Changes
-
d2cd3a9:
app.json:base.jsonwithdeclarationanddeclarationMapoff, for a
workspace that emits no declarations.Declaration emit is type-checked even under
noEmit, sodeclaration: true
costs an application the errors it buys a library. Measured on a DI composition
root with one unmet dependency: twoTS4023lines about a library's internal
ID/SERVICEbrand symbols printed first, and the sentence naming the
missing port printed third. An application that ships no.d.tshas nothing to
gain from that check and pays for it on every mistake, internals-first.A library keeps
base.json, where the check is the guarantee that its consumers
can build.