@cloudflare/puppeteer
Version:
Puppeteer fork for Cloudflare Browser Run (formerly Browser Rendering)
48 lines • 1.61 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.WorkersWebSocketTransport = void 0;
const util_js_1 = require("../common/util.js");
const version_js_1 = require("../generated/version.js");
const FAKE_HOST = 'https://fake.host';
class WorkersWebSocketTransport {
ws;
onmessage;
onclose;
sessionId;
static async create(endpoint, sessionId) {
const path = `${FAKE_HOST}/v1/devtools/browser/${sessionId}`;
const response = await endpoint.fetch(path, {
headers: {
Upgrade: 'websocket',
'cf-brapi-client': `@cloudflare/puppeteer@${version_js_1.packageVersion}`,
},
});
response.webSocket.accept();
return new WorkersWebSocketTransport(response.webSocket, sessionId);
}
constructor(ws, sessionId) {
this.ws = ws;
this.sessionId = sessionId;
this.ws.addEventListener('message', async (event) => {
this.onmessage?.(event.data);
});
this.ws.addEventListener('close', () => {
this.onclose?.();
});
this.ws.addEventListener('error', e => {
const message = e.message || 'Unknown error';
(0, util_js_1.debugError)(`WebSocket error: SessionID: ${sessionId} - ${message}`);
});
}
send(message) {
this.ws.send(message);
}
close() {
this.ws.close();
}
toString() {
return this.sessionId;
}
}
exports.WorkersWebSocketTransport = WorkersWebSocketTransport;
//# sourceMappingURL=WorkersWebSocketTransport.js.map