UNPKG

threads

Version:

Web workers & worker threads as simple as a function call

27 lines (26 loc) 989 B
"use strict"; /// <reference lib="dom" /> // tslint:disable no-shadowed-variable Object.defineProperty(exports, "__esModule", { value: true }); 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; }; exports.default = { isWorkerRuntime, postMessageToMaster, subscribeToMasterMessages };