Skip to content Version [0.4.1]
Added
- Factory-time option key validation with Levenshtein suggestions. (#126)
All 18 middleware factories now validate incoming option keys at factory invocation
time via a shared
lib/validate-options.js utility. Unknown keys emit a deduplicated
process.emitWarning with {type: 'ErgoWarning'} and a “did you mean?” suggestion
when the Levenshtein edit distance is within threshold. handler() validates the union
of its own keys and send() keys; send() validates independently.
timing option on handler() for X-Response-Time header. (#127)
Pass timing: true for defaults or timing: {header?, precision?} for custom
configuration. Measures the full request lifecycle (pipeline + error handling + send)
via a res.writeHead interception. Zero overhead when disabled (default). Shared
primitive lib/response-time.js available for deep import by @centralping/ergo-router.
Changed
- README TypeScript Quick Start updated to reflect shipped type infrastructure. (#131)
Removed the forward-looking caveat about future type inference improvements — all
prerequisite features have shipped (compose overloads #87, typed middleware #108,
ergo-router accumulator inference ergo-router#91). Simplified the TS example by removing
the
AuthResult interface and explicit IncomingMessage/ServerResponse imports.
Replaced the caveat with a factual note explaining when acc annotations are needed
(standalone compose() with interleaved bare functions) and directing users to
@centralping/ergo-router’s defineGet/definePost helpers for annotation-free
inference.