1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var socket_1 = require("./socket");
|
4 | var logger_1 = require("./logger");
|
5 | function listen(options) {
|
6 | var webSocket = options.webSocket, onConnection = options.onConnection;
|
7 | var logger = options.logger || new logger_1.ConsoleLogger();
|
8 | webSocket.onopen = function () {
|
9 | var socket = toSocket(webSocket);
|
10 | var connection = socket_1.createWebSocketConnection(socket, logger);
|
11 | onConnection(connection);
|
12 | };
|
13 | }
|
14 | exports.listen = listen;
|
15 | function toSocket(webSocket) {
|
16 | return {
|
17 | send: function (content) { return webSocket.send(content); },
|
18 | onMessage: function (cb) { return webSocket.onmessage = function (event) { return cb(event.data); }; },
|
19 | onError: function (cb) { return webSocket.onerror = function (event) {
|
20 | if ('message' in event) {
|
21 | cb(event.message);
|
22 | }
|
23 | }; },
|
24 | onClose: function (cb) { return webSocket.onclose = function (event) { return cb(event.code, event.reason); }; },
|
25 | dispose: function () { return webSocket.close(); }
|
26 | };
|
27 | }
|
28 | exports.toSocket = toSocket;
|
29 |
|
\ | No newline at end of file |