UNPKG

threads

Version:

Web workers & worker threads as simple as a function call

25 lines (24 loc) 909 B
/// <reference lib="dom" /> // tslint:disable no-shadowed-variable const isWorkerRuntime = function isWorkerRuntime() { const isWindowContext = typeof self !== "undefined" && typeof Window !== "undefined" && self instanceof Window; return typeof self !== "undefined" && self.postMessage && !isWindowContext ? true : false; }; const postMessageToMaster = function postMessageToMaster(data, transferList) { self.postMessage(data, transferList); }; const subscribeToMasterMessages = function subscribeToMasterMessages(onMessage) { const messageHandler = (messageEvent) => { onMessage(messageEvent.data); }; const unsubscribe = () => { self.removeEventListener("message", messageHandler); }; self.addEventListener("message", messageHandler); return unsubscribe; }; export default { isWorkerRuntime, postMessageToMaster, subscribeToMasterMessages };