Skip to content

Runtime support

Environment Status
Node.js 22 and 24 Supported and tested
Node.js below 22 Not tested; no support promise
Chromium and Firefox pages Supported and tested
Chromium and Firefox Web Workers Supported and tested
Node worker_threads Supported
esbuild bundles Tested, including browser and minified output
AMD define("xlsx") and plain script global Supported and tested
Safari and other browsers Not tested

The package declares Node.js >=22. It is CommonJS. In ESM use import XLSX from "@agent-sheet/wasm"; Node named imports are not supported.

The engine is a WebAssembly module embedded in the JavaScript files. The runtime needs:

  • Synchronous WebAssembly.Module and WebAssembly.Instance.
  • Standard WebAssembly 1.0. No additional proposals are required.
  • Uint8Array, ArrayBuffer, and either atob or Buffer.
  • ES2017 JavaScript features. TextEncoder and TextDecoder are used when available.
  • Node fs for disk helpers and Node streams for stream.*.

The library is ready when it loads. There is no initialization promise. The engine’s operations are synchronous; writeFileAsync uses asynchronous file I/O after serialization.

Browser policies must allow WebAssembly compilation. See Browsers and CSP. The ES5 shim does not remove that requirement. Projects that need old JavaScript-only runtimes should stay with the original @sheet/edit package.

Opening generated files in Excel or Apple Numbers was not tested. Format read/write support describes the package API, not validation in those applications.