UNPKG

trpc-browser

Version:

tRPC adapters and links for everywhere in the browser

36 lines 1.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.autoReconnect = exports.autoConnect = void 0; const retry_1 = require("./retry"); /** * Creates a port and recreates a new port if the old one disconnects * * @param createPort - function to create a port * @param onConnect - callback when connected */ async function autoConnect(createPort, onConnect) { const port = await (0, retry_1.retry)(createPort, 3, // 3 retries plus the initial try, so 4 total tries (retry) => (0, retry_1.wait)(retry * 100)); console.log('Port connected'); const cleanUp = onConnect(port); port.onDisconnect.addListener(() => { cleanUp === null || cleanUp === void 0 ? void 0 : cleanUp(); console.log('Port disconnected, reconnecting...'); void autoConnect(createPort, onConnect); }); } exports.autoConnect = autoConnect; /** * Reconnects a port if it disconnects * @param port - port to reconnect * @param createPort - function to create a port * @param onConnect - callback when connected */ function autoReconnect(port, createPort, onReconnect) { port.onDisconnect.addListener(() => { console.log('Port disconnected, reconnecting...'); void autoConnect(createPort, onReconnect); }); } exports.autoReconnect = autoReconnect; //# sourceMappingURL=chrome.js.map