UNPKG

@zkp2p/reclaim-witness-sdk

Version:

<div> <div> <img src="https://raw.githubusercontent.com/reclaimprotocol/.github/main/assets/banners/Attestor-Core.png" /> </div> </div>

60 lines 4.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.makeRpcTcpTunnel = void 0; const utils_1 = require("../../utils"); /** * Makes a tunnel communication wrapper for a TCP tunnel. * * It listens for messages and disconnect events from the server, * and appropriately calls the `onMessage` and `onClose` callbacks. */ const makeRpcTcpTunnel = ({ tunnelId, client, onClose, onMessage, }) => { let closed = false; client.addEventListener('tunnel-message', onMessageListener); client.addEventListener('tunnel-disconnect-event', onDisconnectListener); client.addEventListener('connection-terminated', onConnectionTerminatedListener); return { async write(message) { await client.sendMessage({ tunnelMessage: { tunnelId, message } }); }, async close(err) { if (closed) { return; } onErrorRecv(err); await client.rpc('disconnectTunnel', { id: tunnelId }); } }; function onMessageListener({ data }) { if (data.tunnelId !== tunnelId) { return; } onMessage === null || onMessage === void 0 ? void 0 : onMessage(data.message); } function onDisconnectListener({ data }) { var _a; if (data.tunnelId !== tunnelId) { return; } onErrorRecv(((_a = data.error) === null || _a === void 0 ? void 0 : _a.code) ? utils_1.AttestorError.fromProto(data.error) : undefined); } function onConnectionTerminatedListener({ data }) { onErrorRecv(data); } function onErrorRecv(err) { var _a; (_a = client.logger) === null || _a === void 0 ? void 0 : _a.debug({ tunnelId, err }, 'TCP tunnel closed'); client.removeEventListener('tunnel-message', onMessageListener); client.removeEventListener('tunnel-disconnect-event', onDisconnectListener); client.removeEventListener('connection-terminated', onConnectionTerminatedListener); onClose === null || onClose === void 0 ? void 0 : onClose(err); onClose = undefined; closed = true; } }; exports.makeRpcTcpTunnel = makeRpcTcpTunnel; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZS1ycGMtdGNwLXR1bm5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvdHVubmVscy9tYWtlLXJwYy10Y3AtdHVubmVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHFDQUF5QztBQVV6Qzs7Ozs7R0FLRztBQUNJLE1BQU0sZ0JBQWdCLEdBQXNDLENBQUMsRUFDbkUsUUFBUSxFQUNSLE1BQU0sRUFDTixPQUFPLEVBQ1AsU0FBUyxHQUNULEVBQUUsRUFBRTtJQUNKLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQTtJQUNsQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtJQUM1RCxNQUFNLENBQUMsZ0JBQWdCLENBQUMseUJBQXlCLEVBQUUsb0JBQW9CLENBQUMsQ0FBQTtJQUN4RSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsdUJBQXVCLEVBQUUsOEJBQThCLENBQUMsQ0FBQTtJQUVoRixPQUFPO1FBQ04sS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPO1lBQ2xCLE1BQU0sTUFBTSxDQUFDLFdBQVcsQ0FBQztnQkFDeEIsYUFBYSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTthQUNwQyxDQUFDLENBQUE7UUFDSCxDQUFDO1FBQ0QsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHO1lBQ2QsSUFBRyxNQUFNLEVBQUUsQ0FBQztnQkFDWCxPQUFNO1lBQ1AsQ0FBQztZQUVELFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUNoQixNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQTtRQUN2RCxDQUFDO0tBQ0QsQ0FBQTtJQUVELFNBQVMsaUJBQWlCLENBQUMsRUFBRSxJQUFJLEVBQThCO1FBQzlELElBQUcsSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMvQixPQUFNO1FBQ1AsQ0FBQztRQUVELFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDMUIsQ0FBQztJQUVELFNBQVMsb0JBQW9CLENBQUMsRUFBRSxJQUFJLEVBQXVDOztRQUMxRSxJQUFHLElBQUksQ0FBQyxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDL0IsT0FBTTtRQUNQLENBQUM7UUFFRCxXQUFXLENBQ1YsQ0FBQSxNQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFFLElBQUk7WUFDZixDQUFDLENBQUMscUJBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNyQyxDQUFDLENBQUMsU0FBUyxDQUNaLENBQUE7SUFDRixDQUFDO0lBRUQsU0FBUyw4QkFBOEIsQ0FBQyxFQUFFLElBQUksRUFBcUM7UUFDbEYsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ2xCLENBQUM7SUFFRCxTQUFTLFdBQVcsQ0FBQyxHQUFzQjs7UUFDMUMsTUFBQSxNQUFNLENBQUMsTUFBTSwwQ0FBRSxLQUFLLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUUsbUJBQW1CLENBQUMsQ0FBQTtRQUU1RCxNQUFNLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtRQUMvRCxNQUFNLENBQUMsbUJBQW1CLENBQUMseUJBQXlCLEVBQUUsb0JBQW9CLENBQUMsQ0FBQTtRQUMzRSxNQUFNLENBQUMsbUJBQW1CLENBQUMsdUJBQXVCLEVBQUUsOEJBQThCLENBQUMsQ0FBQTtRQUNuRixPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUcsR0FBRyxDQUFDLENBQUE7UUFDZCxPQUFPLEdBQUcsU0FBUyxDQUFBO1FBQ25CLE1BQU0sR0FBRyxJQUFJLENBQUE7SUFDZCxDQUFDO0FBQ0YsQ0FBQyxDQUFBO0FBN0RZLFFBQUEsZ0JBQWdCLG9CQTZENUIifQ==