@lsby/net-core 0.7.0 → 0.7.1
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/global/global.cjs +26 -148
- package/dist/cjs/global/web-socket-management.cjs +26 -148
- package/dist/cjs/global/web-socket-management.d.cts +8 -10
- package/dist/cjs/help/help.cjs +2 -27
- package/dist/cjs/help/help.d.cts +1 -16
- package/dist/cjs/help/interior.cjs +52 -0
- package/dist/cjs/help/interior.d.cts +17 -0
- package/dist/cjs/index.cjs +97 -197
- package/dist/cjs/index.d.cts +3 -2
- package/dist/cjs/interface/interface-base.d.cts +2 -2
- package/dist/cjs/interface/interface-logic.cjs +1 -1
- package/dist/cjs/interface/interface-logic.d.cts +2 -2
- package/dist/cjs/interface/interface-result.d.cts +2 -2
- package/dist/{esm/interface-base-52hTGKAQ.d.ts → cjs/interface-base-CBN3QoUN.d.cts} +1 -1
- package/dist/cjs/plugin/extend/chinese-path.d.cts +2 -2
- package/dist/cjs/plugin/extend/custom-data.cjs +26 -148
- package/dist/cjs/plugin/extend/custom-data.d.cts +2 -2
- package/dist/cjs/plugin/extend/json.cjs +1 -1
- package/dist/cjs/plugin/extend/json.d.cts +2 -2
- package/dist/cjs/plugin/extend/log-headers.d.cts +2 -2
- package/dist/cjs/plugin/extend/query.cjs +1 -1
- package/dist/cjs/plugin/extend/query.d.cts +2 -2
- package/dist/cjs/plugin/extend/send-file-plugin.d.cts +2 -2
- package/dist/cjs/plugin/extend/urlencoded.cjs +26 -148
- package/dist/cjs/plugin/extend/urlencoded.d.cts +2 -2
- package/dist/cjs/plugin/extend/web-socket.cjs +46 -150
- package/dist/cjs/plugin/extend/web-socket.d.cts +2 -2
- package/dist/cjs/plugin/plug.d.cts +2 -2
- package/dist/cjs/server/server.cjs +49 -167
- package/dist/cjs/server/server.d.cts +2 -2
- package/dist/cjs/wrapper/common-wrapper.d.cts +2 -2
- package/dist/cjs/wrapper/deferred-result-wrapper.d.cts +2 -2
- package/dist/esm/{chunk-FDEUJJA6.js → chunk-2I2MJFB2.js} +1 -1
- package/dist/esm/{chunk-4AXMR5NB.js → chunk-2JQ7AEO4.js} +1 -1
- package/dist/esm/chunk-AB3GCWSG.js +55 -0
- package/dist/esm/{chunk-JB4HVEXB.js → chunk-G6IT6LW7.js} +1 -1
- package/dist/esm/{chunk-RYGSLVLS.js → chunk-NMG5C5AS.js} +1 -9
- package/dist/esm/{chunk-PW4C7Y5B.js → chunk-QXHAH6TU.js} +26 -22
- package/dist/esm/{chunk-47MYYUQZ.js → chunk-RHDBIJPA.js} +1 -1
- package/dist/esm/{chunk-XPC3O5HH.js → chunk-UMOKW2FY.js} +21 -3
- package/dist/esm/chunk-YMH6HJJF.js +12 -0
- package/dist/esm/{chunk-BD3TBYRH.js → chunk-YMW7PURV.js} +1 -1
- package/dist/esm/global/global.js +1 -1
- package/dist/esm/global/web-socket-management.d.ts +8 -10
- package/dist/esm/global/web-socket-management.js +1 -1
- package/dist/esm/help/help.d.ts +1 -16
- package/dist/esm/help/help.js +3 -7
- package/dist/esm/help/interior.d.ts +17 -0
- package/dist/esm/help/interior.js +8 -0
- package/dist/esm/index.d.ts +3 -2
- package/dist/esm/index.js +24 -27
- package/dist/esm/interface/interface-base.d.ts +2 -2
- package/dist/esm/interface/interface-logic.d.ts +2 -2
- package/dist/esm/interface/interface-logic.js +1 -1
- package/dist/esm/interface/interface-result.d.ts +2 -2
- package/dist/{cjs/interface-base-CNHVr8eR.d.cts → esm/interface-base-D8Jo2TEo.d.ts} +1 -1
- package/dist/esm/plugin/extend/chinese-path.d.ts +2 -2
- package/dist/esm/plugin/extend/custom-data.d.ts +2 -2
- package/dist/esm/plugin/extend/custom-data.js +2 -2
- package/dist/esm/plugin/extend/json.d.ts +2 -2
- package/dist/esm/plugin/extend/json.js +2 -2
- package/dist/esm/plugin/extend/log-headers.d.ts +2 -2
- package/dist/esm/plugin/extend/query.d.ts +2 -2
- package/dist/esm/plugin/extend/query.js +2 -2
- package/dist/esm/plugin/extend/send-file-plugin.d.ts +2 -2
- package/dist/esm/plugin/extend/urlencoded.d.ts +2 -2
- package/dist/esm/plugin/extend/urlencoded.js +2 -2
- package/dist/esm/plugin/extend/web-socket.d.ts +2 -2
- package/dist/esm/plugin/extend/web-socket.js +2 -2
- package/dist/esm/plugin/plug.d.ts +2 -2
- package/dist/esm/server/server.d.ts +2 -2
- package/dist/esm/server/server.js +3 -3
- package/dist/esm/wrapper/common-wrapper.d.ts +2 -2
- package/dist/esm/wrapper/common-wrapper.js +2 -2
- package/dist/esm/wrapper/deferred-result-wrapper.d.ts +2 -2
- package/dist/esm/wrapper/deferred-result-wrapper.js +2 -2
- package/package.json +1 -1
- package/dist/esm/chunk-LDWZKZLU.js +0 -177
- package/dist/esm/{chunk-JLHGWUH6.js → chunk-FHU5AZWT.js} +3 -3
- package/dist/esm/{chunk-FEURUNOT.js → chunk-WYJFP5V5.js} +3 -3
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
// src/help/
|
|
2
|
-
function \u6784\u9020\u5143\u7EC4(args) {
|
|
3
|
-
return args;
|
|
4
|
-
}
|
|
5
|
-
function \u6784\u9020\u5BF9\u8C61(key, value) {
|
|
6
|
-
return { [key]: value };
|
|
7
|
-
}
|
|
1
|
+
// src/help/interior.ts
|
|
8
2
|
function \u622A\u65AD\u5B57\u7B26\u4E32(\u5185\u5BB9) {
|
|
9
3
|
let \u6700\u5927\u65E5\u5FD7\u957F\u5EA6 = 1e3;
|
|
10
4
|
if (\u5185\u5BB9.length > \u6700\u5927\u65E5\u5FD7\u957F\u5EA6)
|
|
@@ -28,8 +22,6 @@ function \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6570\u636E) {
|
|
|
28
22
|
}
|
|
29
23
|
|
|
30
24
|
export {
|
|
31
|
-
构造元组,
|
|
32
|
-
构造对象,
|
|
33
25
|
截断字符串,
|
|
34
26
|
递归截断字符串
|
|
35
27
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Global
|
|
3
|
-
} from "./chunk-LDWZKZLU.js";
|
|
4
1
|
import {
|
|
5
2
|
递归截断字符串
|
|
6
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-NMG5C5AS.js";
|
|
4
|
+
import {
|
|
5
|
+
Global
|
|
6
|
+
} from "./chunk-AB3GCWSG.js";
|
|
7
7
|
|
|
8
8
|
// src/server/server.ts
|
|
9
9
|
import express from "express";
|
|
@@ -110,30 +110,34 @@ var \u670D\u52A1\u5668 = class {
|
|
|
110
110
|
await log.debug("\u6536\u5230 WebSocket \u8FDE\u63A5\u8BF7\u6C42: %o", req.url);
|
|
111
111
|
let \u5BA2\u6237\u7AEFid = req.url?.split("?id=")[1] ?? null;
|
|
112
112
|
if (\u5BA2\u6237\u7AEFid === null) {
|
|
113
|
-
await log.error("\u7F3A\u5C11\u5BA2\u6237\
|
|
114
|
-
return this.\u5173\u95EDWebSocket\u8FDE\u63A5(ws, log,
|
|
113
|
+
await log.error("\u8FDE\u63A5\u8BF7\u6C42\u7F3A\u5C11\u5BA2\u6237\u7AEF ID");
|
|
114
|
+
return this.\u5173\u95EDWebSocket\u8FDE\u63A5(ws, log, 4001, "\u7F3A\u5C11\u5BA2\u6237\u7AEF ID");
|
|
115
115
|
}
|
|
116
|
+
await log.debug("\u89E3\u6790\u5BA2\u6237\u7AEF ID: %s", \u5BA2\u6237\u7AEFid);
|
|
116
117
|
let WebSocket\u7BA1\u7406\u5668 = await Global.getItem("WebSocket\u7BA1\u7406\u5668");
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
118
|
+
let \u8FDE\u63A5\u5DF2\u5B58\u5728 = await WebSocket\u7BA1\u7406\u5668.\u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u5BA2\u6237\u7AEFid);
|
|
119
|
+
if (\u8FDE\u63A5\u5DF2\u5B58\u5728) {
|
|
120
|
+
await log.error("\u5BA2\u6237\u7AEF ID \u5DF2\u5B58\u5728: %s", \u5BA2\u6237\u7AEFid);
|
|
121
|
+
return this.\u5173\u95EDWebSocket\u8FDE\u63A5(ws, log, 4002, "\u5BA2\u6237\u7AEF ID \u5DF2\u5B58\u5728");
|
|
122
|
+
}
|
|
123
|
+
await WebSocket\u7BA1\u7406\u5668.\u589E\u52A0\u8FDE\u63A5(\u5BA2\u6237\u7AEFid, ws);
|
|
124
|
+
await log.info("WebSocket \u8FDE\u63A5\u5DF2\u5EFA\u7ACB, \u5BA2\u6237\u7AEF ID: %s", \u5BA2\u6237\u7AEFid);
|
|
122
125
|
ws.on("close", async () => {
|
|
123
|
-
await WebSocket\
|
|
126
|
+
await log.info("WebSocket \u8FDE\u63A5\u5173\u95ED: %s", \u5BA2\u6237\u7AEFid);
|
|
127
|
+
await WebSocket\u7BA1\u7406\u5668.\u5220\u9664\u8FDE\u63A5(\u5BA2\u6237\u7AEFid);
|
|
124
128
|
});
|
|
125
129
|
ws.on("error", async (err) => {
|
|
126
|
-
await log.error("WebSocket \u51FA\u73B0\u9519\u8BEF: %o",
|
|
127
|
-
await WebSocket\u7BA1\u7406\u5668.\
|
|
130
|
+
await log.error("WebSocket \u51FA\u73B0\u9519\u8BEF, \u5BA2\u6237\u7AEF ID: %s, \u9519\u8BEF: %o", \u5BA2\u6237\u7AEFid, err);
|
|
131
|
+
await WebSocket\u7BA1\u7406\u5668.\u5220\u9664\u8FDE\u63A5(\u5BA2\u6237\u7AEFid);
|
|
132
|
+
});
|
|
133
|
+
wss.on("listening", async () => {
|
|
134
|
+
let log2 = logBase;
|
|
135
|
+
await log2.info("WebSocket \u670D\u52A1\u5668\u5DF2\u542F\u52A8\u5E76\u76D1\u542C");
|
|
136
|
+
});
|
|
137
|
+
wss.on("error", async (err) => {
|
|
138
|
+
let log2 = logBase;
|
|
139
|
+
await log2.error("WebSocket \u670D\u52A1\u5668\u53D1\u751F\u9519\u8BEF: %o", err);
|
|
128
140
|
});
|
|
129
|
-
});
|
|
130
|
-
wss.on("listening", async () => {
|
|
131
|
-
let log = logBase;
|
|
132
|
-
await log.info("WebSocket \u670D\u52A1\u5668\u5DF2\u542F\u52A8\u5E76\u76D1\u542C");
|
|
133
|
-
});
|
|
134
|
-
wss.on("error", async (err) => {
|
|
135
|
-
let log = logBase;
|
|
136
|
-
await log.error("WebSocket \u670D\u52A1\u5668\u53D1\u751F\u9519\u8BEF: %o", err);
|
|
137
141
|
});
|
|
138
142
|
}
|
|
139
143
|
async \u5173\u95EDWebSocket\u8FDE\u63A5(ws, log, code, reason) {
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-43GZE5YL.js";
|
|
4
4
|
import {
|
|
5
5
|
Global
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-AB3GCWSG.js";
|
|
7
7
|
|
|
8
8
|
// src/plugin/extend/web-socket.ts
|
|
9
9
|
import { z } from "zod";
|
|
@@ -21,6 +21,7 @@ var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
|
21
21
|
async (req, _res, \u9644\u52A0\u53C2\u6570) => {
|
|
22
22
|
let log = \u9644\u52A0\u53C2\u6570.log.extend("webSocket\u63D2\u4EF6");
|
|
23
23
|
let WebSocket\u7BA1\u7406\u5668 = await Global.getItem("WebSocket\u7BA1\u7406\u5668");
|
|
24
|
+
let ws\u53E5\u67C4 = null;
|
|
24
25
|
let wsId = req.headers["ws-client-id"];
|
|
25
26
|
await log.debug("\u68C0\u67E5 ws-client-id \u5934\u4FE1\u606F", { wsId });
|
|
26
27
|
if (typeof wsId !== "string") {
|
|
@@ -29,15 +30,32 @@ var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
|
29
30
|
}
|
|
30
31
|
let \u5B58\u5728\u7684wsId = wsId;
|
|
31
32
|
await log.debug("\u5DF2\u83B7\u5F97 WebSocket Id: %o", wsId);
|
|
33
|
+
await log.debug("\u5C1D\u8BD5\u83B7\u53D6 WebSocket \u53E5\u67C4");
|
|
34
|
+
ws\u53E5\u67C4 = await WebSocket\u7BA1\u7406\u5668.\u83B7\u5F97\u53E5\u67C4(\u5B58\u5728\u7684wsId);
|
|
35
|
+
if (ws\u53E5\u67C4 === null) {
|
|
36
|
+
await log.error("\u672A\u80FD\u83B7\u53D6\u5230\u6709\u6548\u7684 WebSocket \u53E5\u67C4");
|
|
37
|
+
return { ws\u64CD\u4F5C: null };
|
|
38
|
+
}
|
|
39
|
+
let \u5B58\u5728\u7684ws\u53E5\u67C4 = ws\u53E5\u67C4;
|
|
40
|
+
await log.debug("WebSocket \u53E5\u67C4\u5DF2\u51C6\u5907\u597D");
|
|
32
41
|
return {
|
|
33
42
|
ws\u64CD\u4F5C: {
|
|
34
43
|
async \u53D1\u9001ws\u4FE1\u606F(\u4FE1\u606F) {
|
|
35
44
|
await log.debug("\u53D1\u9001 WebSocket \u4FE1\u606F: %O", \u4FE1\u606F);
|
|
36
|
-
|
|
45
|
+
return new Promise((res, rej) => {
|
|
46
|
+
\u5B58\u5728\u7684ws\u53E5\u67C4.send(JSON.stringify(\u4FE1\u606F), (err) => {
|
|
47
|
+
if ((err ?? null) !== null) {
|
|
48
|
+
log.error("\u53D1\u9001 WebSocket \u4FE1\u606F\u5931\u8D25: %O", err).catch(console.error);
|
|
49
|
+
return rej(err);
|
|
50
|
+
}
|
|
51
|
+
log.debug("WebSocket \u4FE1\u606F\u53D1\u9001\u6210\u529F").catch(console.error);
|
|
52
|
+
return res();
|
|
53
|
+
});
|
|
54
|
+
});
|
|
37
55
|
},
|
|
38
56
|
async \u5173\u95EDws\u8FDE\u63A5() {
|
|
39
57
|
await log.debug("\u5173\u95ED WebSocket \u8FDE\u63A5");
|
|
40
|
-
await WebSocket\u7BA1\u7406\u5668.\
|
|
58
|
+
await WebSocket\u7BA1\u7406\u5668.\u5220\u9664\u8FDE\u63A5(\u5B58\u5728\u7684wsId);
|
|
41
59
|
},
|
|
42
60
|
async \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(\u6E05\u7406\u51FD\u6570) {
|
|
43
61
|
await WebSocket\u7BA1\u7406\u5668.\u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(\u5B58\u5728\u7684wsId, \u6E05\u7406\u51FD\u6570);
|
|
@@ -31,7 +31,7 @@ var \u63A5\u53E3\u903B\u8F91Base = class _\u63A5\u53E3\u903B\u8F91Base {
|
|
|
31
31
|
let \u63D2\u4EF6\u8FD4\u56DE = await \u63D2\u4EF6\u672C\u4F53.\u8FD0\u884C(req, res, \u4F20\u5165\u7684\u63D2\u4EF6\u9644\u52A0\u53C2\u6570);
|
|
32
32
|
\u6240\u6709\u63D2\u4EF6\u7ED3\u679C.push(\u63D2\u4EF6\u8FD4\u56DE);
|
|
33
33
|
}
|
|
34
|
-
let \u5408\u5E76\u63D2\u4EF6\u7ED3\u679C = \u6240\u6709\u63D2\u4EF6\u7ED3\u679C.reduce((s, a) =>
|
|
34
|
+
let \u5408\u5E76\u63D2\u4EF6\u7ED3\u679C = \u6240\u6709\u63D2\u4EF6\u7ED3\u679C.reduce((s, a) => ({ ...s, ...a }), {});
|
|
35
35
|
await log.debug("\u63D2\u4EF6 \u6267\u884C\u5B8C\u6BD5");
|
|
36
36
|
await log.debug("\u51C6\u5907\u6267\u884C\u63A5\u53E3\u5B9E\u73B0...");
|
|
37
37
|
let \u5B9E\u73B0\u7ED3\u679C = await this.\u5B9E\u73B0(\u5408\u5E76\u63D2\u4EF6\u7ED3\u679C, \u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, \u4F20\u5165\u7684\u63D2\u4EF6\u9644\u52A0\u53C2\u6570);
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
import { WebSocket } from 'ws';
|
|
2
2
|
|
|
3
|
+
type id = string;
|
|
3
4
|
declare class WebSocket管理器 {
|
|
4
|
-
private log;
|
|
5
5
|
private 连接表;
|
|
6
|
-
private
|
|
7
|
-
private
|
|
8
|
-
|
|
6
|
+
private log;
|
|
7
|
+
private 清理函数表;
|
|
8
|
+
constructor(连接表: Record<id, WebSocket | null>);
|
|
9
|
+
增加连接(id: id, ws句柄: WebSocket): Promise<void>;
|
|
10
|
+
查询连接存在(id: string): Promise<boolean>;
|
|
9
11
|
设置清理函数(id: string, 清理函数: () => Promise<void>): Promise<void>;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
标记连接已完成(id: string): Promise<void>;
|
|
13
|
-
标记连接已断开(id: string): Promise<void>;
|
|
14
|
-
取消标记连接已断开(id: string): Promise<void>;
|
|
15
|
-
标记连接已错误(id: string): Promise<void>;
|
|
12
|
+
获得句柄(id: id): Promise<WebSocket | null>;
|
|
13
|
+
删除连接(id: string): Promise<void>;
|
|
16
14
|
}
|
|
17
15
|
|
|
18
16
|
export { WebSocket管理器 };
|
package/dist/esm/help/help.d.ts
CHANGED
|
@@ -1,19 +1,4 @@
|
|
|
1
1
|
declare function 构造元组<T extends any[]>(args: [...T]): T;
|
|
2
2
|
declare function 构造对象<K extends string, V>(key: K, value: V): Record<K, V>;
|
|
3
|
-
type 去除只读<T> = T extends readonly [...infer U] ? U : never;
|
|
4
|
-
type 类型相等<X, Y> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? true : false;
|
|
5
|
-
declare function 截断字符串(内容: string): string;
|
|
6
|
-
declare function 递归截断字符串(数据: any): any;
|
|
7
|
-
type UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (x: infer U) => any ? U : never;
|
|
8
|
-
type LastUnion<T> = UnionToIntersection<T extends any ? (x: T) => any : never> extends (x: infer L) => any ? L : never;
|
|
9
|
-
type 联合转元组<T, Last = LastUnion<T>> = [T] extends [never] ? [] : [...联合转元组<Exclude<T, Last>>, Last];
|
|
10
|
-
type 数组包含<T extends readonly any[], U> = T extends [infer 第一个, ...infer 剩余] ? 类型相等<第一个, U> extends true ? true : 数组包含<剩余, U> : false;
|
|
11
|
-
type 对象去重<T> = {
|
|
12
|
-
[K in keyof T]: T[K];
|
|
13
|
-
};
|
|
14
|
-
type 数组去重<T extends readonly any[], 结果 extends readonly any[] = []> = T extends [
|
|
15
|
-
infer 第一个,
|
|
16
|
-
...infer 剩余
|
|
17
|
-
] ? 数组包含<结果, 第一个> extends true ? 数组去重<剩余, 结果> : 数组去重<剩余, [...结果, 第一个]> : 结果;
|
|
18
3
|
|
|
19
|
-
export {
|
|
4
|
+
export { 构造元组, 构造对象 };
|
package/dist/esm/help/help.js
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
|
-
截断字符串,
|
|
3
2
|
构造元组,
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
} from "../chunk-RYGSLVLS.js";
|
|
3
|
+
构造对象
|
|
4
|
+
} from "../chunk-YMH6HJJF.js";
|
|
7
5
|
export {
|
|
8
|
-
\u622A\u65AD\u5B57\u7B26\u4E32,
|
|
9
6
|
\u6784\u9020\u5143\u7EC4,
|
|
10
|
-
\u6784\u9020\u5BF9\u8C61
|
|
11
|
-
\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32
|
|
7
|
+
\u6784\u9020\u5BF9\u8C61
|
|
12
8
|
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
type 去除只读<T> = T extends readonly [...infer U] ? U : never;
|
|
2
|
+
type 类型相等<X, Y> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? true : false;
|
|
3
|
+
declare function 截断字符串(内容: string): string;
|
|
4
|
+
declare function 递归截断字符串(数据: any): any;
|
|
5
|
+
type UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (x: infer U) => any ? U : never;
|
|
6
|
+
type LastUnion<T> = UnionToIntersection<T extends any ? (x: T) => any : never> extends (x: infer L) => any ? L : never;
|
|
7
|
+
type 联合转元组<T, Last = LastUnion<T>> = [T] extends [never] ? [] : [...联合转元组<Exclude<T, Last>>, Last];
|
|
8
|
+
type 数组包含<T extends readonly any[], U> = T extends [infer 第一个, ...infer 剩余] ? 类型相等<第一个, U> extends true ? true : 数组包含<剩余, U> : false;
|
|
9
|
+
type 对象去重<T> = {
|
|
10
|
+
[K in keyof T]: T[K];
|
|
11
|
+
};
|
|
12
|
+
type 数组去重<T extends readonly any[], 结果 extends readonly any[] = []> = T extends [
|
|
13
|
+
infer 第一个,
|
|
14
|
+
...infer 剩余
|
|
15
|
+
] ? 数组包含<结果, 第一个> extends true ? 数组去重<剩余, 结果> : 数组去重<剩余, [...结果, 第一个]> : 结果;
|
|
16
|
+
|
|
17
|
+
export { type 去除只读, type 对象去重, 截断字符串, type 数组包含, type 数组去重, type 类型相等, type 联合转元组, 递归截断字符串 };
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { 任 as 任意接口, v as 任意接口结果转换器, m as 任意接口逻辑, x as 任意插件, 兼 as 兼容空对象, 包 as 包装插件项, 取 as 取Task插件内部类型, z as 取Task插件类型, A as 取插件内部ts类型, 可 as 可调用接口逻辑, 合 as 合并插件结果, w as 常用延时直接形式转换器, 常 as 常用形式转换器, b as 接口, a as 接口方法类型, u as 接口结果转换器, 接 as 接口路径类型, l as 接口逻辑, k as 接口逻辑Base, i as 接口逻辑正确类型, h as 接口逻辑错误类型, j as 接口逻辑附加参数类型, 插 as 插件, y as 插件项类型, 服 as 服务器, 空 as 空对象, c as 获得接口方法类型, f as 获得接口正确形式, g as 获得接口结果转换器类型, 获 as 获得接口路径类型, n as 获得接口逻辑插件类型, r as 获得接口逻辑最后接口类型, q as 获得接口逻辑正确类型, d as 获得接口逻辑类型, p as 获得接口逻辑错误类型, o as 获得接口逻辑附加参数类型, e as 获得接口错误形式, 计 as 计算接口逻辑参数, t as 计算接口逻辑正确结果, s as 计算接口逻辑错误结果, 请 as 请求附加参数类型 } from './interface-base-
|
|
1
|
+
export { 构造元组, 构造对象 } from './help/help.js';
|
|
2
|
+
export { 任 as 任意接口, v as 任意接口结果转换器, m as 任意接口逻辑, x as 任意插件, 兼 as 兼容空对象, 包 as 包装插件项, 取 as 取Task插件内部类型, z as 取Task插件类型, A as 取插件内部ts类型, 可 as 可调用接口逻辑, 合 as 合并插件结果, w as 常用延时直接形式转换器, 常 as 常用形式转换器, b as 接口, a as 接口方法类型, u as 接口结果转换器, 接 as 接口路径类型, l as 接口逻辑, k as 接口逻辑Base, i as 接口逻辑正确类型, h as 接口逻辑错误类型, j as 接口逻辑附加参数类型, 插 as 插件, y as 插件项类型, 服 as 服务器, 空 as 空对象, c as 获得接口方法类型, f as 获得接口正确形式, g as 获得接口结果转换器类型, 获 as 获得接口路径类型, n as 获得接口逻辑插件类型, r as 获得接口逻辑最后接口类型, q as 获得接口逻辑正确类型, d as 获得接口逻辑类型, p as 获得接口逻辑错误类型, o as 获得接口逻辑附加参数类型, e as 获得接口错误形式, 计 as 计算接口逻辑参数, t as 计算接口逻辑正确结果, s as 计算接口逻辑错误结果, 请 as 请求附加参数类型 } from './interface-base-D8Jo2TEo.js';
|
|
3
3
|
export { 接口测试 } from './interface/interface-test.js';
|
|
4
4
|
export { 中文路径支持插件 } from './plugin/extend/chinese-path.js';
|
|
5
5
|
export { 自定义数据插件 } from './plugin/extend/custom-data.js';
|
|
@@ -16,5 +16,6 @@ export { 常用延时直接形式接口封装 } from './wrapper/deferred-result-
|
|
|
16
16
|
import 'zod';
|
|
17
17
|
import '@lsby/ts-fp-data';
|
|
18
18
|
import 'express';
|
|
19
|
+
import './help/interior.js';
|
|
19
20
|
import '@lsby/ts-log';
|
|
20
21
|
import 'node:http';
|
package/dist/esm/index.js
CHANGED
|
@@ -1,65 +1,64 @@
|
|
|
1
|
+
import {
|
|
2
|
+
中文路径支持插件
|
|
3
|
+
} from "./chunk-47T4ZLNQ.js";
|
|
1
4
|
import {
|
|
2
5
|
自定义数据插件
|
|
3
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-RHDBIJPA.js";
|
|
4
7
|
import {
|
|
5
8
|
JSON解析插件
|
|
6
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-2I2MJFB2.js";
|
|
7
10
|
import {
|
|
8
11
|
调试请求头插件
|
|
9
12
|
} from "./chunk-7MHKNSNT.js";
|
|
10
13
|
import {
|
|
11
14
|
GET参数解析插件
|
|
12
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-2JQ7AEO4.js";
|
|
13
16
|
import {
|
|
14
17
|
发送文件插件
|
|
15
18
|
} from "./chunk-RRUUWHTF.js";
|
|
16
19
|
import {
|
|
17
20
|
表单解析插件
|
|
18
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-G6IT6LW7.js";
|
|
19
22
|
import {
|
|
20
23
|
WebSocket插件
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import {
|
|
23
|
-
中文路径支持插件
|
|
24
|
-
} from "./chunk-47T4ZLNQ.js";
|
|
24
|
+
} from "./chunk-UMOKW2FY.js";
|
|
25
25
|
import {
|
|
26
26
|
接口测试
|
|
27
27
|
} from "./chunk-N7TPWCQ5.js";
|
|
28
|
-
import {
|
|
29
|
-
服务器
|
|
30
|
-
} from "./chunk-PW4C7Y5B.js";
|
|
31
28
|
import {
|
|
32
29
|
插件
|
|
33
30
|
} from "./chunk-43GZE5YL.js";
|
|
31
|
+
import {
|
|
32
|
+
服务器
|
|
33
|
+
} from "./chunk-QXHAH6TU.js";
|
|
34
34
|
import {
|
|
35
35
|
EXPORT_TYPE
|
|
36
36
|
} from "./chunk-ZF7EC2OM.js";
|
|
37
37
|
import "./chunk-XPFEAXE4.js";
|
|
38
38
|
import {
|
|
39
39
|
常用形式接口封装
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-WYJFP5V5.js";
|
|
41
41
|
import {
|
|
42
42
|
常用延时直接形式接口封装
|
|
43
|
-
} from "./chunk-
|
|
44
|
-
import
|
|
43
|
+
} from "./chunk-FHU5AZWT.js";
|
|
44
|
+
import {
|
|
45
|
+
常用延时直接形式转换器,
|
|
46
|
+
常用形式转换器,
|
|
47
|
+
接口结果转换器
|
|
48
|
+
} from "./chunk-AEG7V7QY.js";
|
|
45
49
|
import {
|
|
46
|
-
截断字符串,
|
|
47
50
|
构造元组,
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
+
构造对象
|
|
52
|
+
} from "./chunk-YMH6HJJF.js";
|
|
53
|
+
import "./chunk-NMG5C5AS.js";
|
|
54
|
+
import "./chunk-AB3GCWSG.js";
|
|
51
55
|
import {
|
|
52
56
|
接口
|
|
53
57
|
} from "./chunk-JMR7QAHO.js";
|
|
54
58
|
import {
|
|
55
59
|
接口逻辑,
|
|
56
60
|
接口逻辑Base
|
|
57
|
-
} from "./chunk-
|
|
58
|
-
import {
|
|
59
|
-
常用延时直接形式转换器,
|
|
60
|
-
常用形式转换器,
|
|
61
|
-
接口结果转换器
|
|
62
|
-
} from "./chunk-AEG7V7QY.js";
|
|
61
|
+
} from "./chunk-YMW7PURV.js";
|
|
63
62
|
export {
|
|
64
63
|
EXPORT_TYPE,
|
|
65
64
|
GET\u53C2\u6570\u89E3\u6790\u63D2\u4EF6,
|
|
@@ -71,7 +70,6 @@ export {
|
|
|
71
70
|
\u5E38\u7528\u5EF6\u65F6\u76F4\u63A5\u5F62\u5F0F\u8F6C\u6362\u5668,
|
|
72
71
|
\u5E38\u7528\u5F62\u5F0F\u63A5\u53E3\u5C01\u88C5,
|
|
73
72
|
\u5E38\u7528\u5F62\u5F0F\u8F6C\u6362\u5668,
|
|
74
|
-
\u622A\u65AD\u5B57\u7B26\u4E32,
|
|
75
73
|
\u63A5\u53E3,
|
|
76
74
|
\u63A5\u53E3\u6D4B\u8BD5,
|
|
77
75
|
\u63A5\u53E3\u7ED3\u679C\u8F6C\u6362\u5668,
|
|
@@ -83,6 +81,5 @@ export {
|
|
|
83
81
|
\u6784\u9020\u5BF9\u8C61,
|
|
84
82
|
\u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6,
|
|
85
83
|
\u8868\u5355\u89E3\u6790\u63D2\u4EF6,
|
|
86
|
-
\u8C03\u8BD5\u8BF7\u6C42\u5934\u63D2\u4EF6
|
|
87
|
-
\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32
|
|
84
|
+
\u8C03\u8BD5\u8BF7\u6C42\u5934\u63D2\u4EF6
|
|
88
85
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import 'zod';
|
|
2
|
-
export { 任 as 任意接口, b as 接口, a as 接口方法类型, 接 as 接口路径类型, c as 获得接口方法类型, f as 获得接口正确形式, g as 获得接口结果转换器类型, 获 as 获得接口路径类型, d as 获得接口逻辑类型, e as 获得接口错误形式 } from '../interface-base-
|
|
2
|
+
export { 任 as 任意接口, b as 接口, a as 接口方法类型, 接 as 接口路径类型, c as 获得接口方法类型, f as 获得接口正确形式, g as 获得接口结果转换器类型, 获 as 获得接口路径类型, d as 获得接口逻辑类型, e as 获得接口错误形式 } from '../interface-base-D8Jo2TEo.js';
|
|
3
3
|
import '@lsby/ts-fp-data';
|
|
4
4
|
import 'express';
|
|
5
|
-
import '../help/
|
|
5
|
+
import '../help/interior.js';
|
|
6
6
|
import '@lsby/ts-log';
|
|
7
7
|
import 'node:http';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import '@lsby/ts-fp-data';
|
|
2
2
|
import 'express';
|
|
3
|
-
import '../help/
|
|
4
|
-
export { m as 任意接口逻辑, 兼 as 兼容空对象, 可 as 可调用接口逻辑, l as 接口逻辑, k as 接口逻辑Base, i as 接口逻辑正确类型, h as 接口逻辑错误类型, j as 接口逻辑附加参数类型, 空 as 空对象, n as 获得接口逻辑插件类型, r as 获得接口逻辑最后接口类型, q as 获得接口逻辑正确类型, p as 获得接口逻辑错误类型, o as 获得接口逻辑附加参数类型, 计 as 计算接口逻辑参数, t as 计算接口逻辑正确结果, s as 计算接口逻辑错误结果 } from '../interface-base-
|
|
3
|
+
import '../help/interior.js';
|
|
4
|
+
export { m as 任意接口逻辑, 兼 as 兼容空对象, 可 as 可调用接口逻辑, l as 接口逻辑, k as 接口逻辑Base, i as 接口逻辑正确类型, h as 接口逻辑错误类型, j as 接口逻辑附加参数类型, 空 as 空对象, n as 获得接口逻辑插件类型, r as 获得接口逻辑最后接口类型, q as 获得接口逻辑正确类型, p as 获得接口逻辑错误类型, o as 获得接口逻辑附加参数类型, 计 as 计算接口逻辑参数, t as 计算接口逻辑正确结果, s as 计算接口逻辑错误结果 } from '../interface-base-D8Jo2TEo.js';
|
|
5
5
|
import 'zod';
|
|
6
6
|
import '@lsby/ts-log';
|
|
7
7
|
import 'node:http';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import '@lsby/ts-fp-data';
|
|
2
|
-
export { v as 任意接口结果转换器, w as 常用延时直接形式转换器, 常 as 常用形式转换器, u as 接口结果转换器 } from '../interface-base-
|
|
2
|
+
export { v as 任意接口结果转换器, w as 常用延时直接形式转换器, 常 as 常用形式转换器, u as 接口结果转换器 } from '../interface-base-D8Jo2TEo.js';
|
|
3
3
|
import 'zod';
|
|
4
4
|
import 'express';
|
|
5
|
-
import '../help/
|
|
5
|
+
import '../help/interior.js';
|
|
6
6
|
import '@lsby/ts-log';
|
|
7
7
|
import 'node:http';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { Task, Either } from '@lsby/ts-fp-data';
|
|
3
3
|
import { Request, Response } from 'express';
|
|
4
|
-
import { 联合转元组 as _____ } from './help/
|
|
4
|
+
import { 联合转元组 as _____ } from './help/interior.js';
|
|
5
5
|
import { Log } from '@lsby/ts-log';
|
|
6
6
|
import * as http from 'node:http';
|
|
7
7
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { 插 as __ } from '../../interface-base-
|
|
2
|
+
import { 插 as __ } from '../../interface-base-D8Jo2TEo.js';
|
|
3
3
|
import '@lsby/ts-fp-data';
|
|
4
4
|
import 'express';
|
|
5
|
-
import '../../help/
|
|
5
|
+
import '../../help/interior.js';
|
|
6
6
|
import '@lsby/ts-log';
|
|
7
7
|
import 'node:http';
|
|
8
8
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { 插 as __ } from '../../interface-base-
|
|
2
|
+
import { 插 as __ } from '../../interface-base-D8Jo2TEo.js';
|
|
3
3
|
import '@lsby/ts-fp-data';
|
|
4
4
|
import 'express';
|
|
5
|
-
import '../../help/
|
|
5
|
+
import '../../help/interior.js';
|
|
6
6
|
import '@lsby/ts-log';
|
|
7
7
|
import 'node:http';
|
|
8
8
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import express from 'express';
|
|
2
2
|
import { AnyZodObject, z } from 'zod';
|
|
3
|
-
import { 插 as __, 包 as _____, y as _____$1, 取 as _Task______, n as __________ } from '../../interface-base-
|
|
3
|
+
import { 插 as __, 包 as _____, y as _____$1, 取 as _Task______, n as __________ } from '../../interface-base-D8Jo2TEo.js';
|
|
4
4
|
import '@lsby/ts-fp-data';
|
|
5
|
-
import '../../help/
|
|
5
|
+
import '../../help/interior.js';
|
|
6
6
|
import '@lsby/ts-log';
|
|
7
7
|
import 'node:http';
|
|
8
8
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { 插 as __ } from '../../interface-base-
|
|
2
|
+
import { 插 as __ } from '../../interface-base-D8Jo2TEo.js';
|
|
3
3
|
import '@lsby/ts-fp-data';
|
|
4
4
|
import 'express';
|
|
5
|
-
import '../../help/
|
|
5
|
+
import '../../help/interior.js';
|
|
6
6
|
import '@lsby/ts-log';
|
|
7
7
|
import 'node:http';
|
|
8
8
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { AnyZodObject, z } from 'zod';
|
|
2
|
-
import { 插 as __, 包 as _____, y as _____$1, 取 as _Task______, n as __________ } from '../../interface-base-
|
|
2
|
+
import { 插 as __, 包 as _____, y as _____$1, 取 as _Task______, n as __________ } from '../../interface-base-D8Jo2TEo.js';
|
|
3
3
|
import '@lsby/ts-fp-data';
|
|
4
4
|
import 'express';
|
|
5
|
-
import '../../help/
|
|
5
|
+
import '../../help/interior.js';
|
|
6
6
|
import '@lsby/ts-log';
|
|
7
7
|
import 'node:http';
|
|
8
8
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { 插 as __ } from '../../interface-base-
|
|
2
|
+
import { 插 as __ } from '../../interface-base-D8Jo2TEo.js';
|
|
3
3
|
import '@lsby/ts-fp-data';
|
|
4
4
|
import 'express';
|
|
5
|
-
import '../../help/
|
|
5
|
+
import '../../help/interior.js';
|
|
6
6
|
import '@lsby/ts-log';
|
|
7
7
|
import 'node:http';
|
|
8
8
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import express from 'express';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { 插 as __ } from '../../interface-base-
|
|
3
|
+
import { 插 as __ } from '../../interface-base-D8Jo2TEo.js';
|
|
4
4
|
import '@lsby/ts-fp-data';
|
|
5
|
-
import '../../help/
|
|
5
|
+
import '../../help/interior.js';
|
|
6
6
|
import '@lsby/ts-log';
|
|
7
7
|
import 'node:http';
|
|
8
8
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { 插 as __, 包 as _____, y as _____$1, z as _Task____ } from '../../interface-base-
|
|
2
|
+
import { 插 as __, 包 as _____, y as _____$1, z as _Task____ } from '../../interface-base-D8Jo2TEo.js';
|
|
3
3
|
import '@lsby/ts-fp-data';
|
|
4
4
|
import 'express';
|
|
5
|
-
import '../../help/
|
|
5
|
+
import '../../help/interior.js';
|
|
6
6
|
import '@lsby/ts-log';
|
|
7
7
|
import 'node:http';
|
|
8
8
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import '@lsby/ts-fp-data';
|
|
2
2
|
import 'express';
|
|
3
3
|
import 'zod';
|
|
4
|
-
export { x as 任意插件, 包 as 包装插件项, 取 as 取Task插件内部类型, z as 取Task插件类型, A as 取插件内部ts类型, 合 as 合并插件结果, 插 as 插件, y as 插件项类型 } from '../interface-base-
|
|
5
|
-
import '../help/
|
|
4
|
+
export { x as 任意插件, 包 as 包装插件项, 取 as 取Task插件内部类型, z as 取Task插件类型, A as 取插件内部ts类型, 合 as 合并插件结果, 插 as 插件, y as 插件项类型 } from '../interface-base-D8Jo2TEo.js';
|
|
5
|
+
import '../help/interior.js';
|
|
6
6
|
import '@lsby/ts-log';
|
|
7
7
|
import 'node:http';
|