@lsby/net-core 0.10.0 → 0.10.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.
@@ -103,7 +103,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
103
103
  ? {
104
104
  path: jsonPath
105
105
  method: jsonMethod
106
- input: jsonMethod extends 'post' ? jsonInput : jsonMethod extends 'get' ? getInput : {}
106
+ input: jsonMethod extends 'post' ? jsonInput['body'] : jsonMethod extends 'get' ? getInput['query'] : {}
107
107
  errorOutput: jsonErrorOutput
108
108
  successOutput: jsonSuccessOutput
109
109
  webSocketData: wsData
@@ -108,7 +108,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
108
108
  ? {
109
109
  path: jsonPath
110
110
  method: jsonMethod
111
- input: jsonMethod extends 'post' ? jsonInput : jsonMethod extends 'get' ? getInput : {}
111
+ input: jsonMethod extends 'post' ? jsonInput['body'] : jsonMethod extends 'get' ? getInput['query'] : {}
112
112
  errorOutput: jsonErrorOutput
113
113
  successOutput: jsonSuccessOutput
114
114
  webSocketData: wsData
@@ -103,7 +103,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
103
103
  ? {
104
104
  path: jsonPath
105
105
  method: jsonMethod
106
- input: jsonMethod extends 'post' ? jsonInput : jsonMethod extends 'get' ? getInput : {}
106
+ input: jsonMethod extends 'post' ? jsonInput['body'] : jsonMethod extends 'get' ? getInput['query'] : {}
107
107
  errorOutput: jsonErrorOutput
108
108
  successOutput: jsonSuccessOutput
109
109
  webSocketData: wsData
@@ -108,7 +108,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
108
108
  ? {
109
109
  path: jsonPath
110
110
  method: jsonMethod
111
- input: jsonMethod extends 'post' ? jsonInput : jsonMethod extends 'get' ? getInput : {}
111
+ input: jsonMethod extends 'post' ? jsonInput['body'] : jsonMethod extends 'get' ? getInput['query'] : {}
112
112
  errorOutput: jsonErrorOutput
113
113
  successOutput: jsonSuccessOutput
114
114
  webSocketData: wsData
@@ -20,6 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/help/help.ts
21
21
  var help_exports = {};
22
22
  __export(help_exports, {
23
+ \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76: () => \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76,
23
24
  \u6784\u9020\u5143\u7EC4: () => \u6784\u9020\u5143\u7EC4,
24
25
  \u6784\u9020\u5BF9\u8C61: () => \u6784\u9020\u5BF9\u8C61
25
26
  });
@@ -30,8 +31,28 @@ function \u6784\u9020\u5143\u7EC4(args) {
30
31
  function \u6784\u9020\u5BF9\u8C61(key, value) {
31
32
  return { [key]: value };
32
33
  }
34
+ function \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(target, source) {
35
+ if (typeof source !== "object" || source === null || Object.getPrototypeOf(source) !== Object.prototype) {
36
+ return source;
37
+ }
38
+ if (typeof target !== "object" || target === null || Object.getPrototypeOf(target) !== Object.prototype) {
39
+ return source;
40
+ }
41
+ let result = { ...target };
42
+ for (let key in source) {
43
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
44
+ if (typeof source[key] === "object" && source[key] !== null && Object.getPrototypeOf(source[key]) === Object.prototype && typeof target[key] === "object" && target[key] !== null && Object.getPrototypeOf(target[key]) === Object.prototype) {
45
+ result[key] = \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(target[key], source[key]);
46
+ } else {
47
+ result[key] = source[key];
48
+ }
49
+ }
50
+ }
51
+ return result;
52
+ }
33
53
  // Annotate the CommonJS export names for ESM import in node:
34
54
  0 && (module.exports = {
55
+ \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76,
35
56
  \u6784\u9020\u5143\u7EC4,
36
57
  \u6784\u9020\u5BF9\u8C61
37
58
  });
@@ -1,4 +1,13 @@
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 普通对象 = Record<any, any>;
4
+ type 严格递归合并对象<A, B> = A extends 普通对象 ? B extends 普通对象 ? {
5
+ [K in keyof A | keyof B]: K extends keyof A ? K extends keyof B ? A[K] extends 普通对象 ? B[K] extends 普通对象 ? 严格递归合并对象<A[K], B[K]> : never : never : A[K] : K extends keyof B ? B[K] : never;
6
+ } : never : never;
7
+ /**
8
+ * 深合并两个对象,如果两个值都是普通对象,则递归合并,否则用后者覆盖
9
+ * 只有直接上游是对象原型的对象才算是普通对象
10
+ */
11
+ declare function 普通对象深合并(target: Record<any, any>, source: Record<any, any>): Record<string, any>;
3
12
 
4
- export { 构造元组, 构造对象 };
13
+ export { type 严格递归合并对象, 普通对象深合并, 构造元组, 构造对象 };
@@ -46,6 +46,7 @@ __export(index_exports, {
46
46
  \u63A5\u53E3\u903B\u8F91: () => \u63A5\u53E3\u903B\u8F91,
47
47
  \u63A5\u53E3\u903B\u8F91Base: () => \u63A5\u53E3\u903B\u8F91Base,
48
48
  \u63D2\u4EF6: () => \u63D2\u4EF6,
49
+ \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76: () => \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76,
49
50
  \u670D\u52A1\u5668: () => \u670D\u52A1\u5668,
50
51
  \u6784\u9020\u5143\u7EC4: () => \u6784\u9020\u5143\u7EC4,
51
52
  \u6784\u9020\u5BF9\u8C61: () => \u6784\u9020\u5BF9\u8C61,
@@ -64,6 +65,25 @@ function \u6784\u9020\u5143\u7EC4(args) {
64
65
  function \u6784\u9020\u5BF9\u8C61(key, value) {
65
66
  return { [key]: value };
66
67
  }
68
+ function \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(target, source) {
69
+ if (typeof source !== "object" || source === null || Object.getPrototypeOf(source) !== Object.prototype) {
70
+ return source;
71
+ }
72
+ if (typeof target !== "object" || target === null || Object.getPrototypeOf(target) !== Object.prototype) {
73
+ return source;
74
+ }
75
+ let result = { ...target };
76
+ for (let key in source) {
77
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
78
+ if (typeof source[key] === "object" && source[key] !== null && Object.getPrototypeOf(source[key]) === Object.prototype && typeof target[key] === "object" && target[key] !== null && Object.getPrototypeOf(target[key]) === Object.prototype) {
79
+ result[key] = \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(target[key], source[key]);
80
+ } else {
81
+ result[key] = source[key];
82
+ }
83
+ }
84
+ }
85
+ return result;
86
+ }
67
87
 
68
88
  // src/interface/interface-base.ts
69
89
  var \u63A5\u53E3 = class {
@@ -133,7 +153,7 @@ var \u63A5\u53E3\u903B\u8F91Base = class _\u63A5\u53E3\u903B\u8F91Base {
133
153
  let \u63D2\u4EF6\u8FD4\u56DE = await \u63D2\u4EF62.\u8FD0\u884C(req, res, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
134
154
  \u6240\u6709\u63D2\u4EF6\u7ED3\u679C.push(\u63D2\u4EF6\u8FD4\u56DE);
135
155
  }
136
- let \u5408\u5E76\u7ED3\u679C = \u6240\u6709\u63D2\u4EF6\u7ED3\u679C.reduce((s, a) => ({ ...s, ...a }), {});
156
+ let \u5408\u5E76\u7ED3\u679C = \u6240\u6709\u63D2\u4EF6\u7ED3\u679C.reduce((s, a) => \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(s, a), {});
137
157
  return \u5408\u5E76\u7ED3\u679C;
138
158
  }
139
159
  async \u901A\u8FC7\u63D2\u4EF6\u7ED3\u679C\u8FD0\u884C(\u5408\u5E76\u63D2\u4EF6\u7ED3\u679C, \u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, \u4F20\u5165\u7684\u8BF7\u6C42\u9644\u52A0\u53C2\u6570) {
@@ -141,7 +161,7 @@ var \u63A5\u53E3\u903B\u8F91Base = class _\u63A5\u53E3\u903B\u8F91Base {
141
161
  let \u6700\u7EC8\u7ED3\u679C = void 0;
142
162
  try {
143
163
  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\u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
144
- \u6700\u7EC8\u7ED3\u679C = \u5B9E\u73B0\u7ED3\u679C.map((a) => ({ ...\u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, ...a }));
164
+ \u6700\u7EC8\u7ED3\u679C = \u5B9E\u73B0\u7ED3\u679C.map((a) => \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(\u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, a));
145
165
  return \u6700\u7EC8\u7ED3\u679C;
146
166
  } finally {
147
167
  if (\u6E05\u7406\u51FD\u6570 !== void 0) {
@@ -177,9 +197,9 @@ var \u63A5\u53E3\u903B\u8F91Base = class _\u63A5\u53E3\u903B\u8F91Base {
177
197
  async (\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570) => {
178
198
  let \u4E0A\u5C42\u8C03\u7528\u7ED3\u679C = await this.\u5B9E\u73B0(\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
179
199
  if (\u4E0A\u5C42\u8C03\u7528\u7ED3\u679C.isLeft()) return \u4E0A\u5C42\u8C03\u7528\u7ED3\u679C;
180
- let \u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684 = { ...\u903B\u8F91\u9644\u52A0\u53C2\u6570, ...\u4E0A\u5C42\u8C03\u7528\u7ED3\u679C.assertRight().getRight() };
200
+ let \u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684 = \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(\u903B\u8F91\u9644\u52A0\u53C2\u6570, \u4E0A\u5C42\u8C03\u7528\u7ED3\u679C.assertRight().getRight());
181
201
  let \u4E0B\u5C42\u8C03\u7528\u7ED3\u679C = await \u8F93\u5165.\u5B9E\u73B0(\u53C2\u6570, \u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
182
- let \u6700\u7EC8\u8FD4\u56DE\u7ED3\u679C = \u4E0B\u5C42\u8C03\u7528\u7ED3\u679C.map((a) => ({ ...\u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684, ...a }));
202
+ let \u6700\u7EC8\u8FD4\u56DE\u7ED3\u679C = \u4E0B\u5C42\u8C03\u7528\u7ED3\u679C.map((a) => \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(\u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684, a));
183
203
  return \u6700\u7EC8\u8FD4\u56DE\u7ED3\u679C;
184
204
  },
185
205
  \u5408\u5E76\u6E05\u7406,
@@ -730,6 +750,7 @@ var \u5E38\u7528\u76F4\u63A5\u5F62\u5F0F\u63A5\u53E3\u5C01\u88C5 = class extends
730
750
  \u63A5\u53E3\u903B\u8F91,
731
751
  \u63A5\u53E3\u903B\u8F91Base,
732
752
  \u63D2\u4EF6,
753
+ \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76,
733
754
  \u670D\u52A1\u5668,
734
755
  \u6784\u9020\u5143\u7EC4,
735
756
  \u6784\u9020\u5BF9\u8C61,
@@ -1,4 +1,4 @@
1
- export { 构造元组, 构造对象 } from './help/help.cjs';
1
+ export { 严格递归合并对象, 普通对象深合并, 构造元组, 构造对象 } from './help/help.cjs';
2
2
  export { 任 as 任意接口, x as 任意接口结果转换器, n as 任意接口逻辑, y as 任意插件, 兼 as 兼容空对象, A as 取插件内部ts类型, 取 as 取插件内部类型, 可 as 可调用接口逻辑, 合 as 合并插件结果, 常 as 常用形式转换器, b as 接口, a as 接口方法类型, w as 接口结果转换器, 接 as 接口路径类型, m as 接口逻辑, l as 接口逻辑Base, j as 接口逻辑正确类型, i as 接口逻辑错误类型, k as 接口逻辑附加参数类型, 插 as 插件, z as 插件项类型, 服 as 服务器, 清 as 清理函数类型, 直 as 直接形式转换器, 空 as 空对象, c as 获得接口方法类型, f as 获得接口正确形式, g as 获得接口结果转换器类型, h as 获得接口结果返回器类型, 获 as 获得接口路径类型, s as 获得接口逻辑上游接口类型, o as 获得接口逻辑插件类型, t as 获得接口逻辑最后接口类型, r as 获得接口逻辑正确类型, d as 获得接口逻辑类型, q as 获得接口逻辑错误类型, p as 获得接口逻辑附加参数类型, e as 获得接口错误形式, 计 as 计算接口逻辑参数, v as 计算接口逻辑正确结果, u as 计算接口逻辑错误结果, 请 as 请求附加参数类型 } from './interface-base-CyfrfgWu.cjs';
3
3
  export { 任意接口结果返回器, 常用返回器, 接口结果返回器, 自定义返回器 } from './interface/interface-retuen.cjs';
4
4
  export { 接口测试 } from './interface/interface-test.cjs';
@@ -25,6 +25,29 @@ __export(interface_logic_exports, {
25
25
  });
26
26
  module.exports = __toCommonJS(interface_logic_exports);
27
27
  var import_ts_fp_data = require("@lsby/ts-fp-data");
28
+
29
+ // src/help/help.ts
30
+ function \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(target, source) {
31
+ if (typeof source !== "object" || source === null || Object.getPrototypeOf(source) !== Object.prototype) {
32
+ return source;
33
+ }
34
+ if (typeof target !== "object" || target === null || Object.getPrototypeOf(target) !== Object.prototype) {
35
+ return source;
36
+ }
37
+ let result = { ...target };
38
+ for (let key in source) {
39
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
40
+ if (typeof source[key] === "object" && source[key] !== null && Object.getPrototypeOf(source[key]) === Object.prototype && typeof target[key] === "object" && target[key] !== null && Object.getPrototypeOf(target[key]) === Object.prototype) {
41
+ result[key] = \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(target[key], source[key]);
42
+ } else {
43
+ result[key] = source[key];
44
+ }
45
+ }
46
+ }
47
+ return result;
48
+ }
49
+
50
+ // src/interface/interface-logic.ts
28
51
  var \u63A5\u53E3\u903B\u8F91Base = class _\u63A5\u53E3\u903B\u8F91Base {
29
52
  constructor(\u4E0A\u6E38\u63A5\u53E3, \u6700\u540E\u63A5\u53E3) {
30
53
  this.\u4E0A\u6E38\u63A5\u53E3 = \u4E0A\u6E38\u63A5\u53E3;
@@ -57,7 +80,7 @@ var \u63A5\u53E3\u903B\u8F91Base = class _\u63A5\u53E3\u903B\u8F91Base {
57
80
  let \u63D2\u4EF6\u8FD4\u56DE = await \u63D2\u4EF6.\u8FD0\u884C(req, res, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
58
81
  \u6240\u6709\u63D2\u4EF6\u7ED3\u679C.push(\u63D2\u4EF6\u8FD4\u56DE);
59
82
  }
60
- let \u5408\u5E76\u7ED3\u679C = \u6240\u6709\u63D2\u4EF6\u7ED3\u679C.reduce((s, a) => ({ ...s, ...a }), {});
83
+ let \u5408\u5E76\u7ED3\u679C = \u6240\u6709\u63D2\u4EF6\u7ED3\u679C.reduce((s, a) => \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(s, a), {});
61
84
  return \u5408\u5E76\u7ED3\u679C;
62
85
  }
63
86
  async \u901A\u8FC7\u63D2\u4EF6\u7ED3\u679C\u8FD0\u884C(\u5408\u5E76\u63D2\u4EF6\u7ED3\u679C, \u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, \u4F20\u5165\u7684\u8BF7\u6C42\u9644\u52A0\u53C2\u6570) {
@@ -65,7 +88,7 @@ var \u63A5\u53E3\u903B\u8F91Base = class _\u63A5\u53E3\u903B\u8F91Base {
65
88
  let \u6700\u7EC8\u7ED3\u679C = void 0;
66
89
  try {
67
90
  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\u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
68
- \u6700\u7EC8\u7ED3\u679C = \u5B9E\u73B0\u7ED3\u679C.map((a) => ({ ...\u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, ...a }));
91
+ \u6700\u7EC8\u7ED3\u679C = \u5B9E\u73B0\u7ED3\u679C.map((a) => \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(\u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, a));
69
92
  return \u6700\u7EC8\u7ED3\u679C;
70
93
  } finally {
71
94
  if (\u6E05\u7406\u51FD\u6570 !== void 0) {
@@ -101,9 +124,9 @@ var \u63A5\u53E3\u903B\u8F91Base = class _\u63A5\u53E3\u903B\u8F91Base {
101
124
  async (\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570) => {
102
125
  let \u4E0A\u5C42\u8C03\u7528\u7ED3\u679C = await this.\u5B9E\u73B0(\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
103
126
  if (\u4E0A\u5C42\u8C03\u7528\u7ED3\u679C.isLeft()) return \u4E0A\u5C42\u8C03\u7528\u7ED3\u679C;
104
- let \u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684 = { ...\u903B\u8F91\u9644\u52A0\u53C2\u6570, ...\u4E0A\u5C42\u8C03\u7528\u7ED3\u679C.assertRight().getRight() };
127
+ let \u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684 = \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(\u903B\u8F91\u9644\u52A0\u53C2\u6570, \u4E0A\u5C42\u8C03\u7528\u7ED3\u679C.assertRight().getRight());
105
128
  let \u4E0B\u5C42\u8C03\u7528\u7ED3\u679C = await \u8F93\u5165.\u5B9E\u73B0(\u53C2\u6570, \u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
106
- let \u6700\u7EC8\u8FD4\u56DE\u7ED3\u679C = \u4E0B\u5C42\u8C03\u7528\u7ED3\u679C.map((a) => ({ ...\u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684, ...a }));
129
+ let \u6700\u7EC8\u8FD4\u56DE\u7ED3\u679C = \u4E0B\u5C42\u8C03\u7528\u7ED3\u679C.map((a) => \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(\u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684, a));
107
130
  return \u6700\u7EC8\u8FD4\u56DE\u7ED3\u679C;
108
131
  },
109
132
  \u5408\u5E76\u6E05\u7406,
@@ -1,5 +1,6 @@
1
1
  import express from 'express';
2
2
  import { AnyZodObject, z } from 'zod';
3
+ import { 严格递归合并对象 as ________ } from '../../help/help.cjs';
3
4
  import { 插 as __, z as _____, 取 as _______, o as __________ } from '../../interface-base-CyfrfgWu.cjs';
4
5
  import '@lsby/ts-fp-data';
5
6
  import '../../help/interior.cjs';
@@ -16,9 +17,9 @@ declare class JSON解析插件<Result extends AnyZodObject> extends __<z.ZodObje
16
17
  }
17
18
  type 任意JSON解析插件 = JSON解析插件<any>;
18
19
  type 任意JSON解析插件项 = 任意JSON解析插件;
19
- type 合并JSON插件结果<Arr extends Array<_____>> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x extends infer 插件项 ? xs extends Array<_____> ? 插件项 extends 任意JSON解析插件项 ? {
20
+ type 合并JSON插件结果<Arr extends Array<_____>> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x extends infer 插件项 ? xs extends Array<_____> ? 插件项 extends 任意JSON解析插件项 ? ________<{
20
21
  body: z.infer<_______<插件项>>['body'];
21
- } & 合并JSON插件结果<xs> : 合并JSON插件结果<xs> : {} : {} : {};
22
+ }, 合并JSON插件结果<xs>> : 合并JSON插件结果<xs> : {} : {} : {};
22
23
  type 计算接口逻辑JSON参数<接口逻辑> = 合并JSON插件结果<__________<接口逻辑>>;
23
24
 
24
25
  export { JSON解析插件, type 任意JSON解析插件, type 任意JSON解析插件项, type 合并JSON插件结果, type 计算接口逻辑JSON参数 };
@@ -1,4 +1,5 @@
1
1
  import { AnyZodObject, z } from 'zod';
2
+ import { 严格递归合并对象 as ________ } from '../../help/help.cjs';
2
3
  import { 插 as __, z as _____, 取 as _______, o as __________ } from '../../interface-base-CyfrfgWu.cjs';
3
4
  import '@lsby/ts-fp-data';
4
5
  import 'express';
@@ -16,9 +17,9 @@ declare class GET参数解析插件<Result extends AnyZodObject> extends __<z.Zo
16
17
  }
17
18
  type 任意GET参数解析插件 = GET参数解析插件<any>;
18
19
  type 任意GET参数解析插件项 = 任意GET参数解析插件;
19
- type 合并GET插件结果<Arr extends Array<_____>> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x extends infer 插件项 ? xs extends Array<_____> ? 插件项 extends 任意GET参数解析插件项 ? {
20
+ type 合并GET插件结果<Arr extends Array<_____>> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x extends infer 插件项 ? xs extends Array<_____> ? 插件项 extends 任意GET参数解析插件项 ? ________<{
20
21
  query: z.infer<_______<插件项>>['query'];
21
- } & 合并GET插件结果<xs> : 合并GET插件结果<xs> : {} : {} : {};
22
+ }, 合并GET插件结果<xs>> : 合并GET插件结果<xs> : {} : {} : {};
22
23
  type 计算接口逻辑GET参数<接口逻辑> = 合并GET插件结果<__________<接口逻辑>>;
23
24
 
24
25
  export { GET参数解析插件, type 任意GET参数解析插件, type 任意GET参数解析插件项, type 合并GET插件结果, type 计算接口逻辑GET参数 };
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  main
4
- } from "../../chunk-REQ5ZXOQ.js";
4
+ } from "../../chunk-B5DKJ5AV.js";
5
5
 
6
6
  // src/bin/gen-api-type/bin.ts
7
7
  import { Command } from "commander";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  main
3
- } from "../../chunk-REQ5ZXOQ.js";
3
+ } from "../../chunk-B5DKJ5AV.js";
4
4
  export {
5
5
  main
6
6
  };
@@ -0,0 +1,32 @@
1
+ // src/help/help.ts
2
+ function \u6784\u9020\u5143\u7EC4(args) {
3
+ return args;
4
+ }
5
+ function \u6784\u9020\u5BF9\u8C61(key, value) {
6
+ return { [key]: value };
7
+ }
8
+ function \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(target, source) {
9
+ if (typeof source !== "object" || source === null || Object.getPrototypeOf(source) !== Object.prototype) {
10
+ return source;
11
+ }
12
+ if (typeof target !== "object" || target === null || Object.getPrototypeOf(target) !== Object.prototype) {
13
+ return source;
14
+ }
15
+ let result = { ...target };
16
+ for (let key in source) {
17
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
18
+ if (typeof source[key] === "object" && source[key] !== null && Object.getPrototypeOf(source[key]) === Object.prototype && typeof target[key] === "object" && target[key] !== null && Object.getPrototypeOf(target[key]) === Object.prototype) {
19
+ result[key] = \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(target[key], source[key]);
20
+ } else {
21
+ result[key] = source[key];
22
+ }
23
+ }
24
+ }
25
+ return result;
26
+ }
27
+
28
+ export {
29
+ 构造元组,
30
+ 构造对象,
31
+ 普通对象深合并
32
+ };
@@ -74,7 +74,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
74
74
  ? {
75
75
  path: jsonPath
76
76
  method: jsonMethod
77
- input: jsonMethod extends 'post' ? jsonInput : jsonMethod extends 'get' ? getInput : {}
77
+ input: jsonMethod extends 'post' ? jsonInput['body'] : jsonMethod extends 'get' ? getInput['query'] : {}
78
78
  errorOutput: jsonErrorOutput
79
79
  successOutput: jsonSuccessOutput
80
80
  webSocketData: wsData
@@ -1,3 +1,7 @@
1
+ import {
2
+ 普通对象深合并
3
+ } from "./chunk-7LQRWJ3X.js";
4
+
1
5
  // src/interface/interface-logic.ts
2
6
  import { Right } from "@lsby/ts-fp-data";
3
7
  var \u63A5\u53E3\u903B\u8F91Base = class _\u63A5\u53E3\u903B\u8F91Base {
@@ -32,7 +36,7 @@ var \u63A5\u53E3\u903B\u8F91Base = class _\u63A5\u53E3\u903B\u8F91Base {
32
36
  let \u63D2\u4EF6\u8FD4\u56DE = await \u63D2\u4EF6.\u8FD0\u884C(req, res, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
33
37
  \u6240\u6709\u63D2\u4EF6\u7ED3\u679C.push(\u63D2\u4EF6\u8FD4\u56DE);
34
38
  }
35
- let \u5408\u5E76\u7ED3\u679C = \u6240\u6709\u63D2\u4EF6\u7ED3\u679C.reduce((s, a) => ({ ...s, ...a }), {});
39
+ let \u5408\u5E76\u7ED3\u679C = \u6240\u6709\u63D2\u4EF6\u7ED3\u679C.reduce((s, a) => \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(s, a), {});
36
40
  return \u5408\u5E76\u7ED3\u679C;
37
41
  }
38
42
  async \u901A\u8FC7\u63D2\u4EF6\u7ED3\u679C\u8FD0\u884C(\u5408\u5E76\u63D2\u4EF6\u7ED3\u679C, \u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, \u4F20\u5165\u7684\u8BF7\u6C42\u9644\u52A0\u53C2\u6570) {
@@ -40,7 +44,7 @@ var \u63A5\u53E3\u903B\u8F91Base = class _\u63A5\u53E3\u903B\u8F91Base {
40
44
  let \u6700\u7EC8\u7ED3\u679C = void 0;
41
45
  try {
42
46
  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\u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
43
- \u6700\u7EC8\u7ED3\u679C = \u5B9E\u73B0\u7ED3\u679C.map((a) => ({ ...\u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, ...a }));
47
+ \u6700\u7EC8\u7ED3\u679C = \u5B9E\u73B0\u7ED3\u679C.map((a) => \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(\u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, a));
44
48
  return \u6700\u7EC8\u7ED3\u679C;
45
49
  } finally {
46
50
  if (\u6E05\u7406\u51FD\u6570 !== void 0) {
@@ -76,9 +80,9 @@ var \u63A5\u53E3\u903B\u8F91Base = class _\u63A5\u53E3\u903B\u8F91Base {
76
80
  async (\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570) => {
77
81
  let \u4E0A\u5C42\u8C03\u7528\u7ED3\u679C = await this.\u5B9E\u73B0(\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
78
82
  if (\u4E0A\u5C42\u8C03\u7528\u7ED3\u679C.isLeft()) return \u4E0A\u5C42\u8C03\u7528\u7ED3\u679C;
79
- let \u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684 = { ...\u903B\u8F91\u9644\u52A0\u53C2\u6570, ...\u4E0A\u5C42\u8C03\u7528\u7ED3\u679C.assertRight().getRight() };
83
+ let \u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684 = \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(\u903B\u8F91\u9644\u52A0\u53C2\u6570, \u4E0A\u5C42\u8C03\u7528\u7ED3\u679C.assertRight().getRight());
80
84
  let \u4E0B\u5C42\u8C03\u7528\u7ED3\u679C = await \u8F93\u5165.\u5B9E\u73B0(\u53C2\u6570, \u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
81
- let \u6700\u7EC8\u8FD4\u56DE\u7ED3\u679C = \u4E0B\u5C42\u8C03\u7528\u7ED3\u679C.map((a) => ({ ...\u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684, ...a }));
85
+ let \u6700\u7EC8\u8FD4\u56DE\u7ED3\u679C = \u4E0B\u5C42\u8C03\u7528\u7ED3\u679C.map((a) => \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(\u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684, a));
82
86
  return \u6700\u7EC8\u8FD4\u56DE\u7ED3\u679C;
83
87
  },
84
88
  \u5408\u5E76\u6E05\u7406,
@@ -1,4 +1,13 @@
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 普通对象 = Record<any, any>;
4
+ type 严格递归合并对象<A, B> = A extends 普通对象 ? B extends 普通对象 ? {
5
+ [K in keyof A | keyof B]: K extends keyof A ? K extends keyof B ? A[K] extends 普通对象 ? B[K] extends 普通对象 ? 严格递归合并对象<A[K], B[K]> : never : never : A[K] : K extends keyof B ? B[K] : never;
6
+ } : never : never;
7
+ /**
8
+ * 深合并两个对象,如果两个值都是普通对象,则递归合并,否则用后者覆盖
9
+ * 只有直接上游是对象原型的对象才算是普通对象
10
+ */
11
+ declare function 普通对象深合并(target: Record<any, any>, source: Record<any, any>): Record<string, any>;
3
12
 
4
- export { 构造元组, 构造对象 };
13
+ export { type 严格递归合并对象, 普通对象深合并, 构造元组, 构造对象 };
@@ -1,8 +1,10 @@
1
1
  import {
2
+ 普通对象深合并,
2
3
  构造元组,
3
4
  构造对象
4
- } from "../chunk-YMH6HJJF.js";
5
+ } from "../chunk-7LQRWJ3X.js";
5
6
  export {
7
+ \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76,
6
8
  \u6784\u9020\u5143\u7EC4,
7
9
  \u6784\u9020\u5BF9\u8C61
8
10
  };
@@ -1,4 +1,4 @@
1
- export { 构造元组, 构造对象 } from './help/help.js';
1
+ export { 严格递归合并对象, 普通对象深合并, 构造元组, 构造对象 } from './help/help.js';
2
2
  export { 任 as 任意接口, x as 任意接口结果转换器, n as 任意接口逻辑, y as 任意插件, 兼 as 兼容空对象, A as 取插件内部ts类型, 取 as 取插件内部类型, 可 as 可调用接口逻辑, 合 as 合并插件结果, 常 as 常用形式转换器, b as 接口, a as 接口方法类型, w as 接口结果转换器, 接 as 接口路径类型, m as 接口逻辑, l as 接口逻辑Base, j as 接口逻辑正确类型, i as 接口逻辑错误类型, k as 接口逻辑附加参数类型, 插 as 插件, z as 插件项类型, 服 as 服务器, 清 as 清理函数类型, 直 as 直接形式转换器, 空 as 空对象, c as 获得接口方法类型, f as 获得接口正确形式, g as 获得接口结果转换器类型, h as 获得接口结果返回器类型, 获 as 获得接口路径类型, s as 获得接口逻辑上游接口类型, o as 获得接口逻辑插件类型, t as 获得接口逻辑最后接口类型, r as 获得接口逻辑正确类型, d as 获得接口逻辑类型, q as 获得接口逻辑错误类型, p as 获得接口逻辑附加参数类型, e as 获得接口错误形式, 计 as 计算接口逻辑参数, v as 计算接口逻辑正确结果, u as 计算接口逻辑错误结果, 请 as 请求附加参数类型 } from './interface-base-C1ZNSMJz.js';
3
3
  export { 任意接口结果返回器, 常用返回器, 接口结果返回器, 自定义返回器 } from './interface/interface-retuen.js';
4
4
  export { 接口测试 } from './interface/interface-test.js';
package/dist/esm/index.js CHANGED
@@ -22,12 +22,12 @@ import {
22
22
  import {
23
23
  接口测试
24
24
  } from "./chunk-N7TPWCQ5.js";
25
- import {
26
- 服务器
27
- } from "./chunk-3ZQFVYIR.js";
28
25
  import {
29
26
  插件
30
27
  } from "./chunk-43GZE5YL.js";
28
+ import {
29
+ 服务器
30
+ } from "./chunk-3ZQFVYIR.js";
31
31
  import {
32
32
  EXPORT_TYPE
33
33
  } from "./chunk-ZF7EC2OM.js";
@@ -44,10 +44,6 @@ import {
44
44
  自定义返回器
45
45
  } from "./chunk-XBAKTT6S.js";
46
46
  import "./chunk-NJKBRPN7.js";
47
- import {
48
- 构造元组,
49
- 构造对象
50
- } from "./chunk-YMH6HJJF.js";
51
47
  import "./chunk-ZIVQ3WZA.js";
52
48
  import {
53
49
  接口
@@ -55,7 +51,12 @@ import {
55
51
  import {
56
52
  接口逻辑,
57
53
  接口逻辑Base
58
- } from "./chunk-ITCALAYE.js";
54
+ } from "./chunk-E23EZWBE.js";
55
+ import {
56
+ 普通对象深合并,
57
+ 构造元组,
58
+ 构造对象
59
+ } from "./chunk-7LQRWJ3X.js";
59
60
  import {
60
61
  常用形式转换器,
61
62
  接口结果转换器,
@@ -78,6 +79,7 @@ export {
78
79
  \u63A5\u53E3\u903B\u8F91,
79
80
  \u63A5\u53E3\u903B\u8F91Base,
80
81
  \u63D2\u4EF6,
82
+ \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76,
81
83
  \u670D\u52A1\u5668,
82
84
  \u6784\u9020\u5143\u7EC4,
83
85
  \u6784\u9020\u5BF9\u8C61,
@@ -1,7 +1,8 @@
1
1
  import {
2
2
  接口逻辑,
3
3
  接口逻辑Base
4
- } from "../chunk-ITCALAYE.js";
4
+ } from "../chunk-E23EZWBE.js";
5
+ import "../chunk-7LQRWJ3X.js";
5
6
  export {
6
7
  \u63A5\u53E3\u903B\u8F91,
7
8
  \u63A5\u53E3\u903B\u8F91Base
@@ -1,5 +1,6 @@
1
1
  import express from 'express';
2
2
  import { AnyZodObject, z } from 'zod';
3
+ import { 严格递归合并对象 as ________ } from '../../help/help.js';
3
4
  import { 插 as __, z as _____, 取 as _______, o as __________ } from '../../interface-base-C1ZNSMJz.js';
4
5
  import '@lsby/ts-fp-data';
5
6
  import '../../help/interior.js';
@@ -16,9 +17,9 @@ declare class JSON解析插件<Result extends AnyZodObject> extends __<z.ZodObje
16
17
  }
17
18
  type 任意JSON解析插件 = JSON解析插件<any>;
18
19
  type 任意JSON解析插件项 = 任意JSON解析插件;
19
- type 合并JSON插件结果<Arr extends Array<_____>> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x extends infer 插件项 ? xs extends Array<_____> ? 插件项 extends 任意JSON解析插件项 ? {
20
+ type 合并JSON插件结果<Arr extends Array<_____>> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x extends infer 插件项 ? xs extends Array<_____> ? 插件项 extends 任意JSON解析插件项 ? ________<{
20
21
  body: z.infer<_______<插件项>>['body'];
21
- } & 合并JSON插件结果<xs> : 合并JSON插件结果<xs> : {} : {} : {};
22
+ }, 合并JSON插件结果<xs>> : 合并JSON插件结果<xs> : {} : {} : {};
22
23
  type 计算接口逻辑JSON参数<接口逻辑> = 合并JSON插件结果<__________<接口逻辑>>;
23
24
 
24
25
  export { JSON解析插件, type 任意JSON解析插件, type 任意JSON解析插件项, type 合并JSON插件结果, type 计算接口逻辑JSON参数 };
@@ -1,4 +1,5 @@
1
1
  import { AnyZodObject, z } from 'zod';
2
+ import { 严格递归合并对象 as ________ } from '../../help/help.js';
2
3
  import { 插 as __, z as _____, 取 as _______, o as __________ } from '../../interface-base-C1ZNSMJz.js';
3
4
  import '@lsby/ts-fp-data';
4
5
  import 'express';
@@ -16,9 +17,9 @@ declare class GET参数解析插件<Result extends AnyZodObject> extends __<z.Zo
16
17
  }
17
18
  type 任意GET参数解析插件 = GET参数解析插件<any>;
18
19
  type 任意GET参数解析插件项 = 任意GET参数解析插件;
19
- type 合并GET插件结果<Arr extends Array<_____>> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x extends infer 插件项 ? xs extends Array<_____> ? 插件项 extends 任意GET参数解析插件项 ? {
20
+ type 合并GET插件结果<Arr extends Array<_____>> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x extends infer 插件项 ? xs extends Array<_____> ? 插件项 extends 任意GET参数解析插件项 ? ________<{
20
21
  query: z.infer<_______<插件项>>['query'];
21
- } & 合并GET插件结果<xs> : 合并GET插件结果<xs> : {} : {} : {};
22
+ }, 合并GET插件结果<xs>> : 合并GET插件结果<xs> : {} : {} : {};
22
23
  type 计算接口逻辑GET参数<接口逻辑> = 合并GET插件结果<__________<接口逻辑>>;
23
24
 
24
25
  export { GET参数解析插件, type 任意GET参数解析插件, type 任意GET参数解析插件项, type 合并GET插件结果, type 计算接口逻辑GET参数 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lsby/net-core",
3
- "version": "0.10.0",
3
+ "version": "0.10.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "require": "./dist/cjs/index.cjs",
@@ -1,12 +0,0 @@
1
- // src/help/help.ts
2
- function \u6784\u9020\u5143\u7EC4(args) {
3
- return args;
4
- }
5
- function \u6784\u9020\u5BF9\u8C61(key, value) {
6
- return { [key]: value };
7
- }
8
-
9
- export {
10
- 构造元组,
11
- 构造对象
12
- };