UNPKG

1.79 kBJavaScriptView Raw
1'use strict';
2
3var _regenerator = require('babel-runtime/regenerator');
4
5var _regenerator2 = _interopRequireDefault(_regenerator);
6
7var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
8
9var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
10
11function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
13module.exports = function () {
14 var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(self, method, params) {
15 var callback, id;
16 return _regenerator2.default.wrap(function _callee$(_context) {
17 while (1) {
18 switch (_context.prev = _context.next) {
19 case 0:
20 self.l.debug(function () {
21 return ['subscribe', method, params];
22 });
23
24 if (!self.subscriptions[method]) {
25 _context.next = 8;
26 break;
27 }
28
29 // flowlint-next-line unclear-type:off
30 callback = params.pop();
31 id = ++self.subscriptionId;
32
33
34 self.subscriptions[method].callbacks[id] = callback;
35 self.subscriptionMap[id] = method;
36
37 callback(null, self.subscriptions[method].lastValue);
38
39 return _context.abrupt('return', id);
40
41 case 8:
42 throw new Error('provider.subscribe: Invalid method \'' + method + '\'');
43
44 case 9:
45 case 'end':
46 return _context.stop();
47 }
48 }
49 }, _callee, this);
50 }));
51
52 function subscribe(_x, _x2, _x3) {
53 return _ref.apply(this, arguments);
54 }
55
56 return subscribe;
57}(); // Copyright 2017-2018 Jaco Greeff
58// This software may be modified and distributed under the terms
59// of the ISC license. See the LICENSE file for details.
\No newline at end of file