-
Notifications
You must be signed in to change notification settings - Fork 0
Release notes
Eugene Lazutkin edited this page Aug 8, 2026
·
5 revisions
The initial release.
-
createBundler(options)— the web-standard fetch-handler core (platform-pure: Bun/Deno/service workers/edge): v1 wire format, requiredisUrlAcceptableallow-list,resolveUrlmapping, outer-request auth/cookie propagation, per-part conditional headers, parallel fan-out, per-part failure granularity (synthetic 403/400/405/502/504 parts),partTimeoutraced explicitly against signal-ignoring upstreams, base64-sorts-last envelope assembly,Cache-Control: no-storeenvelopes. - Hooks — observers
onBundleStart/onItemFinish/onBundleFinish(unawaited, failures swallowed: instrumentation cannot fail a bundle; per-partdurationMsis upstream time, whole-bundledurationMscovers fan-out and transforms) and transformsprocessResult/processBundle(awaited; nullish keeps the original, a throw degrades to a synthetic 500 part or a 500 envelope).processResultruns before the base64 sort so transformed binary parts still sort last. - Streamed framing (
application/vnd.double-meh.bundle+jsonl) — client-negotiated viaAccept,streaming: trueby default: a{"v":1}header line then one part per line, flushed as upstreams complete, in completion order. The part shape is unchanged, sovstays 1 and the content type is the discriminator; base64 parts still ship last. Disabled automatically whenprocessBundleis configured (that transform needs the whole envelope, and skipping a configured transform would be worse than not streaming). The node adapter switches gzip toZ_SYNC_FLUSHfor streamed responses — without it gzip re-buffers the stream, and with it the bundle costs +25% bytes at 10 parts / +57% at 50. -
double-meh-bundler/node.js— duck-typed(req, res, next?)adapter covering barenode:httpand Express; gzips the envelope by default. -
double-meh-bundler/koa.js— duck-typed terminal Koa middleware with structural types (no@types/koa); works around Koa's null-body → 204 rewrite. - Conformance-tested against real
node:httpand real Koa servers on Node, Bun, and Deno, and against the publisheddouble-mehclient over real HTTP (tests/test-conformance.js,double-mehas a devDependency): buffered and streamed bundles, per-URL part caching, and the synthetic-part →FailedIOmapping.
Start
API
Protocol
Project