@lsby/net-core 0.3.12 → 0.3.13
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/bin/gen-list/bin.cjs +1 -2
- package/dist/bin/gen-list/index.cjs +1 -2
- package/dist/bin/gen-test/bin.cjs +1 -2
- package/dist/bin/gen-test/index.cjs +1 -2
- package/dist/bin/gen-type/bin.cjs +1 -2
- package/dist/bin/gen-type/index.cjs +1 -2
- package/dist/cjs/bin/gen-list/bin.cjs +1 -2
- package/dist/cjs/bin/gen-list/index.cjs +1 -2
- package/dist/cjs/bin/gen-test/bin.cjs +1 -2
- package/dist/cjs/bin/gen-test/index.cjs +1 -2
- package/dist/cjs/bin/gen-type/bin.cjs +1 -2
- package/dist/cjs/bin/gen-type/index.cjs +1 -2
- package/dist/cjs/extend/api-json-base.cjs +206 -0
- package/dist/cjs/extend/api-json-base.d.cts +15 -0
- package/dist/cjs/extend/api-json-wrap.cjs +257 -0
- package/dist/cjs/extend/{wrap-json.d.cts → api-json-wrap.d.cts} +14 -15
- package/dist/cjs/index.cjs +170 -37
- package/dist/cjs/index.d.cts +6 -4
- package/dist/cjs/interface/action/action.cjs +142 -0
- package/dist/cjs/interface/action/action.d.cts +90 -0
- package/dist/cjs/interface/inst/interface-abstract.cjs +123 -1
- package/dist/cjs/interface/inst/interface-abstract.d.cts +12 -11
- package/dist/cjs/interface/inst/interface.cjs +133 -5
- package/dist/cjs/interface/inst/interface.d.cts +9 -5
- package/dist/cjs/interface/type/interface-type-abstract.d.cts +6 -1
- package/dist/cjs/plugin/urlencoded.cjs +1 -2
- package/dist/cjs/server/server.cjs +1 -2
- package/dist/cjs/server/server.d.cts +2 -1
- package/dist/esm/bin/gen-list/bin.js +1 -1
- package/dist/esm/bin/gen-list/index.js +1 -1
- package/dist/esm/bin/gen-test/bin.js +1 -1
- package/dist/esm/bin/gen-test/index.js +1 -1
- package/dist/esm/bin/gen-type/bin.js +1 -1
- package/dist/esm/bin/gen-type/index.js +1 -1
- package/dist/esm/{chunk-N7VWAPFU.js → chunk-6NX5P6CE.js} +1 -2
- package/dist/esm/{chunk-YYOST4AX.js → chunk-FLDJE3PK.js} +1 -2
- package/dist/esm/{chunk-DQX4L6GK.js → chunk-GAVKGLRL.js} +1 -2
- package/dist/esm/chunk-HOO4TK2L.js +118 -0
- package/dist/esm/chunk-I5QXSZQU.js +21 -0
- package/dist/esm/chunk-ILSTOG4G.js +30 -0
- package/dist/esm/{chunk-X3JVDZYX.js → chunk-JIW3U7SL.js} +14 -19
- package/dist/esm/{chunk-CSZNLNB5.js → chunk-NCSYD5GL.js} +1 -2
- package/dist/esm/chunk-PA2HBZKY.js +16 -0
- package/dist/esm/{chunk-5UUMGDDD.js → chunk-TMFRIHV5.js} +1 -2
- package/dist/esm/extend/api-json-base.d.ts +15 -0
- package/dist/esm/extend/api-json-base.js +10 -0
- package/dist/esm/extend/{wrap-json.d.ts → api-json-wrap.d.ts} +14 -15
- package/dist/esm/extend/api-json-wrap.js +16 -0
- package/dist/esm/index.d.ts +6 -4
- package/dist/esm/index.js +19 -16
- package/dist/esm/interface/action/action.d.ts +90 -0
- package/dist/esm/interface/action/action.js +6 -0
- package/dist/esm/interface/inst/interface-abstract.d.ts +12 -11
- package/dist/esm/interface/inst/interface-abstract.js +2 -1
- package/dist/esm/interface/inst/interface.d.ts +9 -5
- package/dist/esm/interface/inst/interface.js +3 -2
- package/dist/esm/interface/type/interface-type-abstract.d.ts +6 -1
- package/dist/esm/plugin/urlencoded.js +1 -1
- package/dist/esm/server/server.d.ts +2 -1
- package/dist/esm/server/server.js +1 -1
- package/package.json +55 -55
- package/dist/cjs/extend/wrap-json.cjs +0 -128
- package/dist/esm/chunk-N2AO545F.js +0 -7
- package/dist/esm/chunk-TFOAFRUL.js +0 -22
- package/dist/esm/extend/wrap-json.js +0 -15
|
@@ -62,8 +62,7 @@ async function main(tsconfigPath, interfaceFolderPath, outFilePath) {
|
|
|
62
62
|
const \u4EE3\u7801\u533A = [];
|
|
63
63
|
for (var i = 0; i < \u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6\u4EEC.length; i++) {
|
|
64
64
|
var \u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6 = \u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6\u4EEC[i];
|
|
65
|
-
if (\u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6 == null)
|
|
66
|
-
throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
|
|
65
|
+
if (\u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6 == null) throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
|
|
67
66
|
const filenameRelativeToApiFolder = import_node_path.default.relative(interfaceFolderPath, \u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6.fileName).replaceAll("\\", "/");
|
|
68
67
|
const importName = filenameRelativeToApiFolder.replaceAll("/", "_").replaceAll(".ts", "").replaceAll("./", "").replaceAll("-", "_");
|
|
69
68
|
const filenameRelativeToProjectRoot = import_node_path.default.relative(\u9879\u76EE\u6839\u8DEF\u5F84, \u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6.fileName).replaceAll("\\", "/").replaceAll(".ts", "");
|
|
@@ -67,8 +67,7 @@ async function main(tsconfigPath, interfaceFolderPath, outFilePath) {
|
|
|
67
67
|
const \u4EE3\u7801\u533A = [];
|
|
68
68
|
for (var i = 0; i < \u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6\u4EEC.length; i++) {
|
|
69
69
|
var \u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6 = \u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6\u4EEC[i];
|
|
70
|
-
if (\u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6 == null)
|
|
71
|
-
throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
|
|
70
|
+
if (\u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6 == null) throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
|
|
72
71
|
const filenameRelativeToApiFolder = import_node_path.default.relative(interfaceFolderPath, \u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6.fileName).replaceAll("\\", "/");
|
|
73
72
|
const importName = filenameRelativeToApiFolder.replaceAll("/", "_").replaceAll(".ts", "").replaceAll("./", "").replaceAll("-", "_");
|
|
74
73
|
const filenameRelativeToProjectRoot = import_node_path.default.relative(\u9879\u76EE\u6839\u8DEF\u5F84, \u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6.fileName).replaceAll("\\", "/").replaceAll(".ts", "");
|
|
@@ -70,8 +70,7 @@ async function main(tsconfigPath, interfaceFolderPath, outFilePath, filter) {
|
|
|
70
70
|
const testCode = [];
|
|
71
71
|
for (var index = 0; index < testSourceFilesFilter.length; index++) {
|
|
72
72
|
var testSourceFile = testSourceFilesFilter[index];
|
|
73
|
-
if (testSourceFile == null)
|
|
74
|
-
throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
|
|
73
|
+
if (testSourceFile == null) throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
|
|
75
74
|
const filenameRelativeToApiFolder = import_node_path.default.relative(interfaceFolderPath, testSourceFile.fileName).replaceAll("\\", "/");
|
|
76
75
|
const importName = filenameRelativeToApiFolder.replaceAll("/", "_").replaceAll(".test.ts", "").replaceAll("./", "").replaceAll("-", "_");
|
|
77
76
|
const filenameRelativeToProjectRoot = import_node_path.default.relative(projectRootPath, testSourceFile.fileName).replaceAll("\\", "/").replaceAll(".ts", "");
|
|
@@ -75,8 +75,7 @@ async function main(tsconfigPath, interfaceFolderPath, outFilePath, filter) {
|
|
|
75
75
|
const testCode = [];
|
|
76
76
|
for (var index = 0; index < testSourceFilesFilter.length; index++) {
|
|
77
77
|
var testSourceFile = testSourceFilesFilter[index];
|
|
78
|
-
if (testSourceFile == null)
|
|
79
|
-
throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
|
|
78
|
+
if (testSourceFile == null) throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
|
|
80
79
|
const filenameRelativeToApiFolder = import_node_path.default.relative(interfaceFolderPath, testSourceFile.fileName).replaceAll("\\", "/");
|
|
81
80
|
const importName = filenameRelativeToApiFolder.replaceAll("/", "_").replaceAll(".test.ts", "").replaceAll("./", "").replaceAll("-", "_");
|
|
82
81
|
const filenameRelativeToProjectRoot = import_node_path.default.relative(projectRootPath, testSourceFile.fileName).replaceAll("\\", "/").replaceAll(".ts", "");
|
|
@@ -111,8 +111,7 @@ async function main(tsconfigPath, apiFolderPath, outputPath) {
|
|
|
111
111
|
const result = [];
|
|
112
112
|
for (var index = 0; index < apiSourceFiles.length; index++) {
|
|
113
113
|
var apiSourceFile = apiSourceFiles[index];
|
|
114
|
-
if (apiSourceFile == null)
|
|
115
|
-
throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
|
|
114
|
+
if (apiSourceFile == null) throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
|
|
116
115
|
await log.info(`\u5904\u7406\uFF08${index + 1} / ${apiSourceFiles.length}\uFF09\uFF1A${apiSourceFile.fileName}`);
|
|
117
116
|
const apiCalcSourceFile = apiTypeCalcFiles[index]?.sourceFile;
|
|
118
117
|
if (apiCalcSourceFile === void 0) {
|
|
@@ -116,8 +116,7 @@ async function main(tsconfigPath, apiFolderPath, outputPath) {
|
|
|
116
116
|
const result = [];
|
|
117
117
|
for (var index = 0; index < apiSourceFiles.length; index++) {
|
|
118
118
|
var apiSourceFile = apiSourceFiles[index];
|
|
119
|
-
if (apiSourceFile == null)
|
|
120
|
-
throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
|
|
119
|
+
if (apiSourceFile == null) throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
|
|
121
120
|
await log.info(`\u5904\u7406\uFF08${index + 1} / ${apiSourceFiles.length}\uFF09\uFF1A${apiSourceFile.fileName}`);
|
|
122
121
|
const apiCalcSourceFile = apiTypeCalcFiles[index]?.sourceFile;
|
|
123
122
|
if (apiCalcSourceFile === void 0) {
|
|
@@ -62,8 +62,7 @@ async function main(tsconfigPath, interfaceFolderPath, outFilePath) {
|
|
|
62
62
|
const \u4EE3\u7801\u533A = [];
|
|
63
63
|
for (var i = 0; i < \u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6\u4EEC.length; i++) {
|
|
64
64
|
var \u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6 = \u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6\u4EEC[i];
|
|
65
|
-
if (\u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6 == null)
|
|
66
|
-
throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
|
|
65
|
+
if (\u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6 == null) throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
|
|
67
66
|
const filenameRelativeToApiFolder = import_node_path.default.relative(interfaceFolderPath, \u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6.fileName).replaceAll("\\", "/");
|
|
68
67
|
const importName = filenameRelativeToApiFolder.replaceAll("/", "_").replaceAll(".ts", "").replaceAll("./", "").replaceAll("-", "_");
|
|
69
68
|
const filenameRelativeToProjectRoot = import_node_path.default.relative(\u9879\u76EE\u6839\u8DEF\u5F84, \u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6.fileName).replaceAll("\\", "/").replaceAll(".ts", "");
|
|
@@ -67,8 +67,7 @@ async function main(tsconfigPath, interfaceFolderPath, outFilePath) {
|
|
|
67
67
|
const \u4EE3\u7801\u533A = [];
|
|
68
68
|
for (var i = 0; i < \u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6\u4EEC.length; i++) {
|
|
69
69
|
var \u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6 = \u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6\u4EEC[i];
|
|
70
|
-
if (\u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6 == null)
|
|
71
|
-
throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
|
|
70
|
+
if (\u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6 == null) throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
|
|
72
71
|
const filenameRelativeToApiFolder = import_node_path.default.relative(interfaceFolderPath, \u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6.fileName).replaceAll("\\", "/");
|
|
73
72
|
const importName = filenameRelativeToApiFolder.replaceAll("/", "_").replaceAll(".ts", "").replaceAll("./", "").replaceAll("-", "_");
|
|
74
73
|
const filenameRelativeToProjectRoot = import_node_path.default.relative(\u9879\u76EE\u6839\u8DEF\u5F84, \u63A5\u53E3\u5B9E\u73B0\u6587\u4EF6.fileName).replaceAll("\\", "/").replaceAll(".ts", "");
|
|
@@ -70,8 +70,7 @@ async function main(tsconfigPath, interfaceFolderPath, outFilePath, filter) {
|
|
|
70
70
|
const testCode = [];
|
|
71
71
|
for (var index = 0; index < testSourceFilesFilter.length; index++) {
|
|
72
72
|
var testSourceFile = testSourceFilesFilter[index];
|
|
73
|
-
if (testSourceFile == null)
|
|
74
|
-
throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
|
|
73
|
+
if (testSourceFile == null) throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
|
|
75
74
|
const filenameRelativeToApiFolder = import_node_path.default.relative(interfaceFolderPath, testSourceFile.fileName).replaceAll("\\", "/");
|
|
76
75
|
const importName = filenameRelativeToApiFolder.replaceAll("/", "_").replaceAll(".test.ts", "").replaceAll("./", "").replaceAll("-", "_");
|
|
77
76
|
const filenameRelativeToProjectRoot = import_node_path.default.relative(projectRootPath, testSourceFile.fileName).replaceAll("\\", "/").replaceAll(".ts", "");
|
|
@@ -75,8 +75,7 @@ async function main(tsconfigPath, interfaceFolderPath, outFilePath, filter) {
|
|
|
75
75
|
const testCode = [];
|
|
76
76
|
for (var index = 0; index < testSourceFilesFilter.length; index++) {
|
|
77
77
|
var testSourceFile = testSourceFilesFilter[index];
|
|
78
|
-
if (testSourceFile == null)
|
|
79
|
-
throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
|
|
78
|
+
if (testSourceFile == null) throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
|
|
80
79
|
const filenameRelativeToApiFolder = import_node_path.default.relative(interfaceFolderPath, testSourceFile.fileName).replaceAll("\\", "/");
|
|
81
80
|
const importName = filenameRelativeToApiFolder.replaceAll("/", "_").replaceAll(".test.ts", "").replaceAll("./", "").replaceAll("-", "_");
|
|
82
81
|
const filenameRelativeToProjectRoot = import_node_path.default.relative(projectRootPath, testSourceFile.fileName).replaceAll("\\", "/").replaceAll(".ts", "");
|
|
@@ -111,8 +111,7 @@ async function main(tsconfigPath, apiFolderPath, outputPath) {
|
|
|
111
111
|
const result = [];
|
|
112
112
|
for (var index = 0; index < apiSourceFiles.length; index++) {
|
|
113
113
|
var apiSourceFile = apiSourceFiles[index];
|
|
114
|
-
if (apiSourceFile == null)
|
|
115
|
-
throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
|
|
114
|
+
if (apiSourceFile == null) throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
|
|
116
115
|
await log.info(`\u5904\u7406\uFF08${index + 1} / ${apiSourceFiles.length}\uFF09\uFF1A${apiSourceFile.fileName}`);
|
|
117
116
|
const apiCalcSourceFile = apiTypeCalcFiles[index]?.sourceFile;
|
|
118
117
|
if (apiCalcSourceFile === void 0) {
|
|
@@ -116,8 +116,7 @@ async function main(tsconfigPath, apiFolderPath, outputPath) {
|
|
|
116
116
|
const result = [];
|
|
117
117
|
for (var index = 0; index < apiSourceFiles.length; index++) {
|
|
118
118
|
var apiSourceFile = apiSourceFiles[index];
|
|
119
|
-
if (apiSourceFile == null)
|
|
120
|
-
throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
|
|
119
|
+
if (apiSourceFile == null) throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
|
|
121
120
|
await log.info(`\u5904\u7406\uFF08${index + 1} / ${apiSourceFiles.length}\uFF09\uFF1A${apiSourceFile.fileName}`);
|
|
122
121
|
const apiCalcSourceFile = apiTypeCalcFiles[index]?.sourceFile;
|
|
123
122
|
if (apiCalcSourceFile === void 0) {
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/extend/api-json-base.ts
|
|
21
|
+
var api_json_base_exports = {};
|
|
22
|
+
__export(api_json_base_exports, {
|
|
23
|
+
JSON\u63A5\u53E3\u57FA\u7C7B: () => JSON\u63A5\u53E3\u57FA\u7C7B
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(api_json_base_exports);
|
|
26
|
+
|
|
27
|
+
// src/interface/action/action.ts
|
|
28
|
+
var import_ts_fp_data = require("@lsby/ts-fp-data");
|
|
29
|
+
var \u4E1A\u52A1\u884C\u4E3A = class _\u4E1A\u52A1\u884C\u4E3A {
|
|
30
|
+
// ================================= 静态 =================================
|
|
31
|
+
static \u901A\u8FC7\u5B9E\u73B0\u6784\u9020(\u5B9E\u73B0, \u4E1A\u52A1\u884C\u4E3A\u540D\u79F0) {
|
|
32
|
+
return new class extends _\u4E1A\u52A1\u884C\u4E3A {
|
|
33
|
+
async \u4E1A\u52A1\u884C\u4E3A\u5B9E\u73B0(\u53C2\u6570) {
|
|
34
|
+
return \u5B9E\u73B0(\u53C2\u6570);
|
|
35
|
+
}
|
|
36
|
+
}(\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0);
|
|
37
|
+
}
|
|
38
|
+
static \u6D41\u5F0F\u7EC4\u5408(a, b) {
|
|
39
|
+
return a.\u6D41\u5F0F\u7EC4\u5408(b);
|
|
40
|
+
}
|
|
41
|
+
static \u6DF7\u5408\u7EC4\u5408(a, b) {
|
|
42
|
+
return a.\u6DF7\u5408\u7EC4\u5408(b);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* 对多个项混合组合
|
|
46
|
+
*/
|
|
47
|
+
static \u6DF7\u5408\u7EC4\u5408\u591A\u9879(arr) {
|
|
48
|
+
return arr.reduce((s, a) => s.\u6DF7\u5408\u7EC4\u5408(a));
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* 同时运行多个模型, 并提供一个函数处理它们的结果
|
|
52
|
+
* 如果其中任何一个模型发生错误, 则最终模型输出第一个错误
|
|
53
|
+
* 处理函数的类型是: 所有模型的结果合并 => 泛型A
|
|
54
|
+
* 新模型的类型是:
|
|
55
|
+
* - 参数: 所有模型的参数合并
|
|
56
|
+
* - 错误: 所有模型的错误合并
|
|
57
|
+
* - 返回值: 泛型A
|
|
58
|
+
*/
|
|
59
|
+
static \u5E76\u884C\u7EC4\u5408(arr, f) {
|
|
60
|
+
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(
|
|
61
|
+
async (\u53C2\u6570) => {
|
|
62
|
+
var \u6240\u6709\u7ED3\u679C = await Promise.all(arr.map((a) => a.\u8FD0\u884C\u4E1A\u52A1\u884C\u4E3A(\u53C2\u6570)));
|
|
63
|
+
var \u9519\u8BEF = \u6240\u6709\u7ED3\u679C.filter((a) => a.isLeft())[0];
|
|
64
|
+
if (\u9519\u8BEF) return \u9519\u8BEF;
|
|
65
|
+
var \u6B63\u786E\u7ED3\u679C\u5408\u5E76 = \u6240\u6709\u7ED3\u679C.map((a) => a.assertRight().getRight()).reduce((s, a) => Object.assign(s, a), {});
|
|
66
|
+
return new import_ts_fp_data.Right(await f(\u6B63\u786E\u7ED3\u679C\u5408\u5E76));
|
|
67
|
+
},
|
|
68
|
+
`\u5E76\u884C\u7EC4\u5408(${arr.map((a) => a.\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0).join(", ")})`
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
// ================================= 私有 =================================
|
|
72
|
+
\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0;
|
|
73
|
+
constructor(\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0) {
|
|
74
|
+
if (!\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0) this.\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0 = this.constructor.name || "<\u533F\u540D>";
|
|
75
|
+
else this.\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0 = \u4E1A\u52A1\u884C\u4E3A\u540D\u79F0;
|
|
76
|
+
}
|
|
77
|
+
// ================================= 设置 =================================
|
|
78
|
+
\u8BBE\u7F6E\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0(\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0) {
|
|
79
|
+
this.\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0 = \u4E1A\u52A1\u884C\u4E3A\u540D\u79F0;
|
|
80
|
+
return this;
|
|
81
|
+
}
|
|
82
|
+
\u8BBE\u7F6E\u53C2\u6570(\u8BBE\u7F6E\u53C2\u6570) {
|
|
83
|
+
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async (\u53C2\u6570) => {
|
|
84
|
+
return await this.\u8FD0\u884C\u4E1A\u52A1\u884C\u4E3A({ ...\u8BBE\u7F6E\u53C2\u6570, ...\u53C2\u6570 });
|
|
85
|
+
}, this.\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0);
|
|
86
|
+
}
|
|
87
|
+
// ================================= 运行 =================================
|
|
88
|
+
async \u8FD0\u884C\u4E1A\u52A1\u884C\u4E3A(\u53C2\u6570) {
|
|
89
|
+
try {
|
|
90
|
+
return await this.\u4E1A\u52A1\u884C\u4E3A\u5B9E\u73B0(\u53C2\u6570);
|
|
91
|
+
} catch (e) {
|
|
92
|
+
throw e;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// ================================= 组合 =================================
|
|
96
|
+
/**
|
|
97
|
+
* 将两个模型串接, 得到一个新模型, 新模型的类型是:
|
|
98
|
+
* - 参数: a模型的参数
|
|
99
|
+
* - 错误: a模型的错误+b模型的错误
|
|
100
|
+
* - 返回值: b模型的返回值
|
|
101
|
+
*/
|
|
102
|
+
\u6D41\u5F0F\u7EC4\u5408(b) {
|
|
103
|
+
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async (\u53C2\u6570) => {
|
|
104
|
+
const \u6211\u7684\u7ED3\u679C = await this.\u8FD0\u884C\u4E1A\u52A1\u884C\u4E3A(\u53C2\u6570);
|
|
105
|
+
if (\u6211\u7684\u7ED3\u679C.isLeft()) return new import_ts_fp_data.Left(\u6211\u7684\u7ED3\u679C.assertLeft().getLeft());
|
|
106
|
+
return b.\u8FD0\u884C\u4E1A\u52A1\u884C\u4E3A(\u6211\u7684\u7ED3\u679C.assertRight().getRight());
|
|
107
|
+
}, `\u6D41\u5F0F\u7EC4\u5408(${this.\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0}, ${b.\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0})`);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* 将两个模型串接, 得到一个新的模型
|
|
111
|
+
* 相比流式组合, 本函数不要求串联位置参数匹配, 缺少的参数将在调用时补全
|
|
112
|
+
* 新模型的类型是:
|
|
113
|
+
* - 参数: a模型的参数+(b模型的参数-a模型的返回值)
|
|
114
|
+
* - 错误: a模型的错误+b模型的错误
|
|
115
|
+
* - 返回值: a模型的返回值+b模型的返回值
|
|
116
|
+
*/
|
|
117
|
+
\u6DF7\u5408\u7EC4\u5408(b) {
|
|
118
|
+
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async (\u53C2\u6570) => {
|
|
119
|
+
const \u6211\u7684\u7ED3\u679C = await this.\u8FD0\u884C\u4E1A\u52A1\u884C\u4E3A(\u53C2\u6570);
|
|
120
|
+
if (\u6211\u7684\u7ED3\u679C.isLeft()) return new import_ts_fp_data.Left(\u6211\u7684\u7ED3\u679C.assertLeft().getLeft());
|
|
121
|
+
var \u5BF9\u65B9\u7ED3\u679C = await b.\u8FD0\u884C\u4E1A\u52A1\u884C\u4E3A({ ...\u53C2\u6570, ...\u6211\u7684\u7ED3\u679C.assertRight().getRight() });
|
|
122
|
+
return \u5BF9\u65B9\u7ED3\u679C.map((a) => Object.assign(a, \u6211\u7684\u7ED3\u679C.assertRight().getRight()));
|
|
123
|
+
}, `\u6DF7\u5408\u7EC4\u5408(${this.\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0}, ${b.\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0})`);
|
|
124
|
+
}
|
|
125
|
+
// ================================= 映射 =================================
|
|
126
|
+
\u6620\u5C04\u7ED3\u679C(f) {
|
|
127
|
+
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async (\u53C2\u6570) => {
|
|
128
|
+
const \u6211\u7684\u7ED3\u679C = await this.\u8FD0\u884C\u4E1A\u52A1\u884C\u4E3A(\u53C2\u6570);
|
|
129
|
+
if (\u6211\u7684\u7ED3\u679C.isLeft()) return new import_ts_fp_data.Left(\u6211\u7684\u7ED3\u679C.assertLeft().getLeft());
|
|
130
|
+
return import_ts_fp_data.Either.pure(f(\u6211\u7684\u7ED3\u679C.assertRight().getRight()));
|
|
131
|
+
}, this.\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0);
|
|
132
|
+
}
|
|
133
|
+
\u6620\u5C04\u9519\u8BEF(f) {
|
|
134
|
+
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async (\u53C2\u6570) => {
|
|
135
|
+
const \u6211\u7684\u7ED3\u679C = await this.\u8FD0\u884C\u4E1A\u52A1\u884C\u4E3A(\u53C2\u6570);
|
|
136
|
+
if (\u6211\u7684\u7ED3\u679C.isLeft()) return new import_ts_fp_data.Left(f(\u6211\u7684\u7ED3\u679C.assertLeft().getLeft()));
|
|
137
|
+
return import_ts_fp_data.Either.pure(\u6211\u7684\u7ED3\u679C.assertRight().getRight());
|
|
138
|
+
}, this.\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0);
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
// src/interface/inst/interface-abstract.ts
|
|
143
|
+
var API\u63A5\u53E3\u57FA\u7C7B = class extends \u4E1A\u52A1\u884C\u4E3A {
|
|
144
|
+
async API\u5B9E\u73B0(\u53C2\u6570) {
|
|
145
|
+
var c = await this.\u4E1A\u52A1\u884C\u4E3A\u5B9E\u73B0(\u53C2\u6570);
|
|
146
|
+
if (c.isLeft()) return this.\u5305\u88C5\u9519\u8BEF\u7ED3\u679C(c.assertLeft().getLeft());
|
|
147
|
+
return this.\u5305\u88C5\u6B63\u786E\u7ED3\u679C(c.assertRight().getRight());
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
// src/global/global.ts
|
|
152
|
+
var import_ts_global = require("@lsby/ts-global");
|
|
153
|
+
var import_ts_log = require("@lsby/ts-log");
|
|
154
|
+
var Global = new import_ts_global.GlobalService([
|
|
155
|
+
new import_ts_global.GlobalAsyncItem("log", async () => {
|
|
156
|
+
return new import_ts_log.Log("@lsby:net-core");
|
|
157
|
+
})
|
|
158
|
+
]);
|
|
159
|
+
|
|
160
|
+
// src/result/result.ts
|
|
161
|
+
var \u7ED3\u679C = class {
|
|
162
|
+
};
|
|
163
|
+
var \u6B63\u786E\u7ED3\u679C = class extends \u7ED3\u679C {
|
|
164
|
+
\u6B63\u786E\u7ED3\u679C\u70D9\u5370 = true;
|
|
165
|
+
};
|
|
166
|
+
var \u6B63\u786EJSON\u7ED3\u679C = class extends \u6B63\u786E\u7ED3\u679C {
|
|
167
|
+
constructor(data) {
|
|
168
|
+
super();
|
|
169
|
+
this.data = data;
|
|
170
|
+
}
|
|
171
|
+
log = Global.getItem("log");
|
|
172
|
+
async run(req, res) {
|
|
173
|
+
var log = (await this.log).extend("\u6B63\u786EJSON\u7ED3\u679C");
|
|
174
|
+
await log.debug("\u8FD4\u56DE\u6570\u636E: %o", this.data);
|
|
175
|
+
res.send(this.data);
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
var \u9519\u8BEF\u7ED3\u679C = class extends \u7ED3\u679C {
|
|
179
|
+
\u9519\u8BEF\u7ED3\u679C\u70D9\u5370 = true;
|
|
180
|
+
};
|
|
181
|
+
var \u9519\u8BEFJSON\u7ED3\u679C = class extends \u9519\u8BEF\u7ED3\u679C {
|
|
182
|
+
constructor(data) {
|
|
183
|
+
super();
|
|
184
|
+
this.data = data;
|
|
185
|
+
}
|
|
186
|
+
log = Global.getItem("log");
|
|
187
|
+
async run(req, res) {
|
|
188
|
+
var log = (await this.log).extend("\u9519\u8BEFJSON\u7ED3\u679C");
|
|
189
|
+
await log.debug("\u8FD4\u56DE\u6570\u636E: %o", this.data);
|
|
190
|
+
res.send(this.data);
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
// src/extend/api-json-base.ts
|
|
195
|
+
var JSON\u63A5\u53E3\u57FA\u7C7B = class extends API\u63A5\u53E3\u57FA\u7C7B {
|
|
196
|
+
\u5305\u88C5\u6B63\u786E\u7ED3\u679C(\u6570\u636E) {
|
|
197
|
+
return new \u6B63\u786EJSON\u7ED3\u679C(\u6570\u636E);
|
|
198
|
+
}
|
|
199
|
+
\u5305\u88C5\u9519\u8BEF\u7ED3\u679C(\u6570\u636E) {
|
|
200
|
+
return new \u9519\u8BEFJSON\u7ED3\u679C(\u6570\u636E);
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
204
|
+
0 && (module.exports = {
|
|
205
|
+
JSON\u63A5\u53E3\u57FA\u7C7B
|
|
206
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { API接口基类 as API____ } from '../interface/inst/interface-abstract.cjs';
|
|
3
|
+
import { 任意接口类型 as ______, 接口类型正确结果 as ________, 接口类型错误结果 as ________$1 } from '../interface/type/interface-type-abstract.cjs';
|
|
4
|
+
import { 正确结果 as ____, 错误结果 as ____$1 } from '../result/result.cjs';
|
|
5
|
+
import '@lsby/ts-fp-data';
|
|
6
|
+
import '../interface/action/action.cjs';
|
|
7
|
+
import '../interface/plug.cjs';
|
|
8
|
+
import 'express';
|
|
9
|
+
|
|
10
|
+
declare abstract class JSON接口基类<接口类型描述 extends ______> extends API____<接口类型描述> {
|
|
11
|
+
protected 包装正确结果(数据: z.infer<________<接口类型描述>>): ____<z.infer<________<接口类型描述>>>;
|
|
12
|
+
protected 包装错误结果(数据: z.infer<________$1<接口类型描述>>): ____$1<z.infer<________$1<接口类型描述>>>;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { JSON接口基类 };
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/extend/api-json-wrap.ts
|
|
21
|
+
var api_json_wrap_exports = {};
|
|
22
|
+
__export(api_json_wrap_exports, {
|
|
23
|
+
JSON\u63A5\u53E3\u5305\u88C5\u57FA\u7C7B: () => JSON\u63A5\u53E3\u5305\u88C5\u57FA\u7C7B,
|
|
24
|
+
\u5305\u88C5\u7684\u63A5\u53E3\u7C7B\u578B: () => \u5305\u88C5\u7684\u63A5\u53E3\u7C7B\u578B,
|
|
25
|
+
\u5305\u88C5\u7684\u63A5\u53E3\u7C7B\u578B\u62BD\u8C61\u7C7B: () => \u5305\u88C5\u7684\u63A5\u53E3\u7C7B\u578B\u62BD\u8C61\u7C7B
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(api_json_wrap_exports);
|
|
28
|
+
var import_zod = require("zod");
|
|
29
|
+
var import_ts_fp_data2 = require("@lsby/ts-fp-data");
|
|
30
|
+
|
|
31
|
+
// src/interface/type/interface-type-abstract.ts
|
|
32
|
+
var \u63A5\u53E3\u7C7B\u578B\u62BD\u8C61\u7C7B = class {
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
// src/interface/action/action.ts
|
|
36
|
+
var import_ts_fp_data = require("@lsby/ts-fp-data");
|
|
37
|
+
var \u4E1A\u52A1\u884C\u4E3A = class _\u4E1A\u52A1\u884C\u4E3A {
|
|
38
|
+
// ================================= 静态 =================================
|
|
39
|
+
static \u901A\u8FC7\u5B9E\u73B0\u6784\u9020(\u5B9E\u73B0, \u4E1A\u52A1\u884C\u4E3A\u540D\u79F0) {
|
|
40
|
+
return new class extends _\u4E1A\u52A1\u884C\u4E3A {
|
|
41
|
+
async \u4E1A\u52A1\u884C\u4E3A\u5B9E\u73B0(\u53C2\u6570) {
|
|
42
|
+
return \u5B9E\u73B0(\u53C2\u6570);
|
|
43
|
+
}
|
|
44
|
+
}(\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0);
|
|
45
|
+
}
|
|
46
|
+
static \u6D41\u5F0F\u7EC4\u5408(a, b) {
|
|
47
|
+
return a.\u6D41\u5F0F\u7EC4\u5408(b);
|
|
48
|
+
}
|
|
49
|
+
static \u6DF7\u5408\u7EC4\u5408(a, b) {
|
|
50
|
+
return a.\u6DF7\u5408\u7EC4\u5408(b);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* 对多个项混合组合
|
|
54
|
+
*/
|
|
55
|
+
static \u6DF7\u5408\u7EC4\u5408\u591A\u9879(arr) {
|
|
56
|
+
return arr.reduce((s, a) => s.\u6DF7\u5408\u7EC4\u5408(a));
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* 同时运行多个模型, 并提供一个函数处理它们的结果
|
|
60
|
+
* 如果其中任何一个模型发生错误, 则最终模型输出第一个错误
|
|
61
|
+
* 处理函数的类型是: 所有模型的结果合并 => 泛型A
|
|
62
|
+
* 新模型的类型是:
|
|
63
|
+
* - 参数: 所有模型的参数合并
|
|
64
|
+
* - 错误: 所有模型的错误合并
|
|
65
|
+
* - 返回值: 泛型A
|
|
66
|
+
*/
|
|
67
|
+
static \u5E76\u884C\u7EC4\u5408(arr, f) {
|
|
68
|
+
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(
|
|
69
|
+
async (\u53C2\u6570) => {
|
|
70
|
+
var \u6240\u6709\u7ED3\u679C = await Promise.all(arr.map((a) => a.\u8FD0\u884C\u4E1A\u52A1\u884C\u4E3A(\u53C2\u6570)));
|
|
71
|
+
var \u9519\u8BEF = \u6240\u6709\u7ED3\u679C.filter((a) => a.isLeft())[0];
|
|
72
|
+
if (\u9519\u8BEF) return \u9519\u8BEF;
|
|
73
|
+
var \u6B63\u786E\u7ED3\u679C\u5408\u5E76 = \u6240\u6709\u7ED3\u679C.map((a) => a.assertRight().getRight()).reduce((s, a) => Object.assign(s, a), {});
|
|
74
|
+
return new import_ts_fp_data.Right(await f(\u6B63\u786E\u7ED3\u679C\u5408\u5E76));
|
|
75
|
+
},
|
|
76
|
+
`\u5E76\u884C\u7EC4\u5408(${arr.map((a) => a.\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0).join(", ")})`
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
// ================================= 私有 =================================
|
|
80
|
+
\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0;
|
|
81
|
+
constructor(\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0) {
|
|
82
|
+
if (!\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0) this.\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0 = this.constructor.name || "<\u533F\u540D>";
|
|
83
|
+
else this.\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0 = \u4E1A\u52A1\u884C\u4E3A\u540D\u79F0;
|
|
84
|
+
}
|
|
85
|
+
// ================================= 设置 =================================
|
|
86
|
+
\u8BBE\u7F6E\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0(\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0) {
|
|
87
|
+
this.\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0 = \u4E1A\u52A1\u884C\u4E3A\u540D\u79F0;
|
|
88
|
+
return this;
|
|
89
|
+
}
|
|
90
|
+
\u8BBE\u7F6E\u53C2\u6570(\u8BBE\u7F6E\u53C2\u6570) {
|
|
91
|
+
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async (\u53C2\u6570) => {
|
|
92
|
+
return await this.\u8FD0\u884C\u4E1A\u52A1\u884C\u4E3A({ ...\u8BBE\u7F6E\u53C2\u6570, ...\u53C2\u6570 });
|
|
93
|
+
}, this.\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0);
|
|
94
|
+
}
|
|
95
|
+
// ================================= 运行 =================================
|
|
96
|
+
async \u8FD0\u884C\u4E1A\u52A1\u884C\u4E3A(\u53C2\u6570) {
|
|
97
|
+
try {
|
|
98
|
+
return await this.\u4E1A\u52A1\u884C\u4E3A\u5B9E\u73B0(\u53C2\u6570);
|
|
99
|
+
} catch (e) {
|
|
100
|
+
throw e;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// ================================= 组合 =================================
|
|
104
|
+
/**
|
|
105
|
+
* 将两个模型串接, 得到一个新模型, 新模型的类型是:
|
|
106
|
+
* - 参数: a模型的参数
|
|
107
|
+
* - 错误: a模型的错误+b模型的错误
|
|
108
|
+
* - 返回值: b模型的返回值
|
|
109
|
+
*/
|
|
110
|
+
\u6D41\u5F0F\u7EC4\u5408(b) {
|
|
111
|
+
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async (\u53C2\u6570) => {
|
|
112
|
+
const \u6211\u7684\u7ED3\u679C = await this.\u8FD0\u884C\u4E1A\u52A1\u884C\u4E3A(\u53C2\u6570);
|
|
113
|
+
if (\u6211\u7684\u7ED3\u679C.isLeft()) return new import_ts_fp_data.Left(\u6211\u7684\u7ED3\u679C.assertLeft().getLeft());
|
|
114
|
+
return b.\u8FD0\u884C\u4E1A\u52A1\u884C\u4E3A(\u6211\u7684\u7ED3\u679C.assertRight().getRight());
|
|
115
|
+
}, `\u6D41\u5F0F\u7EC4\u5408(${this.\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0}, ${b.\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0})`);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* 将两个模型串接, 得到一个新的模型
|
|
119
|
+
* 相比流式组合, 本函数不要求串联位置参数匹配, 缺少的参数将在调用时补全
|
|
120
|
+
* 新模型的类型是:
|
|
121
|
+
* - 参数: a模型的参数+(b模型的参数-a模型的返回值)
|
|
122
|
+
* - 错误: a模型的错误+b模型的错误
|
|
123
|
+
* - 返回值: a模型的返回值+b模型的返回值
|
|
124
|
+
*/
|
|
125
|
+
\u6DF7\u5408\u7EC4\u5408(b) {
|
|
126
|
+
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async (\u53C2\u6570) => {
|
|
127
|
+
const \u6211\u7684\u7ED3\u679C = await this.\u8FD0\u884C\u4E1A\u52A1\u884C\u4E3A(\u53C2\u6570);
|
|
128
|
+
if (\u6211\u7684\u7ED3\u679C.isLeft()) return new import_ts_fp_data.Left(\u6211\u7684\u7ED3\u679C.assertLeft().getLeft());
|
|
129
|
+
var \u5BF9\u65B9\u7ED3\u679C = await b.\u8FD0\u884C\u4E1A\u52A1\u884C\u4E3A({ ...\u53C2\u6570, ...\u6211\u7684\u7ED3\u679C.assertRight().getRight() });
|
|
130
|
+
return \u5BF9\u65B9\u7ED3\u679C.map((a) => Object.assign(a, \u6211\u7684\u7ED3\u679C.assertRight().getRight()));
|
|
131
|
+
}, `\u6DF7\u5408\u7EC4\u5408(${this.\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0}, ${b.\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0})`);
|
|
132
|
+
}
|
|
133
|
+
// ================================= 映射 =================================
|
|
134
|
+
\u6620\u5C04\u7ED3\u679C(f) {
|
|
135
|
+
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async (\u53C2\u6570) => {
|
|
136
|
+
const \u6211\u7684\u7ED3\u679C = await this.\u8FD0\u884C\u4E1A\u52A1\u884C\u4E3A(\u53C2\u6570);
|
|
137
|
+
if (\u6211\u7684\u7ED3\u679C.isLeft()) return new import_ts_fp_data.Left(\u6211\u7684\u7ED3\u679C.assertLeft().getLeft());
|
|
138
|
+
return import_ts_fp_data.Either.pure(f(\u6211\u7684\u7ED3\u679C.assertRight().getRight()));
|
|
139
|
+
}, this.\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0);
|
|
140
|
+
}
|
|
141
|
+
\u6620\u5C04\u9519\u8BEF(f) {
|
|
142
|
+
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async (\u53C2\u6570) => {
|
|
143
|
+
const \u6211\u7684\u7ED3\u679C = await this.\u8FD0\u884C\u4E1A\u52A1\u884C\u4E3A(\u53C2\u6570);
|
|
144
|
+
if (\u6211\u7684\u7ED3\u679C.isLeft()) return new import_ts_fp_data.Left(f(\u6211\u7684\u7ED3\u679C.assertLeft().getLeft()));
|
|
145
|
+
return import_ts_fp_data.Either.pure(\u6211\u7684\u7ED3\u679C.assertRight().getRight());
|
|
146
|
+
}, this.\u4E1A\u52A1\u884C\u4E3A\u540D\u79F0);
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
// src/interface/inst/interface-abstract.ts
|
|
151
|
+
var API\u63A5\u53E3\u57FA\u7C7B = class extends \u4E1A\u52A1\u884C\u4E3A {
|
|
152
|
+
async API\u5B9E\u73B0(\u53C2\u6570) {
|
|
153
|
+
var c = await this.\u4E1A\u52A1\u884C\u4E3A\u5B9E\u73B0(\u53C2\u6570);
|
|
154
|
+
if (c.isLeft()) return this.\u5305\u88C5\u9519\u8BEF\u7ED3\u679C(c.assertLeft().getLeft());
|
|
155
|
+
return this.\u5305\u88C5\u6B63\u786E\u7ED3\u679C(c.assertRight().getRight());
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
// src/global/global.ts
|
|
160
|
+
var import_ts_global = require("@lsby/ts-global");
|
|
161
|
+
var import_ts_log = require("@lsby/ts-log");
|
|
162
|
+
var Global = new import_ts_global.GlobalService([
|
|
163
|
+
new import_ts_global.GlobalAsyncItem("log", async () => {
|
|
164
|
+
return new import_ts_log.Log("@lsby:net-core");
|
|
165
|
+
})
|
|
166
|
+
]);
|
|
167
|
+
|
|
168
|
+
// src/result/result.ts
|
|
169
|
+
var \u7ED3\u679C = class {
|
|
170
|
+
};
|
|
171
|
+
var \u6B63\u786E\u7ED3\u679C = class extends \u7ED3\u679C {
|
|
172
|
+
\u6B63\u786E\u7ED3\u679C\u70D9\u5370 = true;
|
|
173
|
+
};
|
|
174
|
+
var \u6B63\u786EJSON\u7ED3\u679C = class extends \u6B63\u786E\u7ED3\u679C {
|
|
175
|
+
constructor(data) {
|
|
176
|
+
super();
|
|
177
|
+
this.data = data;
|
|
178
|
+
}
|
|
179
|
+
log = Global.getItem("log");
|
|
180
|
+
async run(req, res) {
|
|
181
|
+
var log = (await this.log).extend("\u6B63\u786EJSON\u7ED3\u679C");
|
|
182
|
+
await log.debug("\u8FD4\u56DE\u6570\u636E: %o", this.data);
|
|
183
|
+
res.send(this.data);
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
var \u9519\u8BEF\u7ED3\u679C = class extends \u7ED3\u679C {
|
|
187
|
+
\u9519\u8BEF\u7ED3\u679C\u70D9\u5370 = true;
|
|
188
|
+
};
|
|
189
|
+
var \u9519\u8BEFJSON\u7ED3\u679C = class extends \u9519\u8BEF\u7ED3\u679C {
|
|
190
|
+
constructor(data) {
|
|
191
|
+
super();
|
|
192
|
+
this.data = data;
|
|
193
|
+
}
|
|
194
|
+
log = Global.getItem("log");
|
|
195
|
+
async run(req, res) {
|
|
196
|
+
var log = (await this.log).extend("\u9519\u8BEFJSON\u7ED3\u679C");
|
|
197
|
+
await log.debug("\u8FD4\u56DE\u6570\u636E: %o", this.data);
|
|
198
|
+
res.send(this.data);
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
// src/extend/api-json-base.ts
|
|
203
|
+
var JSON\u63A5\u53E3\u57FA\u7C7B = class extends API\u63A5\u53E3\u57FA\u7C7B {
|
|
204
|
+
\u5305\u88C5\u6B63\u786E\u7ED3\u679C(\u6570\u636E) {
|
|
205
|
+
return new \u6B63\u786EJSON\u7ED3\u679C(\u6570\u636E);
|
|
206
|
+
}
|
|
207
|
+
\u5305\u88C5\u9519\u8BEF\u7ED3\u679C(\u6570\u636E) {
|
|
208
|
+
return new \u9519\u8BEFJSON\u7ED3\u679C(\u6570\u636E);
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
// src/extend/api-json-wrap.ts
|
|
213
|
+
var \u5305\u88C5\u7684\u63A5\u53E3\u7C7B\u578B\u62BD\u8C61\u7C7B = class extends \u63A5\u53E3\u7C7B\u578B\u62BD\u8C61\u7C7B {
|
|
214
|
+
};
|
|
215
|
+
var \u5305\u88C5\u7684\u63A5\u53E3\u7C7B\u578B = class extends \u5305\u88C5\u7684\u63A5\u53E3\u7C7B\u578B\u62BD\u8C61\u7C7B {
|
|
216
|
+
constructor(path, method, \u63D2\u4EF6\u4EEC, \u6B63\u786E\u8FD4\u56DE\u7C7B\u578B, \u9519\u8BEF\u8FD4\u56DE\u7C7B\u578B) {
|
|
217
|
+
super();
|
|
218
|
+
this.path = path;
|
|
219
|
+
this.method = method;
|
|
220
|
+
this.\u63D2\u4EF6\u4EEC = \u63D2\u4EF6\u4EEC;
|
|
221
|
+
this.\u6B63\u786E\u8FD4\u56DE\u7C7B\u578B = \u6B63\u786E\u8FD4\u56DE\u7C7B\u578B;
|
|
222
|
+
this.\u9519\u8BEF\u8FD4\u56DE\u7C7B\u578B = \u9519\u8BEF\u8FD4\u56DE\u7C7B\u578B;
|
|
223
|
+
}
|
|
224
|
+
\u83B7\u5F97\u8DEF\u5F84() {
|
|
225
|
+
return this.path;
|
|
226
|
+
}
|
|
227
|
+
\u83B7\u5F97\u65B9\u6CD5() {
|
|
228
|
+
return this.method;
|
|
229
|
+
}
|
|
230
|
+
\u83B7\u5F97\u63D2\u4EF6\u4EEC() {
|
|
231
|
+
return this.\u63D2\u4EF6\u4EEC;
|
|
232
|
+
}
|
|
233
|
+
\u83B7\u5F97\u6B63\u786E\u7ED3\u679C\u7C7B\u578B() {
|
|
234
|
+
return import_zod.z.object({ status: import_zod.z.literal("success"), data: this.\u6B63\u786E\u8FD4\u56DE\u7C7B\u578B });
|
|
235
|
+
}
|
|
236
|
+
\u83B7\u5F97\u9519\u8BEF\u7ED3\u679C\u7C7B\u578B() {
|
|
237
|
+
return import_zod.z.object({ status: import_zod.z.literal("fail"), data: this.\u9519\u8BEF\u8FD4\u56DE\u7C7B\u578B });
|
|
238
|
+
}
|
|
239
|
+
};
|
|
240
|
+
var JSON\u63A5\u53E3\u5305\u88C5\u57FA\u7C7B = class extends JSON\u63A5\u53E3\u57FA\u7C7B {
|
|
241
|
+
\u6784\u9020\u6B63\u786E\u8FD4\u56DE(data) {
|
|
242
|
+
return new import_ts_fp_data2.Right({ status: "success", data });
|
|
243
|
+
}
|
|
244
|
+
\u6784\u9020\u9519\u8BEF\u8FD4\u56DE(data) {
|
|
245
|
+
return new import_ts_fp_data2.Left({ status: "fail", data });
|
|
246
|
+
}
|
|
247
|
+
\u6784\u9020\u5305\u88C5\u8FD4\u56DE(data) {
|
|
248
|
+
if (data.isLeft()) return new import_ts_fp_data2.Left({ status: "fail", data: data.assertLeft().getLeft() });
|
|
249
|
+
return new import_ts_fp_data2.Right({ status: "success", data: data.assertRight().getRight() });
|
|
250
|
+
}
|
|
251
|
+
};
|
|
252
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
253
|
+
0 && (module.exports = {
|
|
254
|
+
JSON\u63A5\u53E3\u5305\u88C5\u57FA\u7C7B,
|
|
255
|
+
\u5305\u88C5\u7684\u63A5\u53E3\u7C7B\u578B,
|
|
256
|
+
\u5305\u88C5\u7684\u63A5\u53E3\u7C7B\u578B\u62BD\u8C61\u7C7B
|
|
257
|
+
});
|