@kevisual/router 0.0.46 → 0.0.47
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/router.d.ts +10 -21
- package/dist/router.js +6 -7
- package/package.json +1 -1
- package/src/index.ts +10 -1
- package/src/server/server-base.ts +6 -6
- package/src/server/server-type.ts +3 -3
- package/src/server/ws-server.ts +0 -1
package/dist/router.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import https from 'node:https';
|
|
|
4
4
|
import http2 from 'node:http2';
|
|
5
5
|
import EventEmitter from 'node:events';
|
|
6
6
|
import { EventEmitter as EventEmitter$1 } from 'events';
|
|
7
|
-
import { WebSocketServer
|
|
7
|
+
import { WebSocketServer } from 'ws';
|
|
8
8
|
import { z } from 'zod';
|
|
9
9
|
import { IncomingMessage as IncomingMessage$1, ServerResponse as ServerResponse$1 } from 'http';
|
|
10
10
|
import { RouteOpts as RouteOpts$1, QueryRouterServer as QueryRouterServer$1, RouteMiddleware as RouteMiddleware$1, Run as Run$1 } from '@kevisual/router';
|
|
@@ -411,7 +411,7 @@ interface ServerType {
|
|
|
411
411
|
server?: any;
|
|
412
412
|
handle: ServerOpts['handle'];
|
|
413
413
|
setHandle(handle?: any): void;
|
|
414
|
-
listeners: Listener
|
|
414
|
+
listeners: Listener[];
|
|
415
415
|
listen(port: number, hostname?: string, backlog?: number, listeningListener?: () => void): void;
|
|
416
416
|
listen(port: number, hostname?: string, listeningListener?: () => void): void;
|
|
417
417
|
listen(port: number, backlog?: number, listeningListener?: () => void): void;
|
|
@@ -451,13 +451,13 @@ type WS = {
|
|
|
451
451
|
userApp?: string;
|
|
452
452
|
};
|
|
453
453
|
};
|
|
454
|
-
type Listener
|
|
454
|
+
type Listener = {
|
|
455
455
|
id?: string;
|
|
456
456
|
io?: boolean;
|
|
457
457
|
path?: string;
|
|
458
|
-
|
|
458
|
+
func: WebSocketListenerFun | HttpListenerFun;
|
|
459
459
|
};
|
|
460
|
-
type
|
|
460
|
+
type WebSocketListenerFun = (req: WebSocketReq, res: WebSocketRes) => Promise<void> | void;
|
|
461
461
|
type HttpListenerFun = (req: RouterReq, res: RouterRes) => Promise<void> | void;
|
|
462
462
|
type WebSocketReq = {
|
|
463
463
|
emitter?: EventEmitter;
|
|
@@ -470,8 +470,8 @@ type WebSocketReq = {
|
|
|
470
470
|
type WebSocketRes = {
|
|
471
471
|
end: (data: any) => void;
|
|
472
472
|
};
|
|
473
|
-
type ListenerFun =
|
|
474
|
-
type OnListener = Listener
|
|
473
|
+
type ListenerFun = WebSocketListenerFun | HttpListenerFun;
|
|
474
|
+
type OnListener = Listener | ListenerFun | (Listener | ListenerFun)[];
|
|
475
475
|
type RouterReq<T = {}> = {
|
|
476
476
|
url: string;
|
|
477
477
|
method: string;
|
|
@@ -615,7 +615,7 @@ declare class ServerBase implements ServerType {
|
|
|
615
615
|
handle: ServerOpts['handle'];
|
|
616
616
|
_callback: any;
|
|
617
617
|
cors: Cors$1;
|
|
618
|
-
listeners: Listener
|
|
618
|
+
listeners: Listener[];
|
|
619
619
|
emitter: EventEmitter$1<any>;
|
|
620
620
|
constructor(opts?: ServerOpts);
|
|
621
621
|
listen(port: number, hostname?: string, backlog?: number, listeningListener?: () => void): void;
|
|
@@ -650,19 +650,8 @@ type WsServerBaseOpts = {
|
|
|
650
650
|
wss?: WebSocketServer | null;
|
|
651
651
|
path?: string;
|
|
652
652
|
};
|
|
653
|
-
type ListenerFn = (message: {
|
|
654
|
-
data: Record<string, any>;
|
|
655
|
-
ws: WebSocket;
|
|
656
|
-
end: (data: any) => any;
|
|
657
|
-
}) => Promise<any>;
|
|
658
|
-
type Listener<T = 'router' | 'chat' | 'ai'> = {
|
|
659
|
-
type: T;
|
|
660
|
-
path?: string;
|
|
661
|
-
listener: ListenerFn;
|
|
662
|
-
};
|
|
663
653
|
declare class WsServerBase {
|
|
664
654
|
wss: WebSocketServer | null;
|
|
665
|
-
listeners: Listener[];
|
|
666
655
|
listening: boolean;
|
|
667
656
|
server: ServerType;
|
|
668
657
|
constructor(opts: WsServerBaseOpts);
|
|
@@ -689,7 +678,7 @@ declare class ServerNode extends ServerBase implements ServerType {
|
|
|
689
678
|
_callback: any;
|
|
690
679
|
cors: Cors;
|
|
691
680
|
private httpType;
|
|
692
|
-
listeners: Listener
|
|
681
|
+
listeners: Listener[];
|
|
693
682
|
private options;
|
|
694
683
|
io: WsServer | undefined;
|
|
695
684
|
constructor(opts?: ServerNodeOpts);
|
|
@@ -936,4 +925,4 @@ declare class App<U = {}> {
|
|
|
936
925
|
}
|
|
937
926
|
|
|
938
927
|
export { App, Connect, CustomError, Mini, QueryConnect, QueryRouter, QueryRouterServer, QueryUtil, Route, ServerNode, createSchema, define, handleServer, util };
|
|
939
|
-
export type {
|
|
928
|
+
export type { HttpListenerFun, Listener, OnListener, OnWebSocketFn, RouteArray, RouteContext, RouteMiddleware, RouteObject, RouteOpts, RouterReq, RouterRes, Rule, Run, Schema, WS, WebSocketListenerFun, WebSocketReq, WebSocketRes };
|
package/dist/router.js
CHANGED
|
@@ -1261,9 +1261,9 @@ class ServerBase {
|
|
|
1261
1261
|
}
|
|
1262
1262
|
const listeners = that.listeners || [];
|
|
1263
1263
|
for (const item of listeners) {
|
|
1264
|
-
const
|
|
1265
|
-
if (typeof
|
|
1266
|
-
await
|
|
1264
|
+
const func = item.func;
|
|
1265
|
+
if (typeof func === 'function' && !item.io) {
|
|
1266
|
+
await func(req, res);
|
|
1267
1267
|
}
|
|
1268
1268
|
}
|
|
1269
1269
|
if (res.headersSent) {
|
|
@@ -1324,13 +1324,13 @@ class ServerBase {
|
|
|
1324
1324
|
on(listener) {
|
|
1325
1325
|
this.listeners = [];
|
|
1326
1326
|
if (typeof listener === 'function') {
|
|
1327
|
-
this.listeners.push({
|
|
1327
|
+
this.listeners.push({ func: listener });
|
|
1328
1328
|
return;
|
|
1329
1329
|
}
|
|
1330
1330
|
if (Array.isArray(listener)) {
|
|
1331
1331
|
for (const item of listener) {
|
|
1332
1332
|
if (typeof item === 'function') {
|
|
1333
|
-
this.listeners.push({
|
|
1333
|
+
this.listeners.push({ func: item });
|
|
1334
1334
|
}
|
|
1335
1335
|
else {
|
|
1336
1336
|
this.listeners.push(item);
|
|
@@ -1348,7 +1348,7 @@ class ServerBase {
|
|
|
1348
1348
|
const end = (data) => {
|
|
1349
1349
|
ws.send(JSON.stringify(data));
|
|
1350
1350
|
};
|
|
1351
|
-
listener.
|
|
1351
|
+
listener.func({
|
|
1352
1352
|
emitter: this.emitter,
|
|
1353
1353
|
data,
|
|
1354
1354
|
token,
|
|
@@ -6340,7 +6340,6 @@ var WebSocketServer = /*@__PURE__*/getDefaultExportFromCjs(websocketServerExport
|
|
|
6340
6340
|
// @ts-type=ws
|
|
6341
6341
|
class WsServerBase {
|
|
6342
6342
|
wss;
|
|
6343
|
-
listeners = [];
|
|
6344
6343
|
listening = false;
|
|
6345
6344
|
server;
|
|
6346
6345
|
constructor(opts) {
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -21,5 +21,14 @@ export * from './router-define.ts';
|
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
export {
|
|
24
|
-
RouterReq,
|
|
24
|
+
RouterReq,
|
|
25
|
+
RouterRes,
|
|
26
|
+
OnWebSocketFn,
|
|
27
|
+
WS,
|
|
28
|
+
WebSocketReq,
|
|
29
|
+
WebSocketRes,
|
|
30
|
+
Listener,
|
|
31
|
+
WebSocketListenerFun,
|
|
32
|
+
HttpListenerFun,
|
|
33
|
+
OnListener,
|
|
25
34
|
} from './server/server-type.ts';
|
|
@@ -119,9 +119,9 @@ export class ServerBase implements ServerType {
|
|
|
119
119
|
}
|
|
120
120
|
const listeners = that.listeners || [];
|
|
121
121
|
for (const item of listeners) {
|
|
122
|
-
const
|
|
123
|
-
if (typeof
|
|
124
|
-
await
|
|
122
|
+
const func = item.func as any;
|
|
123
|
+
if (typeof func === 'function' && !item.io) {
|
|
124
|
+
await func(req, res);
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
127
|
if (res.headersSent) {
|
|
@@ -179,13 +179,13 @@ export class ServerBase implements ServerType {
|
|
|
179
179
|
on(listener: OnListener) {
|
|
180
180
|
this.listeners = [];
|
|
181
181
|
if (typeof listener === 'function') {
|
|
182
|
-
this.listeners.push({
|
|
182
|
+
this.listeners.push({ func: listener });
|
|
183
183
|
return;
|
|
184
184
|
}
|
|
185
185
|
if (Array.isArray(listener)) {
|
|
186
186
|
for (const item of listener) {
|
|
187
187
|
if (typeof item === 'function') {
|
|
188
|
-
this.listeners.push({
|
|
188
|
+
this.listeners.push({ func: item });
|
|
189
189
|
} else {
|
|
190
190
|
this.listeners.push(item);
|
|
191
191
|
}
|
|
@@ -202,7 +202,7 @@ export class ServerBase implements ServerType {
|
|
|
202
202
|
const end = (data: any) => {
|
|
203
203
|
ws.send(JSON.stringify(data));
|
|
204
204
|
}
|
|
205
|
-
(listener.
|
|
205
|
+
(listener.func as WebScoketListenerFun)({
|
|
206
206
|
emitter: this.emitter,
|
|
207
207
|
data,
|
|
208
208
|
token,
|
|
@@ -62,10 +62,10 @@ export type Listener = {
|
|
|
62
62
|
id?: string;
|
|
63
63
|
io?: boolean;
|
|
64
64
|
path?: string;
|
|
65
|
-
|
|
65
|
+
func: WebSocketListenerFun | HttpListenerFun;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
export type
|
|
68
|
+
export type WebSocketListenerFun = (req: WebSocketReq, res: WebSocketRes) => Promise<void> | void;
|
|
69
69
|
export type HttpListenerFun = (req: RouterReq, res: RouterRes) => Promise<void> | void;
|
|
70
70
|
|
|
71
71
|
export type WebSocketReq = {
|
|
@@ -79,7 +79,7 @@ export type WebSocketReq = {
|
|
|
79
79
|
export type WebSocketRes = {
|
|
80
80
|
end: (data: any) => void;
|
|
81
81
|
}
|
|
82
|
-
export type ListenerFun =
|
|
82
|
+
export type ListenerFun = WebSocketListenerFun | HttpListenerFun;;
|
|
83
83
|
export type OnListener = Listener | ListenerFun | (Listener | ListenerFun)[];
|
|
84
84
|
export type RouterReq<T = {}> = {
|
|
85
85
|
url: string;
|