Repository navigation
v0.1.10
Remove the double casts, by fixing what they were hiding
as unknown as T tells the compiler to stop checking. None of the ten in this
workspace turned out to be a real limit of the type system — each hid something
that could simply be described correctly:
- writing a property onto an object: Reflect.set does it without claiming the
object is something else - a synthetic root built only to satisfy a parameter that was never read; the
parameter is gone and the object with it - Dirent.parentPath, typed since Node 20.12 — the cast had outlived its reason
- a context interface that omitted url() and raw(), which the real request has;
declaring them made the cast unnecessary - a validator already assignable to the async form, void being assignable to
void | Promise - an AsyncCompiledRule passed off as a CompiledRule: different discriminants,
and the routing depends on which one it is. Overloads now say what each call
really returns - a hand-written connection type instead of the AsyncDatabaseConnection atlas
exports
The last one exposed a real defect: MigrationRunner declared
execute(): Promise<void> while every connection atlas hands out returns
{ rowsAffected }, so the runner rejected its own connections and callers cast
around it.
Create the GitHub release from the publish workflow
A published version arrived with no notes: npm showed a number, GitHub showed
nothing, and the only way to learn what changed was to read a diff. The commit
messages already carry the reasoning, so the release is built from the commits
the tag contains rather than written twice.
Skips a pure version bump, leaves an existing release alone, and does nothing
when the run was not built from a tag. The job takes contents:write for this;
the workflow default stays read.
Changes since v0.1.9.