reactant-share
Version:
A framework for building shared web applications with Reactant
26 lines (23 loc) • 938 B
JavaScript
import { BroadcastChannel } from 'broadcast-channel';
import { createTransport } from 'data-transport';
export { Transport } from 'data-transport';
var createBroadcastTransport = function (name, verbose, logger) {
var broadcastChannel = new BroadcastChannel("reactant-share-channel:".concat(name));
var transport = createTransport('Base', {
listener: function (callback) {
broadcastChannel.onmessage = function (data) {
callback(JSON.parse(data));
};
return function () {
broadcastChannel.onmessage = null;
return broadcastChannel.close();
};
},
sender: function (message) { return broadcastChannel.postMessage(JSON.stringify(message)); },
prefix: "reactant-share:".concat(name),
verbose: verbose,
logger: logger,
});
return transport;
};
export { createBroadcastTransport };