UNPKG

1.06 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5var _promise = _interopRequireDefault(require("@babel/runtime/core-js/promise"));
6
7// Copyright 2017-2018 Jaco Greeff
8// This software may be modified and distributed under the terms
9// of the ISC license. See the LICENSE file for details.
10module.exports = async function send(self, method, params, subscription) {
11 return new _promise.default((resolve, reject) => {
12 try {
13 const json = self.coder.encodeJson(method, params);
14 const id = self.coder.getId();
15
16 const callback = (error, result) => {
17 if (error) {
18 reject(error);
19 } else {
20 resolve(result);
21 }
22 };
23
24 self.l.debug(() => ['calling', method, params, json, !!subscription]);
25 self.handlers[id] = {
26 callback,
27 subscription
28 };
29
30 if (self.isConnected) {
31 self.websocket.send(json);
32 } else {
33 self.queued[id] = json;
34 }
35 } catch (error) {
36 reject(error);
37 }
38 });
39};
\No newline at end of file