computers
Version:
computer←→computer
31 lines (27 loc) • 803 B
JavaScript
;
var chunkS3XPJ4DD_cjs = require('../chunk-S3XPJ4DD.cjs');
// src/transports/websocket.ts
function websocket({ socket }, api = {}) {
return chunkS3XPJ4DD_cjs.createTransport({
call: (path, args) => chunkS3XPJ4DD_cjs.call(api, path, args),
send: (message) => {
socket.send(JSON.stringify(message));
},
subscribe: (notify) => {
const onMessage = (event) => {
try {
const parsed = JSON.parse(event.data);
if (typeof parsed === "object" && parsed && "type" in parsed) {
notify(parsed);
}
} catch {
}
};
socket.addEventListener("message", onMessage);
return () => {
socket.removeEventListener("message", onMessage);
};
}
});
}
exports.websocket = websocket;