threads
Version:
Web workers & worker threads as simple as a function call
27 lines (26 loc) • 989 B
JavaScript
/// <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
};
;