UNPKG

1.4 kBJavaScriptView Raw
1/* --------------------------------------------------------------------------------------------
2 * Copyright (c) 2018-2022 TypeFox GmbH (http://www.typefox.io). All rights reserved.
3 * Licensed under the MIT License. See License.txt in the project root for license information.
4 * ------------------------------------------------------------------------------------------ */
5import { createWebSocketConnection } from './socket/connection.js';
6import { ConsoleLogger } from './logger.js';
7export function listen(options) {
8 const { webSocket, onConnection } = options;
9 const logger = options.logger || new ConsoleLogger();
10 webSocket.onopen = () => {
11 const socket = toSocket(webSocket);
12 const connection = createWebSocketConnection(socket, logger);
13 onConnection(connection);
14 };
15}
16export function toSocket(webSocket) {
17 return {
18 send: content => webSocket.send(content),
19 onMessage: cb => {
20 webSocket.onmessage = event => cb(event.data);
21 },
22 onError: cb => {
23 webSocket.onerror = event => {
24 if ('message' in event) {
25 cb(event.message);
26 }
27 };
28 },
29 onClose: cb => {
30 webSocket.onclose = event => cb(event.code, event.reason);
31 },
32 dispose: () => webSocket.close()
33 };
34}
35//# sourceMappingURL=connection.js.map
\No newline at end of file