Skip to content

Release notes

Eugene Lazutkin edited this page Aug 8, 2026 · 5 revisions

Release notes

1.0.0 — 2026-08-08

The initial release.

  • createBundler(options) — the web-standard fetch-handler core (platform-pure: Bun/Deno/service workers/edge): v1 wire format, required isUrlAcceptable allow-list, resolveUrl mapping, outer-request auth/cookie propagation, per-part conditional headers, parallel fan-out, per-part failure granularity (synthetic 403/400/405/502/504 parts), partTimeout raced explicitly against signal-ignoring upstreams, base64-sorts-last envelope assembly, Cache-Control: no-store envelopes.
  • Hooks — observers onBundleStart / onItemFinish / onBundleFinish (unawaited, failures swallowed: instrumentation cannot fail a bundle; per-part durationMs is upstream time, whole-bundle durationMs covers fan-out and transforms) and transforms processResult / processBundle (awaited; nullish keeps the original, a throw degrades to a synthetic 500 part or a 500 envelope). processResult runs before the base64 sort so transformed binary parts still sort last.
  • Streamed framing (application/vnd.double-meh.bundle+jsonl) — client-negotiated via Accept, streaming: true by default: a {"v":1} header line then one part per line, flushed as upstreams complete, in completion order. The part shape is unchanged, so v stays 1 and the content type is the discriminator; base64 parts still ship last. Disabled automatically when processBundle is configured (that transform needs the whole envelope, and skipping a configured transform would be worse than not streaming). The node adapter switches gzip to Z_SYNC_FLUSH for 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 bare node:http and 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:http and real Koa servers on Node, Bun, and Deno, and against the published double-meh client over real HTTP (tests/test-conformance.js, double-meh as a devDependency): buffered and streamed bundles, per-URL part caching, and the synthetic-part → FailedIO mapping.

🔍 Search the wiki

double-meh-bundler

Start

API

Protocol

Project

Clone this wiki locally