v0.1.17
Release 0.1.17
Declare the ctx.view the provider installs
InkerProvider.start() installs it as a context getter, seeded with the
request, so a controller renders without threading anything. The property
existed at run time and not for the compiler: every ctx.view.render(...)
was a type error in an application that had done nothing wrong.
ContainerBindings was already augmented, which is what made this easy to
miss — resolving container.make('inker') had a type, and the surface a
controller actually writes did not.
Not optional, unlike a middleware-attached property: the getter goes on
the context class itself, so an application that registered inker has it
on every request.
A type-only failure is invisible to a runtime suite, so it is asserted by
compiling a snippet the way an application would — including one that must
still be REFUSED, so the augmentation adds what the provider installs
rather than opening the context to anything.
Lint this package the way its own repository will
biome's configuration lived only at the workspace root, so lint in CI —
which runs from this package's own repository, with no such file — fell
back to biome's defaults and checked different rules from lint here.
What its own config surfaced: the Macroable stand-in is static-only
because the host's is, which is exactly what the provider duck-types.
Declare what CI has to install
Each package is its own repository: pnpm install there sees only this
file, so a dependency the workspace happened to hoist locally is simply
absent in CI. --coverage needs @vitest/coverage-v8 named here, and an
optional peer a test imports has to be a devDependency as well — optional
is exactly what keeps it from being installed.
Run the gates the package already declared
Three guard-rails were configured and never reached CI, so each one was a
gate nothing ran:
tsconfig.jsonincludestests, but CI typechecked only
tsconfig.build.json— every type a test relied on went unchecked.vitest.config.tsdeclares coverage thresholds, but CI ran plain
vitest run, which does not read them.lintpointed atsrc/alone, so no test file was ever linted.
CI now runs pnpm typecheck, pnpm test:coverage and a lint that covers
tests/ as well.
Changes since v0.1.16.