@mingzey/typedrpc 1.0.0 → 1.0.2
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/api.d.ts +8 -8
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +2 -2
- package/dist/api.js.map +1 -1
- package/dist/client.d.ts +18 -18
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +10 -10
- package/dist/client.js.map +1 -1
- package/dist/connecitons/basic.d.ts +9 -9
- package/dist/connecitons/basic.d.ts.map +1 -1
- package/dist/connecitons/basic.js +3 -3
- package/dist/connecitons/basic.js.map +1 -1
- package/dist/connecitons/http.d.ts +13 -13
- package/dist/connecitons/http.d.ts.map +1 -1
- package/dist/connecitons/http.js +10 -10
- package/dist/connecitons/http.js.map +1 -1
- package/dist/connecitons/socket.d.ts +7 -7
- package/dist/connecitons/socket.d.ts.map +1 -1
- package/dist/connecitons/socket.js +8 -8
- package/dist/connecitons/socket.js.map +1 -1
- package/dist/connecitons/socketio.d.ts +7 -7
- package/dist/connecitons/socketio.d.ts.map +1 -1
- package/dist/connecitons/socketio.js +8 -8
- package/dist/connecitons/socketio.js.map +1 -1
- package/dist/connection.d.ts +4 -4
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +4 -4
- package/dist/connection.js.map +1 -1
- package/dist/context.d.ts +10 -10
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +1 -1
- package/dist/context.js.map +1 -1
- package/dist/core.d.ts +16 -16
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +11 -11
- package/dist/core.js.map +1 -1
- package/dist/define.d.ts +8 -8
- package/dist/define.d.ts.map +1 -1
- package/dist/define.js +15 -15
- package/dist/define.js.map +1 -1
- package/dist/handler.d.ts +16 -16
- package/dist/handler.d.ts.map +1 -1
- package/dist/handler.js +18 -18
- package/dist/handler.js.map +1 -1
- package/dist/index.d.ts +14 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -13
- package/dist/index.js.map +1 -1
- package/dist/packet.d.ts +9 -9
- package/dist/packet.d.ts.map +1 -1
- package/dist/packet.js +5 -5
- package/dist/packet.js.map +1 -1
- package/dist/server.d.ts +18 -18
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +8 -8
- package/dist/server.js.map +1 -1
- package/dist/test/authorization.js +16 -16
- package/dist/test/authorization.js.map +1 -1
- package/dist/test/basic.js +6 -6
- package/dist/test/basic.js.map +1 -1
- package/dist/test/context.js +12 -12
- package/dist/test/context.js.map +1 -1
- package/dist/test/expressmix.d.ts.map +1 -1
- package/dist/test/expressmix.js +7 -7
- package/dist/test/expressmix.js.map +1 -1
- package/dist/test/socket.js +8 -8
- package/dist/test/socket.js.map +1 -1
- package/dist/test/socketio.d.ts +12 -0
- package/dist/test/socketio.d.ts.map +1 -0
- package/dist/test/socketio.js +77 -0
- package/dist/test/socketio.js.map +1 -0
- package/dist/test.js +3 -3
- package/dist/test.js.map +1 -1
- package/dist/utils.d.ts +9 -9
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js.map +1 -1
- package/package.json +6 -4
- package/src/api.ts +72 -0
- package/src/client.ts +77 -0
- package/src/connecitons/basic.ts +49 -0
- package/src/connecitons/http.ts +184 -0
- package/src/connecitons/socket.ts +247 -0
- package/src/connecitons/socketio.ts +200 -0
- package/src/connection.ts +10 -0
- package/src/context.ts +18 -0
- package/src/core.ts +130 -0
- package/src/define.ts +63 -0
- package/src/handler.ts +202 -0
- package/src/index.ts +41 -0
- package/src/packet.ts +77 -0
- package/src/server.ts +82 -0
- package/src/test/TestCase.ts +6 -0
- package/src/test/authorization.ts +197 -0
- package/src/test/basic.ts +44 -0
- package/src/test/context.ts +64 -0
- package/src/test/expressmix.ts +81 -0
- package/src/test/socket.ts +90 -0
- package/src/test/socketio.ts +96 -0
- package/src/test.ts +35 -0
- package/src/utils.ts +95 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IdMaker, TypedEmitter } from "../utils.js";
|
|
2
|
-
import {
|
|
3
|
-
class
|
|
2
|
+
import { TypedRPCConnection, TypedRPCConnectionProvider } from "./basic.js";
|
|
3
|
+
class TypedRPCConnectionSocketIO extends TypedRPCConnection {
|
|
4
4
|
socket;
|
|
5
5
|
msgEmitter = new TypedEmitter();
|
|
6
6
|
currentId = 1;
|
|
@@ -61,7 +61,7 @@ class TypeRPCConnectionSocketIO extends TypeRPCConnection {
|
|
|
61
61
|
return this.socket.isClosed();
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
-
class
|
|
64
|
+
class TypedRPCConnectionProviderSocketIO extends TypedRPCConnectionProvider {
|
|
65
65
|
io = null;
|
|
66
66
|
async listen(config) {
|
|
67
67
|
const httpModule = await import("http").catch(() => null);
|
|
@@ -80,7 +80,7 @@ class TypeRPCConnectionProviderSocketIO extends TypeRPCConnectionProvider {
|
|
|
80
80
|
},
|
|
81
81
|
});
|
|
82
82
|
io.on('connection', (socket) => {
|
|
83
|
-
const connection = new
|
|
83
|
+
const connection = new TypedRPCConnectionSocketIO({
|
|
84
84
|
id: socket.id,
|
|
85
85
|
send: (data) => {
|
|
86
86
|
socket.emit('message', data);
|
|
@@ -93,7 +93,7 @@ class TypeRPCConnectionProviderSocketIO extends TypeRPCConnectionProvider {
|
|
|
93
93
|
return socket.disconnected;
|
|
94
94
|
},
|
|
95
95
|
});
|
|
96
|
-
this.emitter.emit('connection', connection); // 告知
|
|
96
|
+
this.emitter.emit('connection', connection); // 告知TypedRPCHandler有新连接
|
|
97
97
|
socket.on('message', (data) => {
|
|
98
98
|
connection.msgEmitter.emit('receive', data);
|
|
99
99
|
});
|
|
@@ -132,7 +132,7 @@ class TypeRPCConnectionProviderSocketIO extends TypeRPCConnectionProvider {
|
|
|
132
132
|
}
|
|
133
133
|
return new Promise((resolve, reject) => {
|
|
134
134
|
const socket = SocketIOClientModule.io(`ws://${target}`);
|
|
135
|
-
const connection = new
|
|
135
|
+
const connection = new TypedRPCConnectionSocketIO({
|
|
136
136
|
id: socket.id || IdMaker.makeId(),
|
|
137
137
|
send: (data) => {
|
|
138
138
|
socket.emit('message', data);
|
|
@@ -145,7 +145,7 @@ class TypeRPCConnectionProviderSocketIO extends TypeRPCConnectionProvider {
|
|
|
145
145
|
return socket.disconnected;
|
|
146
146
|
},
|
|
147
147
|
});
|
|
148
|
-
this.emitter.emit('connection', connection); // 告知
|
|
148
|
+
this.emitter.emit('connection', connection); // 告知TypedRPCHandler有新连接
|
|
149
149
|
socket.on('connect', () => {
|
|
150
150
|
resolve(connection);
|
|
151
151
|
});
|
|
@@ -158,5 +158,5 @@ class TypeRPCConnectionProviderSocketIO extends TypeRPCConnectionProvider {
|
|
|
158
158
|
});
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
|
-
export {
|
|
161
|
+
export { TypedRPCConnectionSocketIO, TypedRPCConnectionProviderSocketIO, };
|
|
162
162
|
//# sourceMappingURL=socketio.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socketio.js","sourceRoot":"","sources":["../../src/connecitons/socketio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"socketio.js","sourceRoot":"","sources":["../../src/connecitons/socketio.ts"],"names":[],"mappings":"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"}
|
package/dist/connection.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare const
|
|
3
|
-
declare const
|
|
4
|
-
export {
|
|
1
|
+
import { TypedRPCConnectionHTTP, TypedRPCConnectionProviderHTTP } from "./connecitons/http.js";
|
|
2
|
+
declare const TypedRPCConnectionDefault: typeof TypedRPCConnectionHTTP;
|
|
3
|
+
declare const TypedRPCConnectionProviderDefault: typeof TypedRPCConnectionProviderHTTP;
|
|
4
|
+
export { TypedRPCConnectionDefault, TypedRPCConnectionProviderDefault, };
|
|
5
5
|
//# sourceMappingURL=connection.d.ts.map
|
package/dist/connection.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAG/F,QAAA,MAAM,yBAAyB,+BAAyB,CAAC;AACzD,QAAA,MAAM,iCAAiC,uCAAiC,CAAC;AAEzE,OAAO,EACH,yBAAyB,EACzB,iCAAiC,GACpC,CAAA"}
|
package/dist/connection.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
const
|
|
3
|
-
const
|
|
4
|
-
export {
|
|
1
|
+
import { TypedRPCConnectionHTTP, TypedRPCConnectionProviderHTTP } from "./connecitons/http.js";
|
|
2
|
+
const TypedRPCConnectionDefault = TypedRPCConnectionHTTP;
|
|
3
|
+
const TypedRPCConnectionProviderDefault = TypedRPCConnectionProviderHTTP;
|
|
4
|
+
export { TypedRPCConnectionDefault, TypedRPCConnectionProviderDefault, };
|
|
5
5
|
//# sourceMappingURL=connection.js.map
|
package/dist/connection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAG/F,MAAM,yBAAyB,GAAG,sBAAsB,CAAC;AACzD,MAAM,iCAAiC,GAAG,8BAA8B,CAAC;AAEzE,OAAO,EACH,yBAAyB,EACzB,iCAAiC,GACpC,CAAA"}
|
package/dist/context.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
type
|
|
4
|
-
connection:
|
|
5
|
-
inbound?:
|
|
6
|
-
outbound?:
|
|
1
|
+
import type { TypedRPCConnection } from "./connecitons/basic.js";
|
|
2
|
+
import type { TypedRPCPacket } from "./packet.js";
|
|
3
|
+
type TypedRPCContext = {
|
|
4
|
+
connection: TypedRPCConnection;
|
|
5
|
+
inbound?: TypedRPCPacket;
|
|
6
|
+
outbound?: TypedRPCPacket;
|
|
7
7
|
};
|
|
8
|
-
export declare const
|
|
9
|
-
interface
|
|
10
|
-
[
|
|
8
|
+
export declare const TypedRPCContextSymbol: unique symbol;
|
|
9
|
+
interface TypedRPCContextAware {
|
|
10
|
+
[TypedRPCContextSymbol]: TypedRPCContext | null;
|
|
11
11
|
}
|
|
12
|
-
export type {
|
|
12
|
+
export type { TypedRPCContextAware, TypedRPCContext, };
|
|
13
13
|
//# sourceMappingURL=context.d.ts.map
|
package/dist/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,KAAK,eAAe,GAAG;IACnB,UAAU,EAAC,kBAAkB,CAAC;IAC9B,OAAO,CAAC,EAAC,cAAc,CAAC;IACxB,QAAQ,CAAC,EAAC,cAAc,CAAC;CAC5B,CAAA;AAED,eAAO,MAAM,qBAAqB,eAA4B,CAAC;AAC/D,UAAU,oBAAoB;IAC1B,CAAC,qBAAqB,CAAC,EAAC,eAAe,GAAG,IAAI,CAAC;CAClD;AAED,YAAY,EACR,oBAAoB,EACpB,eAAe,GAClB,CAAA"}
|
package/dist/context.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const
|
|
1
|
+
export const TypedRPCContextSymbol = Symbol("TypedRPCContext");
|
|
2
2
|
//# sourceMappingURL=context.js.map
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC"}
|
package/dist/core.d.ts
CHANGED
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import {
|
|
3
|
-
import { type
|
|
1
|
+
import type { TypedRPCConnection, TypedRPCConnectionProvider } from "./connecitons/basic.js";
|
|
2
|
+
import { TypedRPCHandler } from "./handler.js";
|
|
3
|
+
import { type TypedRPCRequestPacket, type TypedRPCResponsePacket } from "./packet.js";
|
|
4
4
|
import { TypedEmitter } from "./utils.js";
|
|
5
|
-
type
|
|
5
|
+
type TypedRPCCoreConfig = {
|
|
6
6
|
connection?: {
|
|
7
|
-
provider:
|
|
7
|
+
provider: TypedRPCConnectionProvider;
|
|
8
8
|
};
|
|
9
9
|
};
|
|
10
|
-
type
|
|
11
|
-
connection: (connection:
|
|
10
|
+
type TypedRPCCoreEvents = {
|
|
11
|
+
connection: (connection: TypedRPCConnection) => void;
|
|
12
12
|
};
|
|
13
|
-
declare class
|
|
14
|
-
emitter: TypedEmitter<
|
|
13
|
+
declare class TypedRPCCore {
|
|
14
|
+
emitter: TypedEmitter<TypedRPCCoreEvents>;
|
|
15
15
|
private config;
|
|
16
|
-
handler:
|
|
17
|
-
constructor(config:
|
|
16
|
+
handler: TypedRPCHandler;
|
|
17
|
+
constructor(config: TypedRPCCoreConfig);
|
|
18
18
|
private init;
|
|
19
19
|
get hook(): (serviceName: string, methodName: string, config: {
|
|
20
20
|
handler: (...args: any[]) => any;
|
|
21
21
|
bind?: any;
|
|
22
22
|
}) => void;
|
|
23
23
|
request(config: {
|
|
24
|
-
connection:
|
|
24
|
+
connection: TypedRPCConnection;
|
|
25
25
|
serviceName: string;
|
|
26
26
|
methodName: string;
|
|
27
27
|
args: any[];
|
|
28
28
|
}): Promise<{
|
|
29
|
-
request:
|
|
30
|
-
response:
|
|
29
|
+
request: TypedRPCRequestPacket;
|
|
30
|
+
response: TypedRPCResponsePacket;
|
|
31
31
|
}>;
|
|
32
32
|
listen(config: {
|
|
33
33
|
port: number;
|
|
34
34
|
hostname?: string;
|
|
35
35
|
}): Promise<boolean>;
|
|
36
36
|
close(): Promise<boolean>;
|
|
37
|
-
connect(target: string): Promise<
|
|
37
|
+
connect(target: string): Promise<TypedRPCConnection>;
|
|
38
38
|
}
|
|
39
|
-
export {
|
|
39
|
+
export { TypedRPCCore };
|
|
40
40
|
//# sourceMappingURL=core.d.ts.map
|
package/dist/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AAE5F,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAyB,KAAK,qBAAqB,EAAE,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAC5G,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC,KAAK,kBAAkB,GAAG;IACtB,UAAU,CAAC,EAAC;QACR,QAAQ,EAAC,0BAA0B,CAAC;KACvC,CAAA;CACJ,CAAA;AAED,KAAK,kBAAkB,GAAG;IACtB,UAAU,EAAC,CAAC,UAAU,EAAC,kBAAkB,KAAG,IAAI,CAAC;CACpD,CAAA;AAED,cAAM,YAAY;IAEP,OAAO,mCAA0C;IACxD,OAAO,CAAC,MAAM,CAAoB;IAC3B,OAAO,EAAC,eAAe,CAAC;gBAEnB,MAAM,EAAC,kBAAkB;IAWrC,OAAO,CAAC,IAAI;IA4BZ,IAAI,IAAI;;;eAEP;IAEY,OAAO,CAAC,MAAM,EAAC;QACxB,UAAU,EAAC,kBAAkB,CAAC;QAC9B,WAAW,EAAC,MAAM,CAAC;QACnB,UAAU,EAAC,MAAM,CAAC;QAClB,IAAI,EAAC,GAAG,EAAE,CAAC;KACd,GAAE,OAAO,CAAC;QACP,OAAO,EAAC,qBAAqB,CAAC;QAC9B,QAAQ,EAAC,sBAAsB,CAAC;KACnC,CAAC;IAwBW,MAAM,CAAC,MAAM,EAAC;QACvB,IAAI,EAAC,MAAM,CAAC;QACZ,QAAQ,CAAC,EAAC,MAAM,CAAC;KACpB,GAAE,OAAO,CAAC,OAAO,CAAC;IAQN,KAAK,IAAG,OAAO,CAAC,OAAO,CAAC;IAQxB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAE,OAAO,CAAC,kBAAkB,CAAC;CASnE;AAED,OAAO,EACH,YAAY,EACf,CAAA"}
|
package/dist/core.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { TypedRPCConnectionProviderDefault } from "./connection.js";
|
|
2
|
+
import { TypedRPCHandler } from "./handler.js";
|
|
3
|
+
import { TypedRPCPacketFactory } from "./packet.js";
|
|
4
4
|
import { TypedEmitter } from "./utils.js";
|
|
5
|
-
class
|
|
5
|
+
class TypedRPCCore {
|
|
6
6
|
emitter = new TypedEmitter();
|
|
7
7
|
config;
|
|
8
8
|
handler;
|
|
9
9
|
constructor(config) {
|
|
10
10
|
const defaultConfig = {
|
|
11
11
|
connection: {
|
|
12
|
-
provider: new
|
|
12
|
+
provider: new TypedRPCConnectionProviderDefault(),
|
|
13
13
|
}
|
|
14
14
|
};
|
|
15
15
|
this.config = { ...defaultConfig, ...config };
|
|
16
|
-
this.handler = new
|
|
16
|
+
this.handler = new TypedRPCHandler();
|
|
17
17
|
this.init();
|
|
18
18
|
}
|
|
19
19
|
init() {
|
|
@@ -28,7 +28,7 @@ class TypeRPCCore {
|
|
|
28
28
|
connection.emitter.on('request', (context) => {
|
|
29
29
|
try {
|
|
30
30
|
const requestPacket = JSON.parse(context.data);
|
|
31
|
-
if (!
|
|
31
|
+
if (!TypedRPCPacketFactory.isRequestPacket(requestPacket)) {
|
|
32
32
|
return;
|
|
33
33
|
}
|
|
34
34
|
this.handler.handle(connection, requestPacket, (responsePacket) => {
|
|
@@ -48,18 +48,18 @@ class TypeRPCCore {
|
|
|
48
48
|
return this.handler.hook.bind(this.handler);
|
|
49
49
|
}
|
|
50
50
|
async request(config) {
|
|
51
|
-
const requestPacket =
|
|
51
|
+
const requestPacket = TypedRPCPacketFactory.createRequestPacket({
|
|
52
52
|
serviceName: config.serviceName,
|
|
53
53
|
methodName: config.methodName,
|
|
54
54
|
args: config.args,
|
|
55
55
|
});
|
|
56
56
|
const responsePacket = await this.handler.request(config.connection, requestPacket).catch((e) => {
|
|
57
|
-
return
|
|
57
|
+
return TypedRPCPacketFactory.createResponsePacket({
|
|
58
58
|
requestId: requestPacket.id,
|
|
59
59
|
error: e
|
|
60
60
|
});
|
|
61
61
|
});
|
|
62
|
-
if (!
|
|
62
|
+
if (!TypedRPCPacketFactory.isResponsePacket(responsePacket)) {
|
|
63
63
|
throw new Error(`Invalid response packet:\n${JSON.stringify(responsePacket)}`);
|
|
64
64
|
}
|
|
65
65
|
if (responsePacket.requestId != requestPacket.id) {
|
|
@@ -93,5 +93,5 @@ class TypeRPCCore {
|
|
|
93
93
|
return connection;
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
-
export {
|
|
96
|
+
export { TypedRPCCore };
|
|
97
97
|
//# sourceMappingURL=core.js.map
|
package/dist/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
package/dist/define.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
type
|
|
2
|
-
declare class
|
|
3
|
-
static
|
|
4
|
-
static
|
|
5
|
-
static
|
|
6
|
-
constructor(config?:
|
|
1
|
+
type TypedRPCAPIDefineType = Record<string, Record<string, any>>;
|
|
2
|
+
declare class TypedRPCAPIDefine<T extends TypedRPCAPIDefineType> {
|
|
3
|
+
static TypedRPCService: symbol;
|
|
4
|
+
static TypedRPCMethod: symbol;
|
|
5
|
+
static TypedRPCMethodList: symbol;
|
|
6
|
+
constructor(config?: TypedRPCAPIDefineType);
|
|
7
7
|
static method(): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
|
|
8
8
|
static isService(target: any): boolean;
|
|
9
9
|
static isMethod(method: any): boolean;
|
|
10
10
|
static getMethodList(service: any): string[];
|
|
11
11
|
}
|
|
12
|
-
export type {
|
|
13
|
-
export {
|
|
12
|
+
export type { TypedRPCAPIDefineType, };
|
|
13
|
+
export { TypedRPCAPIDefine, };
|
|
14
14
|
//# sourceMappingURL=define.d.ts.map
|
package/dist/define.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"AACA,KAAK,
|
|
1
|
+
{"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"AACA,KAAK,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;AAQhE,cAAM,iBAAiB,CAAC,CAAC,SAAS,qBAAqB;IAEnD,MAAM,CAAC,eAAe,SAA6B;IACnD,MAAM,CAAC,cAAc,SAA4B;IACjD,MAAM,CAAC,kBAAkB,SAAgC;gBAE7C,MAAM,CAAC,EAAC,qBAAqB;IAIzC,MAAM,CAAC,MAAM,aACe,GAAG,eAAc,MAAM,cAAa,kBAAkB;IAYlF,MAAM,CAAC,SAAS,CAAC,MAAM,EAAC,GAAG;IAI3B,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAC,GAAG;IAW1B,MAAM,CAAC,aAAa,CAAC,OAAO,EAAC,GAAG,GAAE,MAAM,EAAE;CAM7C;AAGD,YAAY,EACR,qBAAqB,GACxB,CAAA;AAED,OAAO,EACH,iBAAiB,GACpB,CAAA"}
|
package/dist/define.js
CHANGED
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
class
|
|
2
|
-
static
|
|
3
|
-
static
|
|
4
|
-
static
|
|
1
|
+
class TypedRPCAPIDefine {
|
|
2
|
+
static TypedRPCService = Symbol('TypedRPCService');
|
|
3
|
+
static TypedRPCMethod = Symbol('TypedRPCMethod');
|
|
4
|
+
static TypedRPCMethodList = Symbol('TypedRPCMethodList');
|
|
5
5
|
constructor(config) {
|
|
6
6
|
}
|
|
7
7
|
static method() {
|
|
8
8
|
return function (target, propertyKey, descriptor) {
|
|
9
|
-
descriptor.value[
|
|
10
|
-
if (!target[
|
|
11
|
-
target[
|
|
9
|
+
descriptor.value[TypedRPCAPIDefine.TypedRPCMethod] = true;
|
|
10
|
+
if (!target[TypedRPCAPIDefine.TypedRPCService]) {
|
|
11
|
+
target[TypedRPCAPIDefine.TypedRPCService] = true;
|
|
12
12
|
}
|
|
13
|
-
if (!target[
|
|
14
|
-
target[
|
|
13
|
+
if (!target[TypedRPCAPIDefine.TypedRPCMethodList]) {
|
|
14
|
+
target[TypedRPCAPIDefine.TypedRPCMethodList] = new Set();
|
|
15
15
|
}
|
|
16
|
-
target[
|
|
16
|
+
target[TypedRPCAPIDefine.TypedRPCMethodList].add(propertyKey);
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
19
|
static isService(target) {
|
|
20
|
-
return target[
|
|
20
|
+
return target[TypedRPCAPIDefine.TypedRPCService] === true;
|
|
21
21
|
}
|
|
22
22
|
static isMethod(method) {
|
|
23
23
|
// 判断是否是方法
|
|
24
24
|
if (typeof method !== 'function') {
|
|
25
25
|
return false;
|
|
26
26
|
}
|
|
27
|
-
if (method[
|
|
27
|
+
if (method[TypedRPCAPIDefine.TypedRPCMethod] != true) {
|
|
28
28
|
return false;
|
|
29
29
|
}
|
|
30
30
|
return true;
|
|
31
31
|
}
|
|
32
32
|
static getMethodList(service) {
|
|
33
|
-
if (!
|
|
33
|
+
if (!TypedRPCAPIDefine.isService(service)) {
|
|
34
34
|
return [];
|
|
35
35
|
}
|
|
36
|
-
return Array.from(service[
|
|
36
|
+
return Array.from(service[TypedRPCAPIDefine.TypedRPCMethodList]);
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
export {
|
|
39
|
+
export { TypedRPCAPIDefine, };
|
|
40
40
|
//# sourceMappingURL=define.js.map
|
package/dist/define.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"AASA,MAAM,
|
|
1
|
+
{"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"AASA,MAAM,iBAAiB;IAEnB,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACnD,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACjD,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAEzD,YAAY,MAA6B;IAEzC,CAAC;IAED,MAAM,CAAC,MAAM;QACT,OAAQ,UAAS,MAAU,EAAE,WAAkB,EAAE,UAA6B;YAC1E,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;YAC1D,IAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAC;gBAC1C,MAAM,CAAC,iBAAiB,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;aACpD;YACD,IAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,EAAC;gBAC7C,MAAM,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,IAAI,GAAG,EAAU,CAAC;aACpE;YACD,MAAM,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAClE,CAAC,CAAA;IACL,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,MAAU;QACvB,OAAO,MAAM,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,MAAU;QACtB,UAAU;QACV,IAAG,OAAO,MAAM,KAAK,UAAU,EAAC;YAC5B,OAAO,KAAK,CAAC;SAChB;QACD,IAAG,MAAM,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,IAAI,EAAC;YAChD,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,OAAW;QAC5B,IAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,EAAC;YACrC,OAAO,EAAE,CAAC;SACb;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACrE,CAAC;;AAQL,OAAO,EACH,iBAAiB,GACpB,CAAA"}
|
package/dist/handler.d.ts
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import { type
|
|
3
|
-
import { type
|
|
1
|
+
import type { TypedRPCConnection } from "./connecitons/basic.js";
|
|
2
|
+
import { type TypedRPCContext } from "./context.js";
|
|
3
|
+
import { type TypedRPCPacket, type TypedRPCRequestPacket, type TypedRPCResponsePacket } from "./packet.js";
|
|
4
4
|
import { TypedEmitter } from "./utils.js";
|
|
5
|
-
declare class
|
|
6
|
-
inbound(context:
|
|
7
|
-
outbound(context:
|
|
5
|
+
declare class TypedRPCHandlerMiddleware {
|
|
6
|
+
inbound(context: TypedRPCContext): Promise<TypedRPCContext>;
|
|
7
|
+
outbound(context: TypedRPCContext): Promise<TypedRPCContext>;
|
|
8
8
|
}
|
|
9
|
-
type
|
|
9
|
+
type TypedRPCHandlerEvents = {};
|
|
10
10
|
/**
|
|
11
|
-
* 处理所有
|
|
11
|
+
* 处理所有TypedRPC数据包,管理入站出站
|
|
12
12
|
*/
|
|
13
|
-
declare class
|
|
14
|
-
emitter: TypedEmitter<
|
|
13
|
+
declare class TypedRPCHandler {
|
|
14
|
+
emitter: TypedEmitter<TypedRPCHandlerEvents>;
|
|
15
15
|
private middlewares;
|
|
16
16
|
private hooks;
|
|
17
17
|
constructor();
|
|
18
|
-
use(middleware:
|
|
18
|
+
use(middleware: TypedRPCHandlerMiddleware): this;
|
|
19
19
|
private middlewareProcesser;
|
|
20
|
-
outbound(context:
|
|
21
|
-
inbound(context:
|
|
22
|
-
request(connection:
|
|
23
|
-
handle(connection:
|
|
20
|
+
outbound(context: TypedRPCContext): Promise<TypedRPCContext>;
|
|
21
|
+
inbound(context: TypedRPCContext): Promise<TypedRPCContext>;
|
|
22
|
+
request(connection: TypedRPCConnection, request: TypedRPCRequestPacket): Promise<TypedRPCPacket>;
|
|
23
|
+
handle(connection: TypedRPCConnection, request: TypedRPCRequestPacket, response: (packet: TypedRPCResponsePacket) => void): Promise<null | undefined>;
|
|
24
24
|
hook(serviceName: string, methodName: string, config: {
|
|
25
25
|
handler: (...args: any[]) => any;
|
|
26
26
|
bind?: any;
|
|
27
27
|
}): void;
|
|
28
28
|
}
|
|
29
|
-
export {
|
|
29
|
+
export { TypedRPCHandler, TypedRPCHandlerMiddleware };
|
|
30
30
|
//# sourceMappingURL=handler.d.ts.map
|
package/dist/handler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAyB,KAAK,cAAc,EAAE,KAAK,qBAAqB,EAAE,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAClI,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAQ1C,cAAM,yBAAyB;IACrB,OAAO,CAAC,OAAO,EAAC,eAAe,GAAE,OAAO,CAAC,eAAe,CAAC;IAGzD,QAAQ,CAAC,OAAO,EAAC,eAAe,GAAE,OAAO,CAAC,eAAe,CAAC;CAGnE;AAED,KAAK,qBAAqB,GAAG,EAE5B,CAAA;AACD;;GAEG;AACH,cAAM,eAAe;IAEV,OAAO,sCAA6C;IAE3D,OAAO,CAAC,WAAW,CAAkC;IAErD,OAAO,CAAC,KAAK,CAGJ;;IAwDF,GAAG,CAAC,UAAU,EAAC,yBAAyB;YAKjC,mBAAmB;IAqBpB,QAAQ,CAAC,OAAO,EAAC,eAAe,GAAE,OAAO,CAAC,eAAe,CAAC;IAO1D,OAAO,CAAC,OAAO,EAAC,eAAe,GAAE,OAAO,CAAC,eAAe,CAAC;IAOzD,OAAO,CAAC,UAAU,EAAC,kBAAkB,EAAC,OAAO,EAAC,qBAAqB,GAAE,OAAO,CAAC,cAAc,CAAC;IAiC5F,MAAM,CAAC,UAAU,EAAC,kBAAkB,EAAC,OAAO,EAAC,qBAAqB,EAAC,QAAQ,EAAC,CAAC,MAAM,EAAC,sBAAsB,KAAK,IAAI;IAiBhI,IAAI,CAAC,WAAW,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,MAAM,EAAC;QAC7C,OAAO,EAAC,CAAC,GAAG,IAAI,EAAC,GAAG,EAAE,KAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,EAAC,GAAG,CAAC;KACb;CAWJ;AAED,OAAO,EACH,eAAe,EACf,yBAAyB,EAC5B,CAAA"}
|
package/dist/handler.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { TypedRPCContextSymbol } from "./context.js";
|
|
2
|
+
import { TypedRPCPacketFactory } from "./packet.js";
|
|
3
3
|
import { TypedEmitter } from "./utils.js";
|
|
4
|
-
// interface
|
|
5
|
-
// inbound?:(context:
|
|
6
|
-
// outbound?:(context:
|
|
4
|
+
// interface TypedRPCHandlerMiddleware{
|
|
5
|
+
// inbound?:(context:TypedRPCContext) => Promise<TypedRPCContext>;
|
|
6
|
+
// outbound?:(context:TypedRPCContext) => Promise<TypedRPCContext>;
|
|
7
7
|
// }
|
|
8
|
-
class
|
|
8
|
+
class TypedRPCHandlerMiddleware {
|
|
9
9
|
async inbound(context) {
|
|
10
10
|
return context;
|
|
11
11
|
}
|
|
@@ -14,9 +14,9 @@ class TypeRPCHandlerMiddleware {
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
|
-
* 处理所有
|
|
17
|
+
* 处理所有TypedRPC数据包,管理入站出站
|
|
18
18
|
*/
|
|
19
|
-
class
|
|
19
|
+
class TypedRPCHandler {
|
|
20
20
|
emitter = new TypedEmitter();
|
|
21
21
|
middlewares = [];
|
|
22
22
|
hooks = {};
|
|
@@ -25,7 +25,7 @@ class TypeRPCHandler {
|
|
|
25
25
|
inbound: async (context) => {
|
|
26
26
|
// Fallback 托底返回错误
|
|
27
27
|
if (context.inbound && !context.outbound) {
|
|
28
|
-
context.outbound =
|
|
28
|
+
context.outbound = TypedRPCPacketFactory.createResponsePacket({
|
|
29
29
|
requestId: context.inbound.id,
|
|
30
30
|
error: "service not available or not found",
|
|
31
31
|
});
|
|
@@ -39,7 +39,7 @@ class TypeRPCHandler {
|
|
|
39
39
|
this.use({
|
|
40
40
|
inbound: async (context) => {
|
|
41
41
|
if (!context.inbound
|
|
42
|
-
|| !
|
|
42
|
+
|| !TypedRPCPacketFactory.isRequestPacket(context.inbound)) {
|
|
43
43
|
return context;
|
|
44
44
|
}
|
|
45
45
|
// 如果已经有出站包,直接返回
|
|
@@ -55,13 +55,13 @@ class TypeRPCHandler {
|
|
|
55
55
|
}
|
|
56
56
|
const result = await hook.handler.call(new Proxy(hook.bind || {}, {
|
|
57
57
|
get(target, prop) {
|
|
58
|
-
if (prop ===
|
|
58
|
+
if (prop === TypedRPCContextSymbol) {
|
|
59
59
|
return context;
|
|
60
60
|
}
|
|
61
61
|
return Reflect.get(target, prop);
|
|
62
62
|
}
|
|
63
63
|
}), ...args);
|
|
64
|
-
const response =
|
|
64
|
+
const response = TypedRPCPacketFactory.createResponsePacket({
|
|
65
65
|
requestId: context.inbound.id,
|
|
66
66
|
result: result,
|
|
67
67
|
});
|
|
@@ -129,11 +129,11 @@ class TypeRPCHandler {
|
|
|
129
129
|
catch (e) {
|
|
130
130
|
throw new Error("Response is not a valid JSON string:" + res);
|
|
131
131
|
}
|
|
132
|
-
if (!
|
|
133
|
-
throw new Error("Response is not a
|
|
132
|
+
if (!TypedRPCPacketFactory.isPacket(responseObject)) {
|
|
133
|
+
throw new Error("Response is not a TypedRPCPacket");
|
|
134
134
|
}
|
|
135
|
-
if (!
|
|
136
|
-
throw new Error("Response is not a
|
|
135
|
+
if (!TypedRPCPacketFactory.isResponsePacket(responseObject)) {
|
|
136
|
+
throw new Error("Response is not a TypedRPCResponsePacket");
|
|
137
137
|
}
|
|
138
138
|
context.inbound = responseObject;
|
|
139
139
|
context = await this.inbound(context);
|
|
@@ -153,7 +153,7 @@ class TypeRPCHandler {
|
|
|
153
153
|
}
|
|
154
154
|
context = await this.outbound(context);
|
|
155
155
|
if (!context.outbound
|
|
156
|
-
|| !
|
|
156
|
+
|| !TypedRPCPacketFactory.isResponsePacket(context.outbound)) {
|
|
157
157
|
return null;
|
|
158
158
|
}
|
|
159
159
|
response(context.outbound);
|
|
@@ -168,5 +168,5 @@ class TypeRPCHandler {
|
|
|
168
168
|
};
|
|
169
169
|
}
|
|
170
170
|
}
|
|
171
|
-
export {
|
|
171
|
+
export { TypedRPCHandler, TypedRPCHandlerMiddleware };
|
|
172
172
|
//# sourceMappingURL=handler.js.map
|
package/dist/handler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"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"}
|