"use strict"; /* -------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. * ------------------------------------------------------------------------------------------ */ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createMessageConnection = exports.BrowserMessageWriter = exports.BrowserMessageReader = void 0; const ril_1 = require("./ril"); // Install the browser runtime abstract. ril_1.default.install(); const api_1 = require("../common/api"); __exportStar(require("../common/api"), exports); class BrowserMessageReader extends api_1.AbstractMessageReader { constructor(port) { super(); this._onData = new api_1.Emitter(); this._messageListener = (event) => { this._onData.fire(event.data); }; port.addEventListener('error', (event) => this.fireError(event)); port.onmessage = this._messageListener; } listen(callback) { return this._onData.event(callback); } } exports.BrowserMessageReader = BrowserMessageReader; class BrowserMessageWriter extends api_1.AbstractMessageWriter { constructor(port) { super(); this.port = port; this.errorCount = 0; port.addEventListener('error', (event) => this.fireError(event)); } write(msg) { try { this.port.postMessage(msg); return Promise.resolve(); } catch (error) { this.handleError(error, msg); return Promise.reject(error); } } handleError(error, msg) { this.errorCount++; this.fireError(error, msg, this.errorCount); } end() { } } exports.BrowserMessageWriter = BrowserMessageWriter; function createMessageConnection(reader, writer, logger, options) { if (logger === undefined) { logger = api_1.NullLogger; } if (api_1.ConnectionStrategy.is(options)) { options = { connectionStrategy: options }; } return (0, api_1.createMessageConnection)(reader, writer, logger, options); } exports.createMessageConnection = createMessageConnection;