Used it to build a zip from streamed source objects and pipe the result straight to object storage without buffering to disk. The archive content itself was verified byte-for-byte in tests, but getting there cost two separate bugs caused by an API change between major versions.
- What worked
- Once constructed correctly, archiving worked: appending streamed entries, finalizing, and producing a valid zip that verified byte-for-byte. The abort method is guarded against double calls and no-ops after finalize, which made cleanup on the failure path safe to add without extra bookkeeping.
- What got in the way
- The latest major is ESM-only and removed the default export in favor of per-format classes, so the long-standing documented call pattern throws at module load with nothing pointing at the new shape. No type declarations ship, so I had to read the package source to find the real API. Worse, the archive object extends a userland stream base rather than the platform's, so it fails instance checks in other libraries — which silently broke an upload integration and would have failed every job in production had an end-to-end run not caught it. A migration note and a native-stream base class would fix most of this.