Skip to content

Releases: dumbmatter/promise-worker-bi

v4.1.0

09 Oct 18:34
Compare
Choose a tag to compare

Added support for transferable objects in messages and responses from both the host and worker. Example:

const buffer = new ArrayBuffer(1);
promiseWorker.postMessage(buffer, undefined, [buffer]);

promiseWorker.register(async (buffer) => {
  const processed = await processBuffer(buffer);

  return {
    message: processed,
    _PWB_TRANSFER: [processed.someTransferableProprty],
  };
});

v4.0.3

31 Jan 02:23
Compare
Choose a tag to compare

Just a fix to the TypeScript types - the second argument to PWBWorker.postMessage is optional. See #5 from @Jazcash

v4.0.2

14 May 04:18
Compare
Choose a tag to compare

Upgrade dependencies, fix for TypeScript 3.9 while breaking for any older versions of TypeScript.

v4.0.1

14 Jan 04:10
Compare
Choose a tag to compare

Switched from Flow to TypeScript, cause momentum. Sadly TypeScript sucks at supporting shared workers, so the typings are a bit worse, but promise-worker-bi works the same.

v4.0.0

06 Nov 15:13
Compare
Choose a tag to compare

Split the old PromiseWorker class into two separate classes PWBHost and PWBWorker, so they can be included separately in main and worker bundles, leading to smaller bundle sizes if you use tree shaking and dead code elimination. Savings seems to just be a couple kb of minified JS per bundle, but every byte counts!

v3.0.2

06 Jul 14:09
Compare
Choose a tag to compare

This should obviously print "true":

blob = new Blob(["self.onmessage = function() {};"], { type: "text/javascript" });
worker = new Worker(window.URL.createObjectURL(blob));
console.log(worker instanceof Worker);

However in some rare cases, it will print "false" in Safari. This caused bugs in prior versions of promise-worker-bi, but this release includes a workaround.

v3.0.1

14 Jun 01:58
Compare
Choose a tag to compare

Restore console.error logging for errors in the worker, because otherwise it can be difficult to debug live since the errors sent back to the window by promise-worker-pi do not have source maps applied.

v3.0.0

14 Jun 01:59
Compare
Choose a tag to compare

v3.0.0 brings better and more consistent error handling!

All errors from workers include the stack property, and any others (Firefox has some extra non-standard properties). Since normally stack traces are not sent from the worker to the main thread, instead we capture the stack trace in the worker and manually send it to the main thread.

Additionally, the callback passed to PromiseWorker.registerError will now recieve Error objects directly, rather than ErrorEvent objects or weird non-standard things that are kind of like ErrorEvent objects. This is a breaking change to the API, necessitating the new major version.

v2.2.1

13 Apr 13:33
Compare
Choose a tag to compare

Fix race condition where hostID was previously sometimes undefined.

v2.2.0

29 Mar 00:37
Compare
Choose a tag to compare

Cross-browser consistency in error reporting from Shared Workers through PromiseWorker.registerError.