@mingzey/typedrpc 1.0.2 → 1.1.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/dist/api.d.ts +2 -2
- package/dist/api.d.ts.map +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/connection.d.ts +1 -1
- package/dist/connection.js +1 -1
- package/dist/{connecitons → connections}/basic.d.ts +1 -0
- package/dist/connections/basic.d.ts.map +1 -0
- package/dist/{connecitons → connections}/basic.js.map +1 -1
- package/dist/{connecitons → connections}/http.d.ts.map +1 -1
- package/dist/{connecitons → connections}/http.js.map +1 -1
- package/dist/{connecitons → connections}/socket.d.ts.map +1 -1
- package/dist/{connecitons → connections}/socket.js +10 -10
- package/dist/{connecitons → connections}/socket.js.map +1 -1
- package/dist/{connecitons → connections}/socketio.d.ts.map +1 -1
- package/dist/{connecitons → connections}/socketio.js +10 -10
- package/dist/{connecitons → connections}/socketio.js.map +1 -1
- package/dist/context.d.ts +1 -1
- package/dist/core.d.ts +5 -2
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +20 -13
- package/dist/core.js.map +1 -1
- package/dist/handler.d.ts +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.js +5 -5
- package/dist/server.d.ts +6 -8
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +3 -1
- package/dist/server.js.map +1 -1
- package/package.json +28 -29
- package/dist/connecitons/basic.d.ts.map +0 -1
- package/dist/test/TestCase.d.ts +0 -6
- package/dist/test/TestCase.d.ts.map +0 -1
- package/dist/test/TestCase.js +0 -5
- package/dist/test/TestCase.js.map +0 -1
- package/dist/test/authorization.d.ts +0 -8
- package/dist/test/authorization.d.ts.map +0 -1
- package/dist/test/authorization.js +0 -169
- package/dist/test/authorization.js.map +0 -1
- package/dist/test/basic.d.ts +0 -7
- package/dist/test/basic.d.ts.map +0 -1
- package/dist/test/basic.js +0 -35
- package/dist/test/basic.js.map +0 -1
- package/dist/test/context.d.ts +0 -7
- package/dist/test/context.d.ts.map +0 -1
- package/dist/test/context.js +0 -55
- package/dist/test/context.js.map +0 -1
- package/dist/test/expressmix.d.ts +0 -7
- package/dist/test/expressmix.d.ts.map +0 -1
- package/dist/test/expressmix.js +0 -63
- package/dist/test/expressmix.js.map +0 -1
- package/dist/test/full-duplex.d.ts +0 -12
- package/dist/test/full-duplex.d.ts.map +0 -1
- package/dist/test/full-duplex.js +0 -77
- package/dist/test/full-duplex.js.map +0 -1
- package/dist/test/socket.d.ts +0 -8
- package/dist/test/socket.d.ts.map +0 -1
- package/dist/test/socket.js +0 -71
- package/dist/test/socket.js.map +0 -1
- package/dist/test/socketio.d.ts +0 -12
- package/dist/test/socketio.d.ts.map +0 -1
- package/dist/test/socketio.js +0 -77
- package/dist/test/socketio.js.map +0 -1
- package/dist/test.d.ts +0 -2
- package/dist/test.d.ts.map +0 -1
- package/dist/test.js +0 -33
- package/dist/test.js.map +0 -1
- package/src/api.ts +0 -72
- package/src/client.ts +0 -77
- package/src/connecitons/basic.ts +0 -49
- package/src/connecitons/http.ts +0 -184
- package/src/connecitons/socket.ts +0 -247
- package/src/connecitons/socketio.ts +0 -200
- package/src/connection.ts +0 -10
- package/src/context.ts +0 -18
- package/src/core.ts +0 -130
- package/src/define.ts +0 -63
- package/src/handler.ts +0 -202
- package/src/index.ts +0 -41
- package/src/packet.ts +0 -77
- package/src/server.ts +0 -82
- package/src/test/TestCase.ts +0 -6
- package/src/test/authorization.ts +0 -197
- package/src/test/basic.ts +0 -44
- package/src/test/context.ts +0 -64
- package/src/test/expressmix.ts +0 -81
- package/src/test/socket.ts +0 -90
- package/src/test/socketio.ts +0 -96
- package/src/test.ts +0 -35
- package/src/utils.ts +0 -95
- /package/dist/{connecitons → connections}/basic.js +0 -0
- /package/dist/{connecitons → connections}/http.d.ts +0 -0
- /package/dist/{connecitons → connections}/http.js +0 -0
- /package/dist/{connecitons → connections}/socket.d.ts +0 -0
- /package/dist/{connecitons → connections}/socketio.d.ts +0 -0
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
import { TypedRPCClient } from "../index.js";
|
|
8
|
-
import { TypedRPCAPIDefine } from "../index.js";
|
|
9
|
-
import { TypedRPCHandlerMiddleware } from "../index.js";
|
|
10
|
-
import { TypedRPCPacketFactory } from "../index.js";
|
|
11
|
-
import { TypedRPCServer } from "../index.js";
|
|
12
|
-
import { TestCase } from "./TestCase.js";
|
|
13
|
-
const ServerAPIDefine = new TypedRPCAPIDefine();
|
|
14
|
-
class MathService {
|
|
15
|
-
add(a, b) {
|
|
16
|
-
return a + b;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
__decorate([
|
|
20
|
-
TypedRPCAPIDefine.method()
|
|
21
|
-
], MathService.prototype, "add", null);
|
|
22
|
-
class AuthService {
|
|
23
|
-
authUsers = new Map();
|
|
24
|
-
login(username, password) {
|
|
25
|
-
if (username === 'admin' && password === '123456') {
|
|
26
|
-
const token = Math.random().toString(36).substring(2);
|
|
27
|
-
this.authUsers.set(username, token);
|
|
28
|
-
return token;
|
|
29
|
-
}
|
|
30
|
-
return '';
|
|
31
|
-
}
|
|
32
|
-
checkToken(username, token) {
|
|
33
|
-
return this.authUsers.get(username) === token;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
__decorate([
|
|
37
|
-
TypedRPCAPIDefine.method()
|
|
38
|
-
], AuthService.prototype, "login", null);
|
|
39
|
-
class AuthMiddleware extends TypedRPCHandlerMiddleware {
|
|
40
|
-
auth;
|
|
41
|
-
username;
|
|
42
|
-
token;
|
|
43
|
-
constructor(auth) {
|
|
44
|
-
super();
|
|
45
|
-
this.auth = auth;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* 对外站进入的请求包进行验证
|
|
49
|
-
*/
|
|
50
|
-
async inbound(context) {
|
|
51
|
-
if (context.inbound) {
|
|
52
|
-
if (TypedRPCPacketFactory.isRequestPacket(context.inbound)) {
|
|
53
|
-
const protectService = ['math'];
|
|
54
|
-
if (protectService.includes(context.inbound.serviceName)) {
|
|
55
|
-
const unauthorizedPacket = TypedRPCPacketFactory.createResponsePacket({
|
|
56
|
-
requestId: context.inbound.id,
|
|
57
|
-
error: "unauthorized",
|
|
58
|
-
});
|
|
59
|
-
// 进行验证
|
|
60
|
-
const username = context.inbound.meta?.username;
|
|
61
|
-
const token = context.inbound.meta?.token;
|
|
62
|
-
if (!token || !username) {
|
|
63
|
-
context.outbound = unauthorizedPacket;
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
if (!this.auth || !this.auth.checkToken(username, token)) {
|
|
67
|
-
context.outbound = unauthorizedPacket;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
// 如果入站的是响应包,判断出站是否是登录包
|
|
73
|
-
if (TypedRPCPacketFactory.isResponsePacket(context.inbound)
|
|
74
|
-
&& TypedRPCPacketFactory.isRequestPacket(context.outbound)
|
|
75
|
-
&& context.outbound.serviceName == 'auth'
|
|
76
|
-
&& context.outbound.methodName == 'login') {
|
|
77
|
-
const username = context.outbound.args?.[0];
|
|
78
|
-
const token = context.inbound.result;
|
|
79
|
-
this.token = token;
|
|
80
|
-
this.username = username;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return context;
|
|
84
|
-
}
|
|
85
|
-
async outbound(context) {
|
|
86
|
-
if (context.outbound) {
|
|
87
|
-
if (TypedRPCPacketFactory.isRequestPacket(context.outbound)) {
|
|
88
|
-
// 如果有token,附带token
|
|
89
|
-
if (this.token) {
|
|
90
|
-
context.outbound.meta = {
|
|
91
|
-
username: this.username,
|
|
92
|
-
token: this.token,
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
return context;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
class ServerApp {
|
|
101
|
-
math = new MathService();
|
|
102
|
-
auth = new AuthService();
|
|
103
|
-
server = new TypedRPCServer({
|
|
104
|
-
local: ServerAPIDefine,
|
|
105
|
-
});
|
|
106
|
-
constructor() {
|
|
107
|
-
this.server.use(new AuthMiddleware(this.auth));
|
|
108
|
-
this.server.hookService('math', this.math);
|
|
109
|
-
this.server.hookService('auth', this.auth);
|
|
110
|
-
}
|
|
111
|
-
async start() {
|
|
112
|
-
return this.server.listen({
|
|
113
|
-
port: 3698,
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
async stop() {
|
|
117
|
-
return this.server.close();
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
const serverApp = new ServerApp();
|
|
121
|
-
class TestAuthorization extends TestCase {
|
|
122
|
-
name() {
|
|
123
|
-
return 'Authorization';
|
|
124
|
-
}
|
|
125
|
-
async run() {
|
|
126
|
-
await serverApp.start();
|
|
127
|
-
const client = new TypedRPCClient({
|
|
128
|
-
remote: ServerAPIDefine,
|
|
129
|
-
});
|
|
130
|
-
client.use(new AuthMiddleware());
|
|
131
|
-
const connection = await client.connect('localhost:3698');
|
|
132
|
-
const api = client.getAPI(connection);
|
|
133
|
-
// 未登录调用
|
|
134
|
-
const unauthorizedResult = await new Promise((resolve) => {
|
|
135
|
-
api.math.add.request({
|
|
136
|
-
args: [1, 2],
|
|
137
|
-
callback(result, req, res) {
|
|
138
|
-
resolve(result);
|
|
139
|
-
},
|
|
140
|
-
error(error, req, res) {
|
|
141
|
-
resolve(error);
|
|
142
|
-
},
|
|
143
|
-
});
|
|
144
|
-
});
|
|
145
|
-
if (unauthorizedResult != 'unauthorized') {
|
|
146
|
-
console.log('Unauthorized call result should be "unauthorized"');
|
|
147
|
-
return false;
|
|
148
|
-
}
|
|
149
|
-
// 进行登录
|
|
150
|
-
const token = await api.auth.login.call('admin', '123456');
|
|
151
|
-
if (!token) {
|
|
152
|
-
console.log('Login failed');
|
|
153
|
-
return false;
|
|
154
|
-
}
|
|
155
|
-
// 重新请求
|
|
156
|
-
const authorizedResult = await api.math.add.call(1, 2);
|
|
157
|
-
if (authorizedResult != 3) {
|
|
158
|
-
console.log('Authorized call result should be 3');
|
|
159
|
-
return false;
|
|
160
|
-
}
|
|
161
|
-
return true;
|
|
162
|
-
}
|
|
163
|
-
async finally() {
|
|
164
|
-
await serverApp.stop();
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
export default TestAuthorization;
|
|
169
|
-
//# sourceMappingURL=authorization.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"authorization.js","sourceRoot":"","sources":["../../src/test/authorization.ts"],"names":[],"mappings":"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"}
|
package/dist/test/basic.d.ts
DELETED
package/dist/test/basic.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../../src/test/basic.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAoBzC,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,QAAQ;IAC3C,IAAI,IAAI,MAAM;IAGR,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;IAahB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGxC"}
|
package/dist/test/basic.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { TypedRPCClient } from "../index.js";
|
|
2
|
-
import { TypedRPCAPIDefine } from "../index.js";
|
|
3
|
-
import { TypedRPCServer } from "../index.js";
|
|
4
|
-
import { TestCase } from "./TestCase.js";
|
|
5
|
-
const serverAPIDefine = new TypedRPCAPIDefine();
|
|
6
|
-
const server = new TypedRPCServer({
|
|
7
|
-
local: serverAPIDefine,
|
|
8
|
-
});
|
|
9
|
-
server.hook('math', 'add', {
|
|
10
|
-
handler: (a, b) => a + b,
|
|
11
|
-
});
|
|
12
|
-
const client = new TypedRPCClient({
|
|
13
|
-
remote: serverAPIDefine,
|
|
14
|
-
});
|
|
15
|
-
export default class TestBasic extends TestCase {
|
|
16
|
-
name() {
|
|
17
|
-
return 'Basic';
|
|
18
|
-
}
|
|
19
|
-
async run() {
|
|
20
|
-
await server.listen({
|
|
21
|
-
port: 3698,
|
|
22
|
-
});
|
|
23
|
-
const connection = await client.connect("localhost:3698");
|
|
24
|
-
const api = client.getAPI(connection);
|
|
25
|
-
const result = await api.math.add.call(1, 2);
|
|
26
|
-
if (result == 3) {
|
|
27
|
-
return true;
|
|
28
|
-
}
|
|
29
|
-
return false;
|
|
30
|
-
}
|
|
31
|
-
async finally() {
|
|
32
|
-
await server.close();
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=basic.js.map
|
package/dist/test/basic.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"basic.js","sourceRoot":"","sources":["../../src/test/basic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,eAAe,GAAG,IAAI,iBAAiB,EAIzC,CAAC;AAEL,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;IAC9B,KAAK,EAAC,eAAe;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAC,KAAK,EAAC;IACrB,OAAO,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAA,CAAC,GAAC,CAAC;CACrB,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;IAC9B,MAAM,EAAC,eAAe;CACzB,CAAC,CAAC;AAEH,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,QAAQ;IAC3C,IAAI;QACA,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,KAAK,CAAC,GAAG;QACL,MAAM,MAAM,CAAC,MAAM,CAAC;YAChB,IAAI,EAAC,IAAI;SACZ,CAAC,CAAA;QACF,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;QAC5C,IAAG,MAAM,IAAI,CAAC,EAAC;YACX,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACJ"}
|
package/dist/test/context.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/test/context.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAuCzC,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,QAAQ;IAC3C,IAAI,IAAI,MAAM;IAGR,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;IAahB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGxC"}
|
package/dist/test/context.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
import { TypedRPCClient } from "../index.js";
|
|
8
|
-
import { TypedRPCContextSymbol } from "../index.js";
|
|
9
|
-
import { TypedRPCAPIDefine } from "../index.js";
|
|
10
|
-
import { TypedRPCServer } from "../index.js";
|
|
11
|
-
import { TestCase } from "./TestCase.js";
|
|
12
|
-
const serverAPIDefine = new TypedRPCAPIDefine();
|
|
13
|
-
const server = new TypedRPCServer({
|
|
14
|
-
local: serverAPIDefine,
|
|
15
|
-
});
|
|
16
|
-
class MathService {
|
|
17
|
-
/** 通过 TypedRPCContextAware 接口,将上下文注入到服务中,允许在方法内访问RPC调用时的上下文 */
|
|
18
|
-
[TypedRPCContextSymbol] = null;
|
|
19
|
-
/** 使用hookService时,必须声明为TypedRPC方法,否则不予注册为hook,避免外部非法调用方法*/
|
|
20
|
-
add(a, b) {
|
|
21
|
-
const context = this[TypedRPCContextSymbol];
|
|
22
|
-
if (!context) {
|
|
23
|
-
throw new Error('context is null');
|
|
24
|
-
}
|
|
25
|
-
return a + b;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
__decorate([
|
|
29
|
-
TypedRPCAPIDefine.method()
|
|
30
|
-
], MathService.prototype, "add", null);
|
|
31
|
-
server.hookService('math', new MathService());
|
|
32
|
-
const client = new TypedRPCClient({
|
|
33
|
-
remote: serverAPIDefine,
|
|
34
|
-
});
|
|
35
|
-
export default class TestBasic extends TestCase {
|
|
36
|
-
name() {
|
|
37
|
-
return 'Context';
|
|
38
|
-
}
|
|
39
|
-
async run() {
|
|
40
|
-
await server.listen({
|
|
41
|
-
port: 3698,
|
|
42
|
-
});
|
|
43
|
-
const connection = await client.connect("localhost:3698");
|
|
44
|
-
const api = client.getAPI(connection);
|
|
45
|
-
const result = await api.math.add.call(1, 2);
|
|
46
|
-
if (result == 3) {
|
|
47
|
-
return true;
|
|
48
|
-
}
|
|
49
|
-
return false;
|
|
50
|
-
}
|
|
51
|
-
async finally() {
|
|
52
|
-
await server.close();
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=context.js.map
|
package/dist/test/context.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/test/context.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAmD,MAAM,aAAa,CAAC;AACrG,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAMzC,MAAM,eAAe,GAAG,IAAI,iBAAiB,EAEzC,CAAC;AAEL,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;IAC9B,KAAK,EAAC,eAAe;CACxB,CAAC,CAAC;AAEH,MAAM,WAAW;IAEb,+DAA+D;IAC/D,CAAC,qBAAqB,CAAC,GAA2B,IAAI,CAAC;IAEvD,2DAA2D;IAE3D,GAAG,CAAC,CAAS,EAAE,CAAS;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAE,CAAC;QAC7C,IAAG,CAAC,OAAO,EAAC;YACR,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;SACtC;QACD,OAAO,CAAC,GAAC,CAAC,CAAC;IACf,CAAC;CACJ;AAPG;IADC,iBAAiB,CAAC,MAAM,EAAE;sCAO1B;AAGL,MAAM,CAAC,WAAW,CAAC,MAAM,EAAC,IAAI,WAAW,EAAE,CAAC,CAAC;AAE7C,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;IAC9B,MAAM,EAAC,eAAe;CACzB,CAAC,CAAC;AAKH,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,QAAQ;IAC3C,IAAI;QACA,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,KAAK,CAAC,GAAG;QACL,MAAM,MAAM,CAAC,MAAM,CAAC;YAChB,IAAI,EAAC,IAAI;SACZ,CAAC,CAAA;QACF,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;QAC5C,IAAG,MAAM,IAAI,CAAC,EAAC;YACX,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"expressmix.d.ts","sourceRoot":"","sources":["../../src/test/expressmix.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AA+CzC,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,QAAQ;IAChD,IAAI,IAAI,MAAM;IAGR,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;IAsBhB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAIxC"}
|
package/dist/test/expressmix.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { TypedRPCAPIDefine, TypedRPCClient, TypedRPCConnectionProviderHTTP, TypedRPCServer } from "../index.js";
|
|
2
|
-
import http from 'http';
|
|
3
|
-
import express from 'express';
|
|
4
|
-
import { TestCase } from "./TestCase.js";
|
|
5
|
-
const ServerAPIDefine = new TypedRPCAPIDefine();
|
|
6
|
-
const httpServer = http.createServer();
|
|
7
|
-
/**
|
|
8
|
-
* TypedRPCConnectionProviderHTTP 是 TypedRPCConnectionProvider 的默认实现
|
|
9
|
-
* 你也可以自定义实现 TypedRPCConnectionProvider 与 TypedRPCConnection 来支持其他协议
|
|
10
|
-
* 例如基于IPC协议的连接、基于Websocket协议的连接、基于udp协议的连接
|
|
11
|
-
* */
|
|
12
|
-
const provider = new TypedRPCConnectionProviderHTTP({
|
|
13
|
-
server: httpServer,
|
|
14
|
-
});
|
|
15
|
-
const server = new TypedRPCServer({
|
|
16
|
-
local: ServerAPIDefine,
|
|
17
|
-
connection: {
|
|
18
|
-
provider: provider,
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
server.hook('math', 'add', {
|
|
22
|
-
handler: (a, b) => a + b,
|
|
23
|
-
});
|
|
24
|
-
const app = express();
|
|
25
|
-
app.use("/test", (req, res) => {
|
|
26
|
-
res.end("hello world");
|
|
27
|
-
});
|
|
28
|
-
/**
|
|
29
|
-
* 通过provider注入express中间件
|
|
30
|
-
* provider会将无法识别的请求转发到express中间件
|
|
31
|
-
*/
|
|
32
|
-
provider.use(app);
|
|
33
|
-
const client = new TypedRPCClient({
|
|
34
|
-
remote: ServerAPIDefine,
|
|
35
|
-
});
|
|
36
|
-
export default class TextExpressMix extends TestCase {
|
|
37
|
-
name() {
|
|
38
|
-
return "ExpressMix";
|
|
39
|
-
}
|
|
40
|
-
async run() {
|
|
41
|
-
await server.listen({
|
|
42
|
-
port: 3698
|
|
43
|
-
});
|
|
44
|
-
await new Promise(resolve => setTimeout(resolve, 100));
|
|
45
|
-
// RPC测试
|
|
46
|
-
const connection = await client.connect("localhost:3698");
|
|
47
|
-
const result = await client.getAPI(connection).math.add.call(1, 2);
|
|
48
|
-
if (result !== 3) {
|
|
49
|
-
throw new Error("RPC request result should be 3");
|
|
50
|
-
}
|
|
51
|
-
// express测试
|
|
52
|
-
const response = await fetch("http://localhost:3698/test");
|
|
53
|
-
const text = await response.text();
|
|
54
|
-
if (text !== "hello world") {
|
|
55
|
-
throw new Error("Express request result should be 'hello world'");
|
|
56
|
-
}
|
|
57
|
-
return true;
|
|
58
|
-
}
|
|
59
|
-
async finally() {
|
|
60
|
-
await server.close();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=expressmix.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"expressmix.js","sourceRoot":"","sources":["../../src/test/expressmix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,8BAA8B,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAChH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,eAAe,GAAG,IAAI,iBAAiB,EAIzC,CAAC;AAEL,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AACvC;;;;KAIK;AAGL,MAAM,QAAQ,GAAG,IAAI,8BAA8B,CAAC;IAChD,MAAM,EAAC,UAAU;CACpB,CAAC,CAAA;AAEF,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;IAC9B,KAAK,EAAC,eAAe;IACrB,UAAU,EAAC;QACP,QAAQ,EAAC,QAAQ;KACpB;CACJ,CAAC,CAAA;AACF,MAAM,CAAC,IAAI,CAAC,MAAM,EAAC,KAAK,EAAC;IACrB,OAAO,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAA,CAAC,GAAC,CAAC;CACrB,CAAC,CAAA;AAGF,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;AACtB,GAAG,CAAC,GAAG,CAAC,OAAO,EAAC,CAAC,GAAG,EAAC,GAAG,EAAE,EAAE;IACxB,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAC3B,CAAC,CAAC,CAAA;AACF;;;GAGG;AACH,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAIjB,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;IAC9B,MAAM,EAAC,eAAe;CACzB,CAAC,CAAA;AAEF,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,QAAQ;IAChD,IAAI;QACA,OAAO,YAAY,CAAC;IACxB,CAAC;IACD,KAAK,CAAC,GAAG;QACL,MAAM,MAAM,CAAC,MAAM,CAAC;YAChB,IAAI,EAAC,IAAI;SACZ,CAAC,CAAC;QACH,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAC,GAAG,CAAC,CAAC,CAAC;QAEtD,QAAQ;QACR,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;QAClE,IAAG,MAAM,KAAK,CAAC,EAAC;YACZ,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;SACrD;QAED,YAAY;QACZ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,IAAG,IAAI,KAAK,aAAa,EAAC;YACtB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;SACrE;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CAEJ"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 测试全双工通信实现双向调用
|
|
3
|
-
* TypeRPC的默认实现是基于http的,全双工必须实现自定义的Provider
|
|
4
|
-
* 这里使用socket.io作为Provider的底层通讯
|
|
5
|
-
*/
|
|
6
|
-
import { TestCase } from "./TestCase.js";
|
|
7
|
-
export default class TestFullDuplex extends TestCase {
|
|
8
|
-
name(): string;
|
|
9
|
-
run(): Promise<boolean>;
|
|
10
|
-
finally(): Promise<void>;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=full-duplex.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"full-duplex.d.ts","sourceRoot":"","sources":["../../src/test/full-duplex.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AA+CzC,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,QAAQ;IAChD,IAAI,IAAI,MAAM;IAGR,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;IAmChB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGxC"}
|
package/dist/test/full-duplex.js
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 测试全双工通信实现双向调用
|
|
3
|
-
* TypeRPC的默认实现是基于http的,全双工必须实现自定义的Provider
|
|
4
|
-
* 这里使用socket.io作为Provider的底层通讯
|
|
5
|
-
*/
|
|
6
|
-
import { TestCase } from "./TestCase.js";
|
|
7
|
-
import { TypeRPCAPIDefine, TypeRPCConnectionProviderSocketIO } from "../index.js";
|
|
8
|
-
import { TypeRPCServer } from "../index.js";
|
|
9
|
-
import { TypeRPCClient } from "../index.js";
|
|
10
|
-
const ServerAPIDefine = new TypeRPCAPIDefine;
|
|
11
|
-
const ClientAPIDefine = new TypeRPCAPIDefine;
|
|
12
|
-
const server = new TypeRPCServer({
|
|
13
|
-
local: ServerAPIDefine,
|
|
14
|
-
remote: ClientAPIDefine,
|
|
15
|
-
connection: {
|
|
16
|
-
provider: new TypeRPCConnectionProviderSocketIO(),
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
server.hook('math', 'add', {
|
|
20
|
-
handler: (a, b) => {
|
|
21
|
-
return a + b;
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
const client = new TypeRPCClient({
|
|
25
|
-
local: ClientAPIDefine,
|
|
26
|
-
remote: ServerAPIDefine,
|
|
27
|
-
connection: {
|
|
28
|
-
provider: new TypeRPCConnectionProviderSocketIO(),
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
client.hook('status', 'time', {
|
|
32
|
-
handler: () => {
|
|
33
|
-
return Date.now();
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
export default class TestFullDuplex extends TestCase {
|
|
37
|
-
name() {
|
|
38
|
-
return "TestFullDuplex";
|
|
39
|
-
}
|
|
40
|
-
async run() {
|
|
41
|
-
let requestToServer;
|
|
42
|
-
let requestToClient;
|
|
43
|
-
requestToClient = new Promise((resolve) => {
|
|
44
|
-
server.emitter.on('connection', async (connectionToClient) => {
|
|
45
|
-
const apiToClient = server.getAPI(connectionToClient);
|
|
46
|
-
const result = await apiToClient.status.time.call();
|
|
47
|
-
if (result != null) {
|
|
48
|
-
resolve(true);
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
resolve(false);
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
await server.listen({
|
|
56
|
-
port: 3698,
|
|
57
|
-
});
|
|
58
|
-
requestToServer = new Promise(async (resolve) => {
|
|
59
|
-
const connectionToServer = await client.connect("localhost:3698");
|
|
60
|
-
const apiToServer = client.getAPI(connectionToServer);
|
|
61
|
-
const result = await apiToServer.math.add.call(1, 2);
|
|
62
|
-
if (result == 3) {
|
|
63
|
-
resolve(true);
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
resolve(false);
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
const resultToClient = await requestToClient;
|
|
70
|
-
const resultToServer = await requestToServer;
|
|
71
|
-
return resultToClient && resultToServer;
|
|
72
|
-
}
|
|
73
|
-
async finally() {
|
|
74
|
-
await server.close();
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
//# sourceMappingURL=full-duplex.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"full-duplex.js","sourceRoot":"","sources":["../../src/test/full-duplex.ts"],"names":[],"mappings":"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"}
|
package/dist/test/socket.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/test/socket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AA4CzC,cAAM,UAAW,SAAQ,QAAQ;IAC7B,IAAI,IAAI,MAAM;IAGR,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;IAmChB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAIxC;AAED,eAAe,UAAU,CAAC"}
|
package/dist/test/socket.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { TestCase } from "./TestCase.js";
|
|
2
|
-
import { TypedRPCAPIDefine, TypedRPCClient, TypedRPCConnectionProviderSocket, TypedRPCServer } from "../index.js";
|
|
3
|
-
const ServerAPIDefine = new TypedRPCAPIDefine;
|
|
4
|
-
const ClientAPIDefine = new TypedRPCAPIDefine;
|
|
5
|
-
const server = new TypedRPCServer({
|
|
6
|
-
local: ServerAPIDefine,
|
|
7
|
-
remote: ClientAPIDefine,
|
|
8
|
-
connection: {
|
|
9
|
-
provider: new TypedRPCConnectionProviderSocket(),
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
server.hook('math', 'add', {
|
|
13
|
-
handler: (a, b) => {
|
|
14
|
-
return a + b;
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
const client = new TypedRPCClient({
|
|
18
|
-
local: ClientAPIDefine,
|
|
19
|
-
remote: ServerAPIDefine,
|
|
20
|
-
connection: {
|
|
21
|
-
provider: new TypedRPCConnectionProviderSocket(),
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
client.hook('status', 'time', {
|
|
25
|
-
handler: () => {
|
|
26
|
-
return Date.now();
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
class TestSocket extends TestCase {
|
|
30
|
-
name() {
|
|
31
|
-
return 'Socket';
|
|
32
|
-
}
|
|
33
|
-
async run() {
|
|
34
|
-
let requestToServer;
|
|
35
|
-
let requestToClient;
|
|
36
|
-
requestToClient = new Promise((resolve) => {
|
|
37
|
-
server.emitter.on('connection', async (connectionToClient) => {
|
|
38
|
-
const apiToClient = server.getAPI(connectionToClient);
|
|
39
|
-
const result = await apiToClient.status.time.call();
|
|
40
|
-
if (result != null) {
|
|
41
|
-
resolve(true);
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
resolve(false);
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
await server.listen({
|
|
49
|
-
port: 3698,
|
|
50
|
-
});
|
|
51
|
-
requestToServer = new Promise(async (resolve) => {
|
|
52
|
-
const connectionToServer = await client.connect("localhost:3698");
|
|
53
|
-
const apiToServer = client.getAPI(connectionToServer);
|
|
54
|
-
const result = await apiToServer.math.add.call(1, 2);
|
|
55
|
-
if (result == 3) {
|
|
56
|
-
resolve(true);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
resolve(false);
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
const resultToClient = await requestToClient;
|
|
63
|
-
const resultToServer = await requestToServer;
|
|
64
|
-
return resultToClient && resultToServer;
|
|
65
|
-
}
|
|
66
|
-
async finally() {
|
|
67
|
-
await server.close();
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
export default TestSocket;
|
|
71
|
-
//# sourceMappingURL=socket.js.map
|
package/dist/test/socket.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/test/socket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,gCAAgC,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElH,MAAM,eAAe,GAAG,IAAI,iBAI1B,CAAA;AAEF,MAAM,eAAe,GAAG,IAAI,iBAI1B,CAAA;AAEF,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;IAC9B,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,eAAe;IACvB,UAAU,EAAE;QACR,QAAQ,EAAE,IAAI,gCAAgC,EAAE;KACnD;CACJ,CAAC,CAAA;AAEF,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE;IACvB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACd,OAAO,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;CACJ,CAAC,CAAA;AAEF,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;IAC9B,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,eAAe;IACvB,UAAU,EAAE;QACR,QAAQ,EAAE,IAAI,gCAAgC,EAAE;KACnD;CACJ,CAAC,CAAA;AAEF,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;IAC1B,OAAO,EAAE,GAAG,EAAE;QACV,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;IACtB,CAAC;CACJ,CAAC,CAAA;AAGF,MAAM,UAAW,SAAQ,QAAQ;IAC7B,IAAI;QACA,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,KAAK,CAAC,GAAG;QACL,IAAI,eAAiC,CAAC;QACtC,IAAI,eAAiC,CAAC;QAEtC,eAAe,GAAG,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;YAC/C,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE;gBACzD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;gBACtD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACpD,IAAI,MAAM,IAAI,IAAI,EAAE;oBAChB,OAAO,CAAC,IAAI,CAAC,CAAC;iBACjB;qBAAM;oBACH,OAAO,CAAC,KAAK,CAAC,CAAC;iBAClB;YACL,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;QAEF,MAAM,MAAM,CAAC,MAAM,CAAC;YAChB,IAAI,EAAE,IAAI;SACb,CAAC,CAAA;QAEF,eAAe,GAAG,IAAI,OAAO,CAAU,KAAK,EAAE,OAAO,EAAE,EAAE;YACrD,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAClE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrD,IAAI,MAAM,IAAI,CAAC,EAAE;gBACb,OAAO,CAAC,IAAI,CAAC,CAAC;aACjB;iBAAM;gBACH,OAAO,CAAC,KAAK,CAAC,CAAC;aAClB;QACL,CAAC,CAAC,CAAA;QAEF,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC;QAC7C,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC;QAC7C,OAAO,cAAc,IAAI,cAAc,CAAC;IAC5C,CAAC;IACM,KAAK,CAAC,OAAO;QAChB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CAEJ;AAED,eAAe,UAAU,CAAC"}
|
package/dist/test/socketio.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 测试全双工通信实现双向调用
|
|
3
|
-
* TypedRPC的默认实现是基于http的,全双工必须实现自定义的Provider
|
|
4
|
-
* 这里使用socket.io作为Provider的底层通讯
|
|
5
|
-
*/
|
|
6
|
-
import { TestCase } from "./TestCase.js";
|
|
7
|
-
export default class TestSocketIO extends TestCase {
|
|
8
|
-
name(): string;
|
|
9
|
-
run(): Promise<boolean>;
|
|
10
|
-
finally(): Promise<void>;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=socketio.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"socketio.d.ts","sourceRoot":"","sources":["../../src/test/socketio.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AA+CzC,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,QAAQ;IAC9C,IAAI,IAAI,MAAM;IAGR,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;IAmChB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGxC"}
|