All versions since [Unreleased]
[Unreleased] Latest
Fixed
-
logger()lowercases header name options at construction. (#316)headerRequestIdName/headerRequestIpNameare normalized with.toLowerCase()soreq.headers[...]lookups match Node’s lowercased incoming header keys (RFC 9110 §5.1). Mixed-case values such as'X-Request-Id'no longer silently miss the proxy header and fall through to UUID / missing IP. Non-string values throwTypeErrorat construction (logger(): "…" option must be a string), matching the rate-limit / timeout / handler factory-time value-validation pattern. -
http/timeoutvalidates option values at construction and names default constants. (#303, #306) Named defaultsDEFAULT_TIMEOUT_MS/DEFAULT_STATUS_CODE(viaSTATUS_CODE_REQUEST_TIMEOUT/STATUS_CODE_GATEWAY_TIMEOUT) replace magic-number destructuring. Factory throwsTypeErrorwhenmsis not a positive finite number, whenmsexceedsMAX_TIMEOUT_MS(NodesetTimeoutsigned 32-bit max — larger values clamp to 1 ms), or whenstatusCodeis not408or504(keys-onlyvalidateOptionswas previously the only check). Matches the rate-limit factory-time value-validation pattern. -
handler()throws TypeError at construction whenpipelineoronResponseis not a function. (#309) Factory previously accepted invalid types and deferred failure to the first request (pipeline→ perpetual 500; truthy non-functiononResponse→ silently swallowed). Matches the rate-limit / idempotency construction-time value-validation pattern.