computers
Version:
computer←→computer
33 lines (29 loc) • 993 B
JavaScript
;
var chunkS3XPJ4DD_cjs = require('../chunk-S3XPJ4DD.cjs');
// src/transports/web.ts
var MESSAGE_SOURCE_NAMESPACE = "::computers::";
function web({ target, self }, api = {}) {
return chunkS3XPJ4DD_cjs.createTransport({
call: (path, args) => chunkS3XPJ4DD_cjs.call(api, path, args),
send: (message) => {
return target.postMessage({
source: MESSAGE_SOURCE_NAMESPACE,
payload: message
});
},
subscribe: (notify) => {
const onMessage = (event) => {
if (!event.data) return;
if (typeof event.data !== "object" || event.data === null) return;
if (!("source" in event.data) || event.data.source !== MESSAGE_SOURCE_NAMESPACE) return;
notify(event.data.payload);
};
self.addEventListener("message", onMessage);
return () => {
self.removeEventListener("message", onMessage);
};
}
});
}
exports.MESSAGE_SOURCE_NAMESPACE = MESSAGE_SOURCE_NAMESPACE;
exports.web = web;