nydus-client 2.0.1 → 4.0.0
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/README.md +1 -1
- package/dist/cjs/index.js +8 -9
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/typed-emitter.js +39 -0
- package/dist/cjs/typed-emitter.js.map +1 -0
- package/dist/index.d.ts +6 -12
- package/dist/modules/index.js +5 -6
- package/dist/modules/index.js.map +1 -1
- package/dist/modules/typed-emitter.js +35 -0
- package/dist/modules/typed-emitter.js.map +1 -0
- package/dist/typed-emitter.d.ts +31 -0
- package/package.json +15 -12
package/README.md
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
WebSocket client library for the [nydus protocol](https://github.com/tec27/nydus-protocol), a simple RPC/PubSub protocol.
|
|
4
4
|
|
|
5
|
-
[](https://travis-ci.org/tec27/nydus-client)
|
|
6
5
|
[](https://www.npmjs.org/package/nydus-client)
|
|
7
6
|
|
|
8
7
|
[](https://nodei.co/npm/nydus-client/)
|
|
9
8
|
|
|
10
9
|
## Usage
|
|
10
|
+
|
|
11
11
|
#### `import nydusClient from 'nydus-client'`
|
|
12
12
|
|
|
13
13
|
<b><code>const socket = nydusClient(host[, options])</code></b>
|
package/dist/cjs/index.js
CHANGED
|
@@ -4,13 +4,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.NydusClient = exports.InvokeError = exports.protocolVersion = void 0;
|
|
7
|
-
const engine_io_client_1 =
|
|
8
|
-
const events_1 = require("events");
|
|
7
|
+
const engine_io_client_1 = require("engine.io-client");
|
|
9
8
|
const cuid_1 = __importDefault(require("cuid"));
|
|
10
9
|
const ruta3_1 = __importDefault(require("ruta3"));
|
|
11
10
|
const backo2_1 = __importDefault(require("backo2"));
|
|
12
11
|
const nydus_protocol_1 = require("nydus-protocol");
|
|
13
12
|
Object.defineProperty(exports, "protocolVersion", { enumerable: true, get: function () { return nydus_protocol_1.protocolVersion; } });
|
|
13
|
+
const typed_emitter_1 = require("./typed-emitter");
|
|
14
14
|
function isTransportError(err) {
|
|
15
15
|
return err.type === 'TransportError';
|
|
16
16
|
}
|
|
@@ -22,13 +22,12 @@ class InvokeError extends Error {
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
exports.InvokeError = InvokeError;
|
|
25
|
-
|
|
26
|
-
class NydusClient extends events_1.EventEmitter {
|
|
25
|
+
class NydusClient extends typed_emitter_1.TypedEventEmitter {
|
|
27
26
|
constructor(host, opts = {}) {
|
|
28
27
|
super();
|
|
29
28
|
this.conn = null;
|
|
30
29
|
this.outstanding = new Map();
|
|
31
|
-
this.router = ruta3_1.default();
|
|
30
|
+
this.router = (0, ruta3_1.default)();
|
|
32
31
|
this.backoffTimer = null;
|
|
33
32
|
this.connectTimer = null;
|
|
34
33
|
this.wasOpened = false;
|
|
@@ -55,7 +54,7 @@ class NydusClient extends events_1.EventEmitter {
|
|
|
55
54
|
this.onClose('connect timeout');
|
|
56
55
|
}, this.opts.connectTimeout);
|
|
57
56
|
}
|
|
58
|
-
this.conn = engine_io_client_1.
|
|
57
|
+
this.conn = new engine_io_client_1.Socket(this.host, this.opts);
|
|
59
58
|
this.conn
|
|
60
59
|
.on('open', this.onOpen.bind(this))
|
|
61
60
|
.on('message', data => this.onMessage(data))
|
|
@@ -123,14 +122,14 @@ class NydusClient extends events_1.EventEmitter {
|
|
|
123
122
|
* rejected with the result or error (respectively) from the server.
|
|
124
123
|
*/
|
|
125
124
|
invoke(path, data) {
|
|
126
|
-
const id = cuid_1.default();
|
|
125
|
+
const id = (0, cuid_1.default)();
|
|
127
126
|
const p = new Promise((resolve, reject) => {
|
|
128
127
|
if (!this.conn) {
|
|
129
128
|
reject(new Error('Not connected'));
|
|
130
129
|
return;
|
|
131
130
|
}
|
|
132
131
|
this.outstanding.set(id, { resolve, reject });
|
|
133
|
-
this.conn.send(nydus_protocol_1.encode(nydus_protocol_1.MessageType.Invoke, data, id, path));
|
|
132
|
+
this.conn.send((0, nydus_protocol_1.encode)(nydus_protocol_1.MessageType.Invoke, data, id, path), undefined);
|
|
134
133
|
}).catch(err => {
|
|
135
134
|
// Convert error-like objects back to Errors
|
|
136
135
|
if (err.message && err.status) {
|
|
@@ -158,7 +157,7 @@ class NydusClient extends events_1.EventEmitter {
|
|
|
158
157
|
}
|
|
159
158
|
onMessage(msg) {
|
|
160
159
|
var _a, _b;
|
|
161
|
-
const decoded = nydus_protocol_1.decode(msg);
|
|
160
|
+
const decoded = (0, nydus_protocol_1.decode)(msg);
|
|
162
161
|
switch (decoded.type) {
|
|
163
162
|
case nydus_protocol_1.MessageType.ParserError:
|
|
164
163
|
(_a = this.conn) === null || _a === void 0 ? void 0 : _a.close(); // will cause a call to _onClose
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +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;
|
|
39
|
+
//# sourceMappingURL=typed-emitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-emitter.js","sourceRoot":"","sources":["../../typed-emitter.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AAKrC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAsB,iBAAsC,SAAS,qBAEhE;IACH;QACE,+FAA+F;QAC/F,uCAAuC;QACvC,6CAA6C;QAC7C,KAAK,EAAE,CAAA;IACT,CAAC;CACF;AATD,8CASC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
import eio from 'engine.io-client';
|
|
3
|
-
import { EventEmitter } from 'events';
|
|
1
|
+
import { SocketOptions as EngineIoSocketOptions, Socket as EngineIoSocket } from 'engine.io-client';
|
|
4
2
|
import { protocolVersion } from 'nydus-protocol';
|
|
3
|
+
import { TypedEventEmitter, EventMap } from './typed-emitter';
|
|
5
4
|
export { protocolVersion };
|
|
6
|
-
export interface NydusClientOptions extends
|
|
5
|
+
export interface NydusClientOptions extends EngineIoSocketOptions {
|
|
7
6
|
/**
|
|
8
7
|
* How long before a connection attempt should be considered failed. Optional, will not timeout
|
|
9
8
|
* if not specified.
|
|
@@ -26,7 +25,7 @@ export interface NydusClientOptions extends eio.SocketOptions {
|
|
|
26
25
|
*/
|
|
27
26
|
reconnectionJitter: number;
|
|
28
27
|
}
|
|
29
|
-
interface ExpandedSocket extends
|
|
28
|
+
interface ExpandedSocket extends Omit<EngineIoSocket, 'readyState'> {
|
|
30
29
|
readonly readyState: string;
|
|
31
30
|
}
|
|
32
31
|
export interface RouteInfo {
|
|
@@ -35,7 +34,7 @@ export interface RouteInfo {
|
|
|
35
34
|
splats: string[];
|
|
36
35
|
}
|
|
37
36
|
export declare type RouteHandler = (routeInfo: RouteInfo, data: any) => void;
|
|
38
|
-
interface NydusEvents {
|
|
37
|
+
interface NydusEvents extends EventMap {
|
|
39
38
|
/** Fired when the connection succeeds. */
|
|
40
39
|
connect: () => void;
|
|
41
40
|
/** Fired when the connection has been closed */
|
|
@@ -56,17 +55,12 @@ interface NydusEvents {
|
|
|
56
55
|
/** Fired when the connection attempt failed. */
|
|
57
56
|
connect_failed: () => void;
|
|
58
57
|
}
|
|
59
|
-
export declare interface NydusClient {
|
|
60
|
-
emit<U extends keyof NydusEvents>(event: U, ...args: Parameters<NydusEvents[U]>): boolean;
|
|
61
|
-
on<U extends keyof NydusEvents>(event: U, listener: NydusEvents[U]): this;
|
|
62
|
-
once<U extends keyof NydusEvents>(event: U, listener: NydusEvents[U]): this;
|
|
63
|
-
}
|
|
64
58
|
export declare class InvokeError extends Error {
|
|
65
59
|
readonly status: number;
|
|
66
60
|
readonly body: any;
|
|
67
61
|
constructor(message: string, status: number, body?: any);
|
|
68
62
|
}
|
|
69
|
-
export declare class NydusClient extends
|
|
63
|
+
export declare class NydusClient extends TypedEventEmitter<NydusEvents> {
|
|
70
64
|
readonly host: string;
|
|
71
65
|
readonly opts: Partial<NydusClientOptions>;
|
|
72
66
|
conn: ExpandedSocket | null;
|
package/dist/modules/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { EventEmitter } from 'events';
|
|
1
|
+
import { Socket as EngineIoSocket } from 'engine.io-client';
|
|
3
2
|
import cuid from 'cuid';
|
|
4
3
|
import ruta from 'ruta3';
|
|
5
4
|
import Backoff from 'backo2';
|
|
6
5
|
import { encode, decode, protocolVersion, MessageType, } from 'nydus-protocol';
|
|
6
|
+
import { TypedEventEmitter } from './typed-emitter';
|
|
7
7
|
export { protocolVersion };
|
|
8
8
|
function isTransportError(err) {
|
|
9
9
|
return err.type === 'TransportError';
|
|
@@ -15,8 +15,7 @@ export class InvokeError extends Error {
|
|
|
15
15
|
this.body = body;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
|
|
19
|
-
export class NydusClient extends EventEmitter {
|
|
18
|
+
export class NydusClient extends TypedEventEmitter {
|
|
20
19
|
constructor(host, opts = {}) {
|
|
21
20
|
super();
|
|
22
21
|
this.conn = null;
|
|
@@ -48,7 +47,7 @@ export class NydusClient extends EventEmitter {
|
|
|
48
47
|
this.onClose('connect timeout');
|
|
49
48
|
}, this.opts.connectTimeout);
|
|
50
49
|
}
|
|
51
|
-
this.conn =
|
|
50
|
+
this.conn = new EngineIoSocket(this.host, this.opts);
|
|
52
51
|
this.conn
|
|
53
52
|
.on('open', this.onOpen.bind(this))
|
|
54
53
|
.on('message', data => this.onMessage(data))
|
|
@@ -123,7 +122,7 @@ export class NydusClient extends EventEmitter {
|
|
|
123
122
|
return;
|
|
124
123
|
}
|
|
125
124
|
this.outstanding.set(id, { resolve, reject });
|
|
126
|
-
this.conn.send(encode(MessageType.Invoke, data, id, path));
|
|
125
|
+
this.conn.send(encode(MessageType.Invoke, data, id, path), undefined);
|
|
127
126
|
}).catch(err => {
|
|
128
127
|
// Convert error-like objects back to Errors
|
|
129
128
|
if (err.message && err.status) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
/**
|
|
3
|
+
* A typed version of the normal node EventEmitter class, such that emitted/handled events and
|
|
4
|
+
* their associated parameters can be type-checked properly.
|
|
5
|
+
*
|
|
6
|
+
* This uses typed-emitter under the hood, it just makes it easier to extend.
|
|
7
|
+
*
|
|
8
|
+
* Example:
|
|
9
|
+
* ```
|
|
10
|
+
* interface FooEvents {
|
|
11
|
+
* bar: (message: string) => void
|
|
12
|
+
* baz: (count: number, ...extras: any[]) => void
|
|
13
|
+
* }
|
|
14
|
+
*
|
|
15
|
+
* class Foo extends TypedEventEmitter<FooEvents> {
|
|
16
|
+
* constructor() {
|
|
17
|
+
* super()
|
|
18
|
+
* }
|
|
19
|
+
*
|
|
20
|
+
* test() {
|
|
21
|
+
* this.emit('bar', 'hello world')
|
|
22
|
+
* this.emit('baz', 5, 'extra', 'stuff', 'to', 'pass', 27)
|
|
23
|
+
* }
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export class TypedEventEmitter extends EventEmitter {
|
|
28
|
+
constructor() {
|
|
29
|
+
// NOTE(tec27): No idea why eslint thinks super isn't a constructor here, I assume it's failing
|
|
30
|
+
// to parse things properly in some way
|
|
31
|
+
// eslint-disable-next-line constructor-super
|
|
32
|
+
super();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=typed-emitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-emitter.js","sourceRoot":"","sources":["../../typed-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAKrC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAgB,iBAAsC,SAAS,YAEhE;IACH;QACE,+FAA+F;QAC/F,uCAAuC;QACvC,6CAA6C;QAC7C,KAAK,EAAE,CAAA;IACT,CAAC;CACF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import TypedEmitter, { EventMap } from 'typed-emitter';
|
|
2
|
+
export { EventMap };
|
|
3
|
+
declare const TypedEventEmitter_base: new <T_1 extends EventMap>() => TypedEmitter<T_1>;
|
|
4
|
+
/**
|
|
5
|
+
* A typed version of the normal node EventEmitter class, such that emitted/handled events and
|
|
6
|
+
* their associated parameters can be type-checked properly.
|
|
7
|
+
*
|
|
8
|
+
* This uses typed-emitter under the hood, it just makes it easier to extend.
|
|
9
|
+
*
|
|
10
|
+
* Example:
|
|
11
|
+
* ```
|
|
12
|
+
* interface FooEvents {
|
|
13
|
+
* bar: (message: string) => void
|
|
14
|
+
* baz: (count: number, ...extras: any[]) => void
|
|
15
|
+
* }
|
|
16
|
+
*
|
|
17
|
+
* class Foo extends TypedEventEmitter<FooEvents> {
|
|
18
|
+
* constructor() {
|
|
19
|
+
* super()
|
|
20
|
+
* }
|
|
21
|
+
*
|
|
22
|
+
* test() {
|
|
23
|
+
* this.emit('bar', 'hello world')
|
|
24
|
+
* this.emit('baz', 5, 'extra', 'stuff', 'to', 'pass', 27)
|
|
25
|
+
* }
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare abstract class TypedEventEmitter<T extends EventMap> extends TypedEventEmitter_base<T> {
|
|
30
|
+
constructor();
|
|
31
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nydus-client",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "WebSocket client library for the nydus protocol, a simple RPC/PubSub protocol.",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"main": "dist/cjs/index.js",
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
"lint": "eslint --ext .js,.ts ./",
|
|
13
13
|
"prepublishOnly": "yarn run lint && yarn run test && yarn run clean && yarn run build",
|
|
14
14
|
"test": "ts-mocha -p tsconfig-cjs.json -R spec test/**.ts",
|
|
15
|
+
"testonly": "ts-mocha -p tsconfig-cjs.json -R spec test/**.ts",
|
|
16
|
+
"posttest": "yarn run tsc --noEmit && yarn run lint",
|
|
15
17
|
"watch": "tsc -w"
|
|
16
18
|
},
|
|
17
19
|
"repository": {
|
|
@@ -37,28 +39,29 @@
|
|
|
37
39
|
"dependencies": {
|
|
38
40
|
"backo2": "^1.0.2",
|
|
39
41
|
"cuid": "^2.1.6",
|
|
40
|
-
"engine.io-client": "^
|
|
42
|
+
"engine.io-client": "^6.2.2",
|
|
41
43
|
"nydus-protocol": "^2.0.0",
|
|
42
|
-
"ruta3": "^2.0.0"
|
|
44
|
+
"ruta3": "^2.0.0",
|
|
45
|
+
"typed-emitter": "^2.1.0"
|
|
43
46
|
},
|
|
44
47
|
"devDependencies": {
|
|
45
48
|
"@types/backo2": "^1.0.1",
|
|
46
49
|
"@types/chai": "^4.2.14",
|
|
47
50
|
"@types/engine.io-client": "^3.1.4",
|
|
48
|
-
"@types/mocha": "^
|
|
49
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
50
|
-
"@typescript-eslint/parser": "^
|
|
51
|
+
"@types/mocha": "^9.1.1",
|
|
52
|
+
"@typescript-eslint/eslint-plugin": "^5.27.0",
|
|
53
|
+
"@typescript-eslint/parser": "^5.27.0",
|
|
51
54
|
"chai": "^4.2.0",
|
|
52
55
|
"chai-as-promised": "^7.1.1",
|
|
53
56
|
"cross-env": "^7.0.3",
|
|
54
|
-
"eslint": "^
|
|
55
|
-
"eslint-config-prettier": "^
|
|
56
|
-
"eslint-plugin-prettier": "^
|
|
57
|
-
"mocha": "^
|
|
58
|
-
"nydus": "^
|
|
57
|
+
"eslint": "^8.17.0",
|
|
58
|
+
"eslint-config-prettier": "^8.3.0",
|
|
59
|
+
"eslint-plugin-prettier": "^4.0.0",
|
|
60
|
+
"mocha": "^10.0.0",
|
|
61
|
+
"nydus": "^4.0.0",
|
|
59
62
|
"prettier": "^2.2.1",
|
|
60
63
|
"rimraf": "^3.0.2",
|
|
61
|
-
"ts-mocha": "^
|
|
64
|
+
"ts-mocha": "^10.0.0",
|
|
62
65
|
"typescript": "^4.1.3"
|
|
63
66
|
}
|
|
64
67
|
}
|