computers
Version:
computer←→computer
29 lines (26 loc) • 747 B
JavaScript
import { createTransport, call } from '../chunk-BUCQFDXC.js';
// src/transports/websocket.ts
function websocket({ socket }, api = {}) {
return createTransport({
call: (path, args) => 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);
};
}
});
}
export { websocket };