All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
BREAKING: Client#(method name).broadcast:onProgress
now receives a map of nodeId
to progress values, which makes aggregating individual nodes' progress data into a single coherent progress value easier:
import { sum } from "./utils";
await client.thing.broadcast(67, (ps) =>
console.log((sum(ps.values()) / ps.size) * 100 + "% done"),
);
nodeId
, the ID of the node executing the request, in the tools
argument.Client:option.nodes
, to control the number of nodes (worker instances) to spin upClient#(method name).broadcast
Client:options.worker
is now either a string (path to the worker's source code) or a class, not an instanceClient:options.worker
is set, the Client now launches by default navigator.hardwareConcurrency
nodes (worker instances) and dispatches requests to them in a balanced way.Client:options.localStorage
to define a Server
-accessible polyfilled localStorage
with data (See #32)Server#start
is now asynchronous, but does not take an argument anymore.Server:options.worker
is correctly typedClient:options.restartListener
, mostly for testing purposesProcedureImplementation:tools.logger
Server#start
's self
parameter now correctly accepts both Window
and Worker
contexts.autotransfer
property on procedure declarations