nydus-client 4.0.2 → 4.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +224 -224
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/typed-emitter.js +38 -38
- package/dist/index.d.ts +103 -103
- package/dist/modules/index.js +215 -215
- package/dist/modules/index.js.map +1 -1
- package/dist/modules/typed-emitter.js +34 -34
- package/dist/typed-emitter.d.ts +33 -31
- package/package.json +5 -4
package/dist/cjs/index.js
CHANGED
|
@@ -1,225 +1,225 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.NydusClient = exports.InvokeError = exports.protocolVersion = void 0;
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
this.
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
this.
|
|
30
|
-
this.
|
|
31
|
-
this.
|
|
32
|
-
this.
|
|
33
|
-
this.
|
|
34
|
-
this.
|
|
35
|
-
this.
|
|
36
|
-
this.
|
|
37
|
-
this.opts
|
|
38
|
-
this.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
this.
|
|
53
|
-
this.
|
|
54
|
-
this.
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
this.conn
|
|
59
|
-
|
|
60
|
-
.on('
|
|
61
|
-
.on('
|
|
62
|
-
.on('
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
this.
|
|
70
|
-
this.
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
this.
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
this.
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
this.backoffTimer
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
this.
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
this.
|
|
155
|
-
this.
|
|
156
|
-
this.
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
case nydus_protocol_1.MessageType.
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
this.
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
this.
|
|
186
|
-
|
|
187
|
-
//
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
this.
|
|
192
|
-
this.
|
|
193
|
-
this.
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
err
|
|
204
|
-
err.description
|
|
205
|
-
err.description.message
|
|
206
|
-
|
|
207
|
-
//
|
|
208
|
-
//
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
this.connectTimer
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.NydusClient = exports.InvokeError = exports.protocolVersion = void 0;
|
|
7
|
+
exports.default = createClient;
|
|
8
|
+
const engine_io_client_1 = require("engine.io-client");
|
|
9
|
+
const cuid_1 = __importDefault(require("cuid"));
|
|
10
|
+
const ruta3_1 = __importDefault(require("ruta3"));
|
|
11
|
+
const backo2_1 = __importDefault(require("backo2"));
|
|
12
|
+
const nydus_protocol_1 = require("nydus-protocol");
|
|
13
|
+
Object.defineProperty(exports, "protocolVersion", { enumerable: true, get: function () { return nydus_protocol_1.protocolVersion; } });
|
|
14
|
+
const typed_emitter_1 = require("./typed-emitter");
|
|
15
|
+
function isTransportError(err) {
|
|
16
|
+
return err.type === 'TransportError';
|
|
17
|
+
}
|
|
18
|
+
class InvokeError extends Error {
|
|
19
|
+
constructor(message, status, body) {
|
|
20
|
+
super(message);
|
|
21
|
+
this.status = status;
|
|
22
|
+
this.body = body;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.InvokeError = InvokeError;
|
|
26
|
+
class NydusClient extends typed_emitter_1.TypedEventEmitter {
|
|
27
|
+
constructor(host, opts = {}) {
|
|
28
|
+
super();
|
|
29
|
+
this.conn = null;
|
|
30
|
+
this.outstanding = new Map();
|
|
31
|
+
this.router = (0, ruta3_1.default)();
|
|
32
|
+
this.backoffTimer = null;
|
|
33
|
+
this.connectTimer = null;
|
|
34
|
+
this.wasOpened = false;
|
|
35
|
+
this.skipReconnect = false;
|
|
36
|
+
this.host = host;
|
|
37
|
+
this.opts = opts;
|
|
38
|
+
this.opts.reconnectionAttempts = this.opts.reconnectionAttempts || Infinity;
|
|
39
|
+
this.backoff = new backo2_1.default({
|
|
40
|
+
min: opts.reconnectionDelay || 1000,
|
|
41
|
+
max: opts.reconnectionDelayMax || 10000,
|
|
42
|
+
jitter: opts.reconnectionJitter || 0.5,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
// One of: opening, open, closing, closed.
|
|
46
|
+
get readyState() {
|
|
47
|
+
return this.conn != null ? this.conn.readyState : 'closed';
|
|
48
|
+
}
|
|
49
|
+
doConnect() {
|
|
50
|
+
if (this.opts.connectTimeout) {
|
|
51
|
+
this.connectTimer = setTimeout(() => {
|
|
52
|
+
this.emit('connect_timeout');
|
|
53
|
+
this.disconnect();
|
|
54
|
+
this.skipReconnect = false;
|
|
55
|
+
this.onClose('connect timeout');
|
|
56
|
+
}, this.opts.connectTimeout);
|
|
57
|
+
}
|
|
58
|
+
this.conn = new engine_io_client_1.Socket(this.host, this.opts);
|
|
59
|
+
this.conn
|
|
60
|
+
.on('open', this.onOpen.bind(this))
|
|
61
|
+
.on('message', data => this.onMessage(data))
|
|
62
|
+
.on('close', this.onClose.bind(this))
|
|
63
|
+
.on('error', this.onError.bind(this));
|
|
64
|
+
}
|
|
65
|
+
// Connect to the server. If already connected, this will be a no-op.
|
|
66
|
+
connect() {
|
|
67
|
+
if (this.conn)
|
|
68
|
+
return;
|
|
69
|
+
this.skipReconnect = false;
|
|
70
|
+
this.wasOpened = false;
|
|
71
|
+
this.doConnect();
|
|
72
|
+
}
|
|
73
|
+
reconnect() {
|
|
74
|
+
if (this.conn || this.skipReconnect || this.backoffTimer) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if (this.backoff.attempts >= this.opts.reconnectionAttempts) {
|
|
78
|
+
this.backoff.reset();
|
|
79
|
+
this.emit('reconnect_failed');
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
this.backoffTimer = setTimeout(() => {
|
|
83
|
+
this.backoffTimer = null;
|
|
84
|
+
this.emit('reconnecting', this.backoff.attempts);
|
|
85
|
+
if (this.skipReconnect || this.conn)
|
|
86
|
+
return;
|
|
87
|
+
this.doConnect();
|
|
88
|
+
}, this.backoff.duration());
|
|
89
|
+
}
|
|
90
|
+
// Disconnect from the server. If not already connected, this will be a no-op.
|
|
91
|
+
disconnect() {
|
|
92
|
+
this.skipReconnect = true;
|
|
93
|
+
if (this.backoffTimer) {
|
|
94
|
+
clearTimeout(this.backoffTimer);
|
|
95
|
+
this.backoffTimer = null;
|
|
96
|
+
}
|
|
97
|
+
if (!this.conn)
|
|
98
|
+
return;
|
|
99
|
+
this.conn.close();
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Registers a handler function to respond to PUBLISHes to paths matching a specified pattern.
|
|
103
|
+
* Handlers are normal functions of the form:
|
|
104
|
+
* `function({ route, params, splats }, data)`
|
|
105
|
+
*
|
|
106
|
+
* PUBLISHes that don't match a route will be emitted as an 'unhandled' event on this object,
|
|
107
|
+
* which can be useful to track in development mode.
|
|
108
|
+
*/
|
|
109
|
+
registerRoute(pathPattern, handler) {
|
|
110
|
+
this.router.addRoute(pathPattern, handler);
|
|
111
|
+
}
|
|
112
|
+
onPublish({ path, data }) {
|
|
113
|
+
const route = this.router.match(path);
|
|
114
|
+
if (!route) {
|
|
115
|
+
this.emit('unhandled', { path, data });
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
route.action({ route: route.route, params: route.params, splats: route.splats }, data);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Invoke a remote method on the server, specified via a path. Optionally, data can be specified
|
|
122
|
+
* to send along with the call (will be JSON encoded). A Promise will be returned, resolved or
|
|
123
|
+
* rejected with the result or error (respectively) from the server.
|
|
124
|
+
*/
|
|
125
|
+
invoke(path, data) {
|
|
126
|
+
const id = (0, cuid_1.default)();
|
|
127
|
+
return new Promise((resolve, reject) => {
|
|
128
|
+
if (!this.conn) {
|
|
129
|
+
reject(new Error('Not connected'));
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
this.outstanding.set(id, { resolve, reject });
|
|
133
|
+
this.conn.send((0, nydus_protocol_1.encode)(nydus_protocol_1.MessageType.Invoke, data, id, path), undefined);
|
|
134
|
+
})
|
|
135
|
+
.catch(err => {
|
|
136
|
+
// Convert error-like objects back to Errors
|
|
137
|
+
if (err.message && err.status) {
|
|
138
|
+
const converted = new InvokeError(err.message, err.status, err.body);
|
|
139
|
+
throw converted;
|
|
140
|
+
}
|
|
141
|
+
throw err;
|
|
142
|
+
})
|
|
143
|
+
.finally(() => this.outstanding.delete(id));
|
|
144
|
+
}
|
|
145
|
+
onInvokeResponse({ type, id, data }) {
|
|
146
|
+
const p = this.outstanding.get(id);
|
|
147
|
+
if (!p) {
|
|
148
|
+
this.emit('error', new Error('Unknown invoke id'));
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
p[type === nydus_protocol_1.MessageType.Result ? 'resolve' : 'reject'](data);
|
|
152
|
+
}
|
|
153
|
+
onOpen() {
|
|
154
|
+
this.clearConnectTimer();
|
|
155
|
+
this.wasOpened = true;
|
|
156
|
+
this.backoff.reset();
|
|
157
|
+
this.emit('connect');
|
|
158
|
+
}
|
|
159
|
+
onMessage(msg) {
|
|
160
|
+
var _a, _b;
|
|
161
|
+
const decoded = (0, nydus_protocol_1.decode)(msg);
|
|
162
|
+
switch (decoded.type) {
|
|
163
|
+
case nydus_protocol_1.MessageType.ParserError:
|
|
164
|
+
(_a = this.conn) === null || _a === void 0 ? void 0 : _a.close(); // will cause a call to _onClose
|
|
165
|
+
break;
|
|
166
|
+
case nydus_protocol_1.MessageType.Welcome:
|
|
167
|
+
if (decoded.data !== nydus_protocol_1.protocolVersion) {
|
|
168
|
+
this.emit('error', new Error('Server has incompatible protocol version: ' + nydus_protocol_1.protocolVersion));
|
|
169
|
+
(_b = this.conn) === null || _b === void 0 ? void 0 : _b.close();
|
|
170
|
+
}
|
|
171
|
+
break;
|
|
172
|
+
case nydus_protocol_1.MessageType.Result:
|
|
173
|
+
case nydus_protocol_1.MessageType.Error:
|
|
174
|
+
this.onInvokeResponse(decoded);
|
|
175
|
+
break;
|
|
176
|
+
case nydus_protocol_1.MessageType.Publish:
|
|
177
|
+
this.onPublish(decoded);
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
onClose(reason, details) {
|
|
182
|
+
this.clearConnectTimer();
|
|
183
|
+
this.conn = null;
|
|
184
|
+
if (!this.wasOpened) {
|
|
185
|
+
this.emit('connect_failed');
|
|
186
|
+
this.reconnect();
|
|
187
|
+
// Sockets can emit 'close' even if the connection was never actually opened. Don't emit emits
|
|
188
|
+
// upstream in that case, since they're rather unnecessary
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
this.emit('disconnect', reason, details);
|
|
192
|
+
this.outstanding.clear();
|
|
193
|
+
this.wasOpened = false;
|
|
194
|
+
this.reconnect();
|
|
195
|
+
}
|
|
196
|
+
onError(err) {
|
|
197
|
+
this.clearConnectTimer();
|
|
198
|
+
if (isTransportError(err) && err.message === 'xhr poll error') {
|
|
199
|
+
this.onClose('error', err);
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
if (this.skipReconnect &&
|
|
203
|
+
isTransportError(err) &&
|
|
204
|
+
err.description &&
|
|
205
|
+
err.description.message &&
|
|
206
|
+
err.description.message.includes('closed before the connection was established')) {
|
|
207
|
+
// ws sometimes throws errors if you disconnect a socket that was in the process of
|
|
208
|
+
// reconnecting. Since the disconnect was requested (_skipReconnect is true), this seems
|
|
209
|
+
// spurious, so we just ignore it
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
this.emit('error', err);
|
|
213
|
+
}
|
|
214
|
+
clearConnectTimer() {
|
|
215
|
+
if (this.connectTimer) {
|
|
216
|
+
clearTimeout(this.connectTimer);
|
|
217
|
+
this.connectTimer = null;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
exports.NydusClient = NydusClient;
|
|
222
|
+
function createClient(host, opts) {
|
|
223
|
+
return new NydusClient(host, opts);
|
|
224
|
+
}
|
|
225
225
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TypedEventEmitter = void 0;
|
|
4
|
-
const events_1 = require("events");
|
|
5
|
-
/**
|
|
6
|
-
* A typed version of the normal node EventEmitter class, such that emitted/handled events and
|
|
7
|
-
* their associated parameters can be type-checked properly.
|
|
8
|
-
*
|
|
9
|
-
* This uses typed-emitter under the hood, it just makes it easier to extend.
|
|
10
|
-
*
|
|
11
|
-
* Example:
|
|
12
|
-
* ```
|
|
13
|
-
* interface FooEvents {
|
|
14
|
-
* bar: (message: string) => void
|
|
15
|
-
* baz: (count: number, ...extras: any[]) => void
|
|
16
|
-
* }
|
|
17
|
-
*
|
|
18
|
-
* class Foo extends TypedEventEmitter<FooEvents> {
|
|
19
|
-
* constructor() {
|
|
20
|
-
* super()
|
|
21
|
-
* }
|
|
22
|
-
*
|
|
23
|
-
* test() {
|
|
24
|
-
* this.emit('bar', 'hello world')
|
|
25
|
-
* this.emit('baz', 5, 'extra', 'stuff', 'to', 'pass', 27)
|
|
26
|
-
* }
|
|
27
|
-
* }
|
|
28
|
-
* ```
|
|
29
|
-
*/
|
|
30
|
-
class TypedEventEmitter extends events_1.EventEmitter {
|
|
31
|
-
constructor() {
|
|
32
|
-
// NOTE(tec27): No idea why eslint thinks super isn't a constructor here, I assume it's failing
|
|
33
|
-
// to parse things properly in some way
|
|
34
|
-
// eslint-disable-next-line constructor-super
|
|
35
|
-
super();
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
exports.TypedEventEmitter = TypedEventEmitter;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TypedEventEmitter = void 0;
|
|
4
|
+
const events_1 = require("events");
|
|
5
|
+
/**
|
|
6
|
+
* A typed version of the normal node EventEmitter class, such that emitted/handled events and
|
|
7
|
+
* their associated parameters can be type-checked properly.
|
|
8
|
+
*
|
|
9
|
+
* This uses typed-emitter under the hood, it just makes it easier to extend.
|
|
10
|
+
*
|
|
11
|
+
* Example:
|
|
12
|
+
* ```
|
|
13
|
+
* interface FooEvents {
|
|
14
|
+
* bar: (message: string) => void
|
|
15
|
+
* baz: (count: number, ...extras: any[]) => void
|
|
16
|
+
* }
|
|
17
|
+
*
|
|
18
|
+
* class Foo extends TypedEventEmitter<FooEvents> {
|
|
19
|
+
* constructor() {
|
|
20
|
+
* super()
|
|
21
|
+
* }
|
|
22
|
+
*
|
|
23
|
+
* test() {
|
|
24
|
+
* this.emit('bar', 'hello world')
|
|
25
|
+
* this.emit('baz', 5, 'extra', 'stuff', 'to', 'pass', 27)
|
|
26
|
+
* }
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
class TypedEventEmitter extends events_1.EventEmitter {
|
|
31
|
+
constructor() {
|
|
32
|
+
// NOTE(tec27): No idea why eslint thinks super isn't a constructor here, I assume it's failing
|
|
33
|
+
// to parse things properly in some way
|
|
34
|
+
// eslint-disable-next-line constructor-super
|
|
35
|
+
super();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.TypedEventEmitter = TypedEventEmitter;
|
|
39
39
|
//# sourceMappingURL=typed-emitter.js.map
|