@modern-js/plugin-express 2.4.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/dist/{js/node → cjs}/cli/index.js +0 -0
- package/dist/{js/node → cjs}/context.js +0 -0
- package/dist/{js/node → cjs}/index.js +0 -0
- package/dist/{js/node → cjs}/plugin.js +53 -75
- package/dist/{js/node → cjs}/registerRoutes.js +0 -0
- package/dist/{js/node → cjs}/runtime/hook.js +0 -0
- package/dist/{js/node → cjs}/runtime/index.js +0 -0
- package/dist/{js/node → cjs}/runtime/operators.js +23 -45
- package/dist/{js/node → cjs}/utils.js +14 -45
- package/dist/{js/treeshaking → esm}/cli/index.js +0 -0
- package/dist/esm/context.js +3 -0
- package/dist/{js/treeshaking → esm}/index.js +0 -0
- package/dist/{js/treeshaking → esm}/plugin.js +3 -3
- package/dist/{js/treeshaking → esm}/registerRoutes.js +0 -0
- package/dist/{js/treeshaking → esm}/runtime/hook.js +0 -0
- package/dist/{js/treeshaking → esm}/runtime/index.js +0 -0
- package/dist/{js/treeshaking → esm}/runtime/operators.js +0 -0
- package/dist/{js/treeshaking → esm}/utils.js +1 -1
- package/dist/{js/modern → esm-node}/cli/index.js +0 -0
- package/dist/{js/modern → esm-node}/context.js +0 -0
- package/dist/{js/modern → esm-node}/index.js +0 -0
- package/dist/esm-node/plugin.js +149 -0
- package/dist/{js/modern → esm-node}/registerRoutes.js +0 -0
- package/dist/{js/modern → esm-node}/runtime/hook.js +0 -0
- package/dist/{js/modern → esm-node}/runtime/index.js +0 -0
- package/dist/esm-node/runtime/operators.js +46 -0
- package/dist/{js/modern → esm-node}/utils.js +14 -47
- package/package.json +17 -18
- package/dist/js/modern/plugin.js +0 -171
- package/dist/js/modern/runtime/operators.js +0 -68
- package/dist/js/treeshaking/context.js +0 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @modern-js/plugin-express
|
|
2
2
|
|
|
3
|
+
## 2.5.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 89ca6cc: refactor: merge build-config into scripts/build
|
|
8
|
+
|
|
9
|
+
refactor: 把 build-config 合并进 scripts/build
|
|
10
|
+
|
|
11
|
+
- 30614fa: chore: modify package.json entry fields and build config
|
|
12
|
+
chore: 更改 package.json entry 字段以及构建配置
|
|
13
|
+
- Updated dependencies [89ca6cc]
|
|
14
|
+
- Updated dependencies [7cb8bb4]
|
|
15
|
+
- Updated dependencies [30614fa]
|
|
16
|
+
- Updated dependencies [1b0ce87]
|
|
17
|
+
- Updated dependencies [11c053b]
|
|
18
|
+
- @modern-js/bff-core@2.5.0
|
|
19
|
+
- @modern-js/bff-runtime@2.5.0
|
|
20
|
+
- @modern-js/types@2.5.0
|
|
21
|
+
- @modern-js/utils@2.5.0
|
|
22
|
+
|
|
3
23
|
## 2.4.0
|
|
4
24
|
|
|
5
25
|
### Patch Changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -21,26 +21,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
21
21
|
mod
|
|
22
22
|
));
|
|
23
23
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
24
|
-
var __async = (__this, __arguments, generator) => {
|
|
25
|
-
return new Promise((resolve, reject) => {
|
|
26
|
-
var fulfilled = (value) => {
|
|
27
|
-
try {
|
|
28
|
-
step(generator.next(value));
|
|
29
|
-
} catch (e) {
|
|
30
|
-
reject(e);
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
var rejected = (value) => {
|
|
34
|
-
try {
|
|
35
|
-
step(generator.throw(value));
|
|
36
|
-
} catch (e) {
|
|
37
|
-
reject(e);
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
41
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
24
|
var plugin_exports = {};
|
|
45
25
|
__export(plugin_exports, {
|
|
46
26
|
default: () => plugin_default
|
|
@@ -54,14 +34,14 @@ var import_finalhandler = __toESM(require("finalhandler"));
|
|
|
54
34
|
var import_context = require("./context");
|
|
55
35
|
var import_registerRoutes = __toESM(require("./registerRoutes"));
|
|
56
36
|
const debug = (0, import_utils.createDebugger)("express");
|
|
57
|
-
const findAppModule = (apiDir) =>
|
|
37
|
+
const findAppModule = async (apiDir) => {
|
|
58
38
|
const exts = [
|
|
59
39
|
".ts",
|
|
60
40
|
".js"
|
|
61
41
|
];
|
|
62
42
|
const paths = exts.map((ext) => path.resolve(apiDir, `app${ext}`));
|
|
63
43
|
for (const filename of paths) {
|
|
64
|
-
if (
|
|
44
|
+
if (await import_utils.fs.pathExists(filename)) {
|
|
65
45
|
delete require.cache[filename];
|
|
66
46
|
return [
|
|
67
47
|
(0, import_utils.compatRequire)(filename),
|
|
@@ -70,7 +50,7 @@ const findAppModule = (apiDir) => __async(void 0, null, function* () {
|
|
|
70
50
|
}
|
|
71
51
|
}
|
|
72
52
|
return [];
|
|
73
|
-
}
|
|
53
|
+
};
|
|
74
54
|
const initMiddlewares = (middleware, app) => {
|
|
75
55
|
middleware.forEach((middlewareItem) => {
|
|
76
56
|
const middlewareFunc = typeof middlewareItem === "string" ? (0, import_utils.compatRequire)(middlewareItem) : middlewareItem;
|
|
@@ -103,66 +83,64 @@ var plugin_default = () => ({
|
|
|
103
83
|
"@modern-js/plugin-server"
|
|
104
84
|
],
|
|
105
85
|
setup: (api) => ({
|
|
106
|
-
prepareApiServer(
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
if (!app || !app.use) {
|
|
118
|
-
app = (0, import_express.default)();
|
|
119
|
-
}
|
|
120
|
-
initApp(app);
|
|
121
|
-
if (config) {
|
|
122
|
-
const { middleware } = config;
|
|
123
|
-
initMiddlewares(middleware, app);
|
|
124
|
-
}
|
|
125
|
-
useRun(app);
|
|
126
|
-
(0, import_registerRoutes.default)(app, apiHandlerInfos);
|
|
127
|
-
if (hooks) {
|
|
128
|
-
const { afterLambdaRegisted } = hooks;
|
|
129
|
-
if (afterLambdaRegisted) {
|
|
130
|
-
afterLambdaRegisted(app);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
} else if (mode === "function") {
|
|
86
|
+
async prepareApiServer({ pwd, config }) {
|
|
87
|
+
let app;
|
|
88
|
+
const apiDir = path.join(pwd, "./api");
|
|
89
|
+
const appContext = api.useAppContext();
|
|
90
|
+
const apiHandlerInfos = appContext.apiHandlerInfos;
|
|
91
|
+
const mode = appContext.apiMode;
|
|
92
|
+
if (mode === "framework") {
|
|
93
|
+
const appModule = await findAppModule(apiDir);
|
|
94
|
+
app = appModule[0];
|
|
95
|
+
const hooks = appModule[1];
|
|
96
|
+
if (!app || !app.use) {
|
|
134
97
|
app = (0, import_express.default)();
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
98
|
+
}
|
|
99
|
+
initApp(app);
|
|
100
|
+
if (config) {
|
|
101
|
+
const { middleware } = config;
|
|
102
|
+
initMiddlewares(middleware, app);
|
|
103
|
+
}
|
|
104
|
+
useRun(app);
|
|
105
|
+
(0, import_registerRoutes.default)(app, apiHandlerInfos);
|
|
106
|
+
if (hooks) {
|
|
107
|
+
const { afterLambdaRegisted } = hooks;
|
|
108
|
+
if (afterLambdaRegisted) {
|
|
109
|
+
afterLambdaRegisted(app);
|
|
139
110
|
}
|
|
140
|
-
useRun(app);
|
|
141
|
-
(0, import_registerRoutes.default)(app, apiHandlerInfos);
|
|
142
|
-
} else {
|
|
143
|
-
throw new Error(`mode must be function or framework`);
|
|
144
111
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
112
|
+
} else if (mode === "function") {
|
|
113
|
+
app = (0, import_express.default)();
|
|
114
|
+
initApp(app);
|
|
115
|
+
if (config) {
|
|
116
|
+
const { middleware: middleware1 } = config;
|
|
117
|
+
initMiddlewares(middleware1, app);
|
|
118
|
+
}
|
|
119
|
+
useRun(app);
|
|
120
|
+
(0, import_registerRoutes.default)(app, apiHandlerInfos);
|
|
121
|
+
} else {
|
|
122
|
+
throw new Error(`mode must be function or framework`);
|
|
123
|
+
}
|
|
124
|
+
return (req, res) => new Promise((resolve, reject) => {
|
|
125
|
+
const handler = (err) => {
|
|
126
|
+
if (err) {
|
|
127
|
+
return reject(err);
|
|
128
|
+
}
|
|
129
|
+
return (0, import_finalhandler.default)(req, res, {})(null);
|
|
130
|
+
};
|
|
131
|
+
res.on("finish", (err) => {
|
|
132
|
+
if (err) {
|
|
133
|
+
return reject(err);
|
|
134
|
+
}
|
|
135
|
+
return resolve();
|
|
159
136
|
});
|
|
137
|
+
return app(req, res, handler);
|
|
160
138
|
});
|
|
161
139
|
},
|
|
162
140
|
prepareWebServer({ config }, next) {
|
|
163
|
-
var
|
|
141
|
+
var _a;
|
|
164
142
|
const userConfig = api.useConfigContext();
|
|
165
|
-
if (!((
|
|
143
|
+
if (!((_a = userConfig == null ? void 0 : userConfig.server) == null ? void 0 : _a.enableFrameworkExt)) {
|
|
166
144
|
return next();
|
|
167
145
|
}
|
|
168
146
|
const app = (0, import_express.default)();
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -15,26 +15,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
15
|
return to;
|
|
16
16
|
};
|
|
17
17
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
var __async = (__this, __arguments, generator) => {
|
|
19
|
-
return new Promise((resolve, reject) => {
|
|
20
|
-
var fulfilled = (value) => {
|
|
21
|
-
try {
|
|
22
|
-
step(generator.next(value));
|
|
23
|
-
} catch (e) {
|
|
24
|
-
reject(e);
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
var rejected = (value) => {
|
|
28
|
-
try {
|
|
29
|
-
step(generator.throw(value));
|
|
30
|
-
} catch (e) {
|
|
31
|
-
reject(e);
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
35
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
36
|
-
});
|
|
37
|
-
};
|
|
38
18
|
var operators_exports = {};
|
|
39
19
|
__export(operators_exports, {
|
|
40
20
|
Middleware: () => Middleware,
|
|
@@ -45,33 +25,31 @@ var import_context = require("../context");
|
|
|
45
25
|
const Pipe = (func) => {
|
|
46
26
|
return {
|
|
47
27
|
name: "pipe",
|
|
48
|
-
execute(executeHelper, next) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
if (
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
28
|
+
async execute(executeHelper, next) {
|
|
29
|
+
const { inputs } = executeHelper;
|
|
30
|
+
const ctx = (0, import_context.useContext)();
|
|
31
|
+
const { res } = ctx;
|
|
32
|
+
if (typeof func === "function") {
|
|
33
|
+
let isPiped = true;
|
|
34
|
+
const end = (value) => {
|
|
35
|
+
isPiped = false;
|
|
36
|
+
if (typeof value === "function") {
|
|
37
|
+
value(res);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
return value;
|
|
41
|
+
};
|
|
42
|
+
const output = await func(inputs, end);
|
|
43
|
+
if (!isPiped) {
|
|
44
|
+
if (output) {
|
|
45
|
+
return executeHelper.result = output;
|
|
46
|
+
} else {
|
|
47
|
+
return;
|
|
70
48
|
}
|
|
71
|
-
executeHelper.inputs = output;
|
|
72
|
-
yield next();
|
|
73
49
|
}
|
|
74
|
-
|
|
50
|
+
executeHelper.inputs = output;
|
|
51
|
+
await next();
|
|
52
|
+
}
|
|
75
53
|
}
|
|
76
54
|
};
|
|
77
55
|
};
|
|
@@ -2,22 +2,8 @@ var __create = Object.create;
|
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
7
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
-
var __spreadValues = (a, b) => {
|
|
11
|
-
for (var prop in b || (b = {}))
|
|
12
|
-
if (__hasOwnProp.call(b, prop))
|
|
13
|
-
__defNormalProp(a, prop, b[prop]);
|
|
14
|
-
if (__getOwnPropSymbols)
|
|
15
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
-
if (__propIsEnum.call(b, prop))
|
|
17
|
-
__defNormalProp(a, prop, b[prop]);
|
|
18
|
-
}
|
|
19
|
-
return a;
|
|
20
|
-
};
|
|
21
7
|
var __export = (target, all) => {
|
|
22
8
|
for (var name in all)
|
|
23
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -35,26 +21,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
35
21
|
mod
|
|
36
22
|
));
|
|
37
23
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
38
|
-
var __async = (__this, __arguments, generator) => {
|
|
39
|
-
return new Promise((resolve, reject) => {
|
|
40
|
-
var fulfilled = (value) => {
|
|
41
|
-
try {
|
|
42
|
-
step(generator.next(value));
|
|
43
|
-
} catch (e) {
|
|
44
|
-
reject(e);
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
var rejected = (value) => {
|
|
48
|
-
try {
|
|
49
|
-
step(generator.throw(value));
|
|
50
|
-
} catch (e) {
|
|
51
|
-
reject(e);
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
55
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
56
|
-
});
|
|
57
|
-
};
|
|
58
24
|
var utils_exports = {};
|
|
59
25
|
__export(utils_exports, {
|
|
60
26
|
createRouteHandler: () => createRouteHandler,
|
|
@@ -91,15 +57,15 @@ const handleResponseMeta = (res, handler) => {
|
|
|
91
57
|
}
|
|
92
58
|
};
|
|
93
59
|
const createRouteHandler = (handler) => {
|
|
94
|
-
const apiHandler = (req, res, next) =>
|
|
95
|
-
const input =
|
|
60
|
+
const apiHandler = async (req, res, next) => {
|
|
61
|
+
const input = await getInputFromRequest(req);
|
|
96
62
|
if ((0, import_bff_core.isWithMetaHandler)(handler)) {
|
|
97
63
|
try {
|
|
98
64
|
handleResponseMeta(res, handler);
|
|
99
65
|
if (res.headersSent) {
|
|
100
66
|
return;
|
|
101
67
|
}
|
|
102
|
-
const result =
|
|
68
|
+
const result = await handler(input);
|
|
103
69
|
if (result && typeof result === "object") {
|
|
104
70
|
return res.json(result);
|
|
105
71
|
}
|
|
@@ -113,7 +79,7 @@ const createRouteHandler = (handler) => {
|
|
|
113
79
|
throw error;
|
|
114
80
|
}
|
|
115
81
|
} else if ((0, import_bff_runtime.isSchemaHandler)(handler)) {
|
|
116
|
-
const result1 =
|
|
82
|
+
const result1 = await handler(input);
|
|
117
83
|
if (result1.type !== "HandleSuccess") {
|
|
118
84
|
if (result1.type === "InputValidationError") {
|
|
119
85
|
res.status(400);
|
|
@@ -128,9 +94,9 @@ const createRouteHandler = (handler) => {
|
|
|
128
94
|
} else {
|
|
129
95
|
const args = Object.values(input.params).concat(input);
|
|
130
96
|
try {
|
|
131
|
-
const body =
|
|
97
|
+
const body = await handler(...args);
|
|
132
98
|
if (res.headersSent) {
|
|
133
|
-
return
|
|
99
|
+
return await Promise.resolve();
|
|
134
100
|
}
|
|
135
101
|
if (typeof body !== "undefined") {
|
|
136
102
|
return res.json(body);
|
|
@@ -139,12 +105,12 @@ const createRouteHandler = (handler) => {
|
|
|
139
105
|
return next(e);
|
|
140
106
|
}
|
|
141
107
|
}
|
|
142
|
-
}
|
|
108
|
+
};
|
|
143
109
|
Object.defineProperties(apiHandler, Object.getOwnPropertyDescriptors(handler));
|
|
144
110
|
return apiHandler;
|
|
145
111
|
};
|
|
146
112
|
const isNormalMethod = (httpMethod) => import_bff_core.httpMethods.includes(httpMethod);
|
|
147
|
-
const getInputFromRequest = (request) =>
|
|
113
|
+
const getInputFromRequest = async (request) => {
|
|
148
114
|
const draft = {
|
|
149
115
|
params: request.params,
|
|
150
116
|
query: request.query,
|
|
@@ -158,7 +124,7 @@ const getInputFromRequest = (request) => __async(void 0, null, function* () {
|
|
|
158
124
|
} else if ((0, import_type_is.default)(request, [
|
|
159
125
|
"multipart/form-data"
|
|
160
126
|
])) {
|
|
161
|
-
draft.formData =
|
|
127
|
+
draft.formData = await resolveFormData(request);
|
|
162
128
|
} else if ((0, import_type_is.default)(request, [
|
|
163
129
|
"application/x-www-form-urlencoded"
|
|
164
130
|
])) {
|
|
@@ -167,7 +133,7 @@ const getInputFromRequest = (request) => __async(void 0, null, function* () {
|
|
|
167
133
|
draft.body = request.body;
|
|
168
134
|
}
|
|
169
135
|
return draft;
|
|
170
|
-
}
|
|
136
|
+
};
|
|
171
137
|
const resolveFormData = (request) => {
|
|
172
138
|
const form = (0, import_formidable.default)({
|
|
173
139
|
multiples: true
|
|
@@ -177,7 +143,10 @@ const resolveFormData = (request) => {
|
|
|
177
143
|
if (err) {
|
|
178
144
|
reject(err);
|
|
179
145
|
}
|
|
180
|
-
resolve(
|
|
146
|
+
resolve({
|
|
147
|
+
...fields,
|
|
148
|
+
...files
|
|
149
|
+
});
|
|
181
150
|
});
|
|
182
151
|
});
|
|
183
152
|
};
|
|
File without changes
|
|
File without changes
|
|
@@ -338,9 +338,9 @@ var plugin_default = function() {
|
|
|
338
338
|
},
|
|
339
339
|
prepareWebServer: function prepareWebServer(param, next) {
|
|
340
340
|
var config = param.config;
|
|
341
|
-
var
|
|
341
|
+
var _userConfig_server;
|
|
342
342
|
var userConfig = api.useConfigContext();
|
|
343
|
-
if (!(userConfig === null || userConfig === void 0 ? void 0 : (
|
|
343
|
+
if (!(userConfig === null || userConfig === void 0 ? void 0 : (_userConfig_server = userConfig.server) === null || _userConfig_server === void 0 ? void 0 : _userConfig_server.enableFrameworkExt)) {
|
|
344
344
|
return next();
|
|
345
345
|
}
|
|
346
346
|
var app = express();
|
|
@@ -352,7 +352,7 @@ var plugin_default = function() {
|
|
|
352
352
|
}
|
|
353
353
|
return function(ctx) {
|
|
354
354
|
return new Promise(function(resolve, reject) {
|
|
355
|
-
var
|
|
355
|
+
var _ctx_source = ctx.source, req = _ctx_source.req, res = _ctx_source.res;
|
|
356
356
|
var handler = function(err) {
|
|
357
357
|
if (err) {
|
|
358
358
|
return reject(err);
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -234,7 +234,7 @@ var handleResponseMeta = function(res, handler) {
|
|
|
234
234
|
var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
|
|
235
235
|
try {
|
|
236
236
|
for(var _iterator1 = Object.entries(metaValue)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
|
|
237
|
-
var
|
|
237
|
+
var _step_value = _slicedToArray(_step1.value, 2), key = _step_value[0], value = _step_value[1];
|
|
238
238
|
res.append(key, value);
|
|
239
239
|
}
|
|
240
240
|
} catch (err) {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import * as path from "path";
|
|
2
|
+
import express from "express";
|
|
3
|
+
import cookieParser from "cookie-parser";
|
|
4
|
+
import { fs, createDebugger, compatRequire } from "@modern-js/utils";
|
|
5
|
+
import finalhandler from "finalhandler";
|
|
6
|
+
import { run } from "./context";
|
|
7
|
+
import registerRoutes from "./registerRoutes";
|
|
8
|
+
const debug = createDebugger("express");
|
|
9
|
+
const findAppModule = async (apiDir) => {
|
|
10
|
+
const exts = [
|
|
11
|
+
".ts",
|
|
12
|
+
".js"
|
|
13
|
+
];
|
|
14
|
+
const paths = exts.map((ext) => path.resolve(apiDir, `app${ext}`));
|
|
15
|
+
for (const filename of paths) {
|
|
16
|
+
if (await fs.pathExists(filename)) {
|
|
17
|
+
delete require.cache[filename];
|
|
18
|
+
return [
|
|
19
|
+
compatRequire(filename),
|
|
20
|
+
require(filename)
|
|
21
|
+
];
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return [];
|
|
25
|
+
};
|
|
26
|
+
const initMiddlewares = (middleware, app) => {
|
|
27
|
+
middleware.forEach((middlewareItem) => {
|
|
28
|
+
const middlewareFunc = typeof middlewareItem === "string" ? compatRequire(middlewareItem) : middlewareItem;
|
|
29
|
+
app.use(middlewareFunc);
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
const useRun = (app) => {
|
|
33
|
+
app.use((req, res, next) => {
|
|
34
|
+
run({
|
|
35
|
+
req,
|
|
36
|
+
res
|
|
37
|
+
}, next);
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
const initApp = (app) => {
|
|
41
|
+
app.use(cookieParser());
|
|
42
|
+
app.use(express.text());
|
|
43
|
+
app.use(express.urlencoded({
|
|
44
|
+
extended: true
|
|
45
|
+
}));
|
|
46
|
+
app.use(express.json());
|
|
47
|
+
return app;
|
|
48
|
+
};
|
|
49
|
+
var plugin_default = () => ({
|
|
50
|
+
name: "@modern-js/plugin-express",
|
|
51
|
+
pre: [
|
|
52
|
+
"@modern-js/plugin-bff"
|
|
53
|
+
],
|
|
54
|
+
post: [
|
|
55
|
+
"@modern-js/plugin-server"
|
|
56
|
+
],
|
|
57
|
+
setup: (api) => ({
|
|
58
|
+
async prepareApiServer({ pwd, config }) {
|
|
59
|
+
let app;
|
|
60
|
+
const apiDir = path.join(pwd, "./api");
|
|
61
|
+
const appContext = api.useAppContext();
|
|
62
|
+
const apiHandlerInfos = appContext.apiHandlerInfos;
|
|
63
|
+
const mode = appContext.apiMode;
|
|
64
|
+
if (mode === "framework") {
|
|
65
|
+
const appModule = await findAppModule(apiDir);
|
|
66
|
+
app = appModule[0];
|
|
67
|
+
const hooks = appModule[1];
|
|
68
|
+
if (!app || !app.use) {
|
|
69
|
+
app = express();
|
|
70
|
+
}
|
|
71
|
+
initApp(app);
|
|
72
|
+
if (config) {
|
|
73
|
+
const { middleware } = config;
|
|
74
|
+
initMiddlewares(middleware, app);
|
|
75
|
+
}
|
|
76
|
+
useRun(app);
|
|
77
|
+
registerRoutes(app, apiHandlerInfos);
|
|
78
|
+
if (hooks) {
|
|
79
|
+
const { afterLambdaRegisted } = hooks;
|
|
80
|
+
if (afterLambdaRegisted) {
|
|
81
|
+
afterLambdaRegisted(app);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
} else if (mode === "function") {
|
|
85
|
+
app = express();
|
|
86
|
+
initApp(app);
|
|
87
|
+
if (config) {
|
|
88
|
+
const { middleware: middleware1 } = config;
|
|
89
|
+
initMiddlewares(middleware1, app);
|
|
90
|
+
}
|
|
91
|
+
useRun(app);
|
|
92
|
+
registerRoutes(app, apiHandlerInfos);
|
|
93
|
+
} else {
|
|
94
|
+
throw new Error(`mode must be function or framework`);
|
|
95
|
+
}
|
|
96
|
+
return (req, res) => new Promise((resolve, reject) => {
|
|
97
|
+
const handler = (err) => {
|
|
98
|
+
if (err) {
|
|
99
|
+
return reject(err);
|
|
100
|
+
}
|
|
101
|
+
return finalhandler(req, res, {})(null);
|
|
102
|
+
};
|
|
103
|
+
res.on("finish", (err) => {
|
|
104
|
+
if (err) {
|
|
105
|
+
return reject(err);
|
|
106
|
+
}
|
|
107
|
+
return resolve();
|
|
108
|
+
});
|
|
109
|
+
return app(req, res, handler);
|
|
110
|
+
});
|
|
111
|
+
},
|
|
112
|
+
prepareWebServer({ config }, next) {
|
|
113
|
+
var _a;
|
|
114
|
+
const userConfig = api.useConfigContext();
|
|
115
|
+
if (!((_a = userConfig == null ? void 0 : userConfig.server) == null ? void 0 : _a.enableFrameworkExt)) {
|
|
116
|
+
return next();
|
|
117
|
+
}
|
|
118
|
+
const app = express();
|
|
119
|
+
initApp(app);
|
|
120
|
+
if (config) {
|
|
121
|
+
const { middleware } = config;
|
|
122
|
+
debug("web middleware", middleware);
|
|
123
|
+
initMiddlewares(middleware, app);
|
|
124
|
+
}
|
|
125
|
+
return (ctx) => new Promise((resolve, reject) => {
|
|
126
|
+
const { source: { req, res } } = ctx;
|
|
127
|
+
const handler = (err) => {
|
|
128
|
+
if (err) {
|
|
129
|
+
return reject(err);
|
|
130
|
+
}
|
|
131
|
+
if (res.headersSent && res.statusCode !== 200) {
|
|
132
|
+
finalhandler(req, res, {})(null);
|
|
133
|
+
}
|
|
134
|
+
return resolve();
|
|
135
|
+
};
|
|
136
|
+
res.on("finish", (err) => {
|
|
137
|
+
if (err) {
|
|
138
|
+
return reject(err);
|
|
139
|
+
}
|
|
140
|
+
return resolve();
|
|
141
|
+
});
|
|
142
|
+
return app(req, res, handler);
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
})
|
|
146
|
+
});
|
|
147
|
+
export {
|
|
148
|
+
plugin_default as default
|
|
149
|
+
};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { useContext } from "../context";
|
|
2
|
+
const Pipe = (func) => {
|
|
3
|
+
return {
|
|
4
|
+
name: "pipe",
|
|
5
|
+
async execute(executeHelper, next) {
|
|
6
|
+
const { inputs } = executeHelper;
|
|
7
|
+
const ctx = useContext();
|
|
8
|
+
const { res } = ctx;
|
|
9
|
+
if (typeof func === "function") {
|
|
10
|
+
let isPiped = true;
|
|
11
|
+
const end = (value) => {
|
|
12
|
+
isPiped = false;
|
|
13
|
+
if (typeof value === "function") {
|
|
14
|
+
value(res);
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
return value;
|
|
18
|
+
};
|
|
19
|
+
const output = await func(inputs, end);
|
|
20
|
+
if (!isPiped) {
|
|
21
|
+
if (output) {
|
|
22
|
+
return executeHelper.result = output;
|
|
23
|
+
} else {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
executeHelper.inputs = output;
|
|
28
|
+
await next();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
const Middleware = (middleware) => {
|
|
34
|
+
return {
|
|
35
|
+
name: "middleware",
|
|
36
|
+
metadata(helper) {
|
|
37
|
+
const middlewares = helper.getMetadata("pipe") || [];
|
|
38
|
+
middlewares.push(middleware);
|
|
39
|
+
helper.setMetadata("middleware", middlewares);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
export {
|
|
44
|
+
Middleware,
|
|
45
|
+
Pipe
|
|
46
|
+
};
|
|
@@ -1,39 +1,3 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
3
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
5
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
-
var __spreadValues = (a, b) => {
|
|
7
|
-
for (var prop in b || (b = {}))
|
|
8
|
-
if (__hasOwnProp.call(b, prop))
|
|
9
|
-
__defNormalProp(a, prop, b[prop]);
|
|
10
|
-
if (__getOwnPropSymbols)
|
|
11
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
12
|
-
if (__propIsEnum.call(b, prop))
|
|
13
|
-
__defNormalProp(a, prop, b[prop]);
|
|
14
|
-
}
|
|
15
|
-
return a;
|
|
16
|
-
};
|
|
17
|
-
var __async = (__this, __arguments, generator) => {
|
|
18
|
-
return new Promise((resolve, reject) => {
|
|
19
|
-
var fulfilled = (value) => {
|
|
20
|
-
try {
|
|
21
|
-
step(generator.next(value));
|
|
22
|
-
} catch (e) {
|
|
23
|
-
reject(e);
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
var rejected = (value) => {
|
|
27
|
-
try {
|
|
28
|
-
step(generator.throw(value));
|
|
29
|
-
} catch (e) {
|
|
30
|
-
reject(e);
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
34
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
35
|
-
});
|
|
36
|
-
};
|
|
37
1
|
import "reflect-metadata";
|
|
38
2
|
import { httpMethods, isWithMetaHandler, HttpMetadata, ResponseMetaType, ValidationError } from "@modern-js/bff-core";
|
|
39
3
|
import { isSchemaHandler } from "@modern-js/bff-runtime";
|
|
@@ -64,15 +28,15 @@ const handleResponseMeta = (res, handler) => {
|
|
|
64
28
|
}
|
|
65
29
|
};
|
|
66
30
|
const createRouteHandler = (handler) => {
|
|
67
|
-
const apiHandler = (req, res, next) =>
|
|
68
|
-
const input =
|
|
31
|
+
const apiHandler = async (req, res, next) => {
|
|
32
|
+
const input = await getInputFromRequest(req);
|
|
69
33
|
if (isWithMetaHandler(handler)) {
|
|
70
34
|
try {
|
|
71
35
|
handleResponseMeta(res, handler);
|
|
72
36
|
if (res.headersSent) {
|
|
73
37
|
return;
|
|
74
38
|
}
|
|
75
|
-
const result =
|
|
39
|
+
const result = await handler(input);
|
|
76
40
|
if (result && typeof result === "object") {
|
|
77
41
|
return res.json(result);
|
|
78
42
|
}
|
|
@@ -86,7 +50,7 @@ const createRouteHandler = (handler) => {
|
|
|
86
50
|
throw error;
|
|
87
51
|
}
|
|
88
52
|
} else if (isSchemaHandler(handler)) {
|
|
89
|
-
const result1 =
|
|
53
|
+
const result1 = await handler(input);
|
|
90
54
|
if (result1.type !== "HandleSuccess") {
|
|
91
55
|
if (result1.type === "InputValidationError") {
|
|
92
56
|
res.status(400);
|
|
@@ -101,9 +65,9 @@ const createRouteHandler = (handler) => {
|
|
|
101
65
|
} else {
|
|
102
66
|
const args = Object.values(input.params).concat(input);
|
|
103
67
|
try {
|
|
104
|
-
const body =
|
|
68
|
+
const body = await handler(...args);
|
|
105
69
|
if (res.headersSent) {
|
|
106
|
-
return
|
|
70
|
+
return await Promise.resolve();
|
|
107
71
|
}
|
|
108
72
|
if (typeof body !== "undefined") {
|
|
109
73
|
return res.json(body);
|
|
@@ -112,12 +76,12 @@ const createRouteHandler = (handler) => {
|
|
|
112
76
|
return next(e);
|
|
113
77
|
}
|
|
114
78
|
}
|
|
115
|
-
}
|
|
79
|
+
};
|
|
116
80
|
Object.defineProperties(apiHandler, Object.getOwnPropertyDescriptors(handler));
|
|
117
81
|
return apiHandler;
|
|
118
82
|
};
|
|
119
83
|
const isNormalMethod = (httpMethod) => httpMethods.includes(httpMethod);
|
|
120
|
-
const getInputFromRequest = (request) =>
|
|
84
|
+
const getInputFromRequest = async (request) => {
|
|
121
85
|
const draft = {
|
|
122
86
|
params: request.params,
|
|
123
87
|
query: request.query,
|
|
@@ -131,7 +95,7 @@ const getInputFromRequest = (request) => __async(void 0, null, function* () {
|
|
|
131
95
|
} else if (typeIs(request, [
|
|
132
96
|
"multipart/form-data"
|
|
133
97
|
])) {
|
|
134
|
-
draft.formData =
|
|
98
|
+
draft.formData = await resolveFormData(request);
|
|
135
99
|
} else if (typeIs(request, [
|
|
136
100
|
"application/x-www-form-urlencoded"
|
|
137
101
|
])) {
|
|
@@ -140,7 +104,7 @@ const getInputFromRequest = (request) => __async(void 0, null, function* () {
|
|
|
140
104
|
draft.body = request.body;
|
|
141
105
|
}
|
|
142
106
|
return draft;
|
|
143
|
-
}
|
|
107
|
+
};
|
|
144
108
|
const resolveFormData = (request) => {
|
|
145
109
|
const form = formidable({
|
|
146
110
|
multiples: true
|
|
@@ -150,7 +114,10 @@ const resolveFormData = (request) => {
|
|
|
150
114
|
if (err) {
|
|
151
115
|
reject(err);
|
|
152
116
|
}
|
|
153
|
-
resolve(
|
|
117
|
+
resolve({
|
|
118
|
+
...fields,
|
|
119
|
+
...files
|
|
120
|
+
});
|
|
154
121
|
});
|
|
155
122
|
});
|
|
156
123
|
};
|
package/package.json
CHANGED
|
@@ -11,29 +11,28 @@
|
|
|
11
11
|
"modern",
|
|
12
12
|
"modern.js"
|
|
13
13
|
],
|
|
14
|
-
"version": "2.
|
|
14
|
+
"version": "2.5.0",
|
|
15
15
|
"jsnext:source": "./src/index.ts",
|
|
16
16
|
"types": "./dist/types/cli/index.d.ts",
|
|
17
|
-
"main": "./dist/
|
|
18
|
-
"module": "./dist/
|
|
19
|
-
"jsnext:modern": "./dist/js/modern/cli/index.js",
|
|
17
|
+
"main": "./dist/cjs/cli/index.js",
|
|
18
|
+
"module": "./dist/esm/cli/index.js",
|
|
20
19
|
"exports": {
|
|
21
20
|
"./types": "./types.d.ts",
|
|
22
21
|
".": {
|
|
23
22
|
"jsnext:source": "./src/cli/index.ts",
|
|
24
|
-
"default": "./dist/
|
|
23
|
+
"default": "./dist/cjs/cli/index.js"
|
|
25
24
|
},
|
|
26
25
|
"./cli": {
|
|
27
26
|
"jsnext:source": "./src/cli/index.ts",
|
|
28
|
-
"default": "./dist/
|
|
27
|
+
"default": "./dist/cjs/cli/index.js"
|
|
29
28
|
},
|
|
30
29
|
"./server": {
|
|
31
30
|
"node": {
|
|
32
31
|
"jsnext:source": "./src/index.ts",
|
|
33
|
-
"import": "./dist/
|
|
34
|
-
"require": "./dist/
|
|
32
|
+
"import": "./dist/esm-node/index.js",
|
|
33
|
+
"require": "./dist/cjs/index.js"
|
|
35
34
|
},
|
|
36
|
-
"default": "./dist/
|
|
35
|
+
"default": "./dist/esm/index.js"
|
|
37
36
|
}
|
|
38
37
|
},
|
|
39
38
|
"dependencies": {
|
|
@@ -43,10 +42,10 @@
|
|
|
43
42
|
"formidable": "^1.2.2",
|
|
44
43
|
"reflect-metadata": "^0.1.13",
|
|
45
44
|
"type-is": "^1.6.18",
|
|
46
|
-
"@modern-js/bff-core": "2.
|
|
47
|
-
"@modern-js/bff-runtime": "2.
|
|
48
|
-
"@modern-js/types": "2.
|
|
49
|
-
"@modern-js/utils": "2.
|
|
45
|
+
"@modern-js/bff-core": "2.5.0",
|
|
46
|
+
"@modern-js/bff-runtime": "2.5.0",
|
|
47
|
+
"@modern-js/types": "2.5.0",
|
|
48
|
+
"@modern-js/utils": "2.5.0"
|
|
50
49
|
},
|
|
51
50
|
"devDependencies": {
|
|
52
51
|
"@types/cookie-parser": "^1.4.2",
|
|
@@ -62,11 +61,11 @@
|
|
|
62
61
|
"supertest": "^6.1.6",
|
|
63
62
|
"typescript": "^4",
|
|
64
63
|
"zod": "^3.17.3",
|
|
65
|
-
"@modern-js/core": "2.
|
|
66
|
-
"@modern-js/
|
|
67
|
-
"@modern-js/
|
|
68
|
-
"@scripts/build": "2.
|
|
69
|
-
"@scripts/jest-config": "2.
|
|
64
|
+
"@modern-js/core": "2.5.0",
|
|
65
|
+
"@modern-js/app-tools": "2.5.0",
|
|
66
|
+
"@modern-js/server-core": "2.5.0",
|
|
67
|
+
"@scripts/build": "2.5.0",
|
|
68
|
+
"@scripts/jest-config": "2.5.0"
|
|
70
69
|
},
|
|
71
70
|
"peerDependencies": {
|
|
72
71
|
"express": "^4.17.1"
|
package/dist/js/modern/plugin.js
DELETED
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
var __async = (__this, __arguments, generator) => {
|
|
2
|
-
return new Promise((resolve, reject) => {
|
|
3
|
-
var fulfilled = (value) => {
|
|
4
|
-
try {
|
|
5
|
-
step(generator.next(value));
|
|
6
|
-
} catch (e) {
|
|
7
|
-
reject(e);
|
|
8
|
-
}
|
|
9
|
-
};
|
|
10
|
-
var rejected = (value) => {
|
|
11
|
-
try {
|
|
12
|
-
step(generator.throw(value));
|
|
13
|
-
} catch (e) {
|
|
14
|
-
reject(e);
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
18
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
import * as path from "path";
|
|
22
|
-
import express from "express";
|
|
23
|
-
import cookieParser from "cookie-parser";
|
|
24
|
-
import { fs, createDebugger, compatRequire } from "@modern-js/utils";
|
|
25
|
-
import finalhandler from "finalhandler";
|
|
26
|
-
import { run } from "./context";
|
|
27
|
-
import registerRoutes from "./registerRoutes";
|
|
28
|
-
const debug = createDebugger("express");
|
|
29
|
-
const findAppModule = (apiDir) => __async(void 0, null, function* () {
|
|
30
|
-
const exts = [
|
|
31
|
-
".ts",
|
|
32
|
-
".js"
|
|
33
|
-
];
|
|
34
|
-
const paths = exts.map((ext) => path.resolve(apiDir, `app${ext}`));
|
|
35
|
-
for (const filename of paths) {
|
|
36
|
-
if (yield fs.pathExists(filename)) {
|
|
37
|
-
delete require.cache[filename];
|
|
38
|
-
return [
|
|
39
|
-
compatRequire(filename),
|
|
40
|
-
require(filename)
|
|
41
|
-
];
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return [];
|
|
45
|
-
});
|
|
46
|
-
const initMiddlewares = (middleware, app) => {
|
|
47
|
-
middleware.forEach((middlewareItem) => {
|
|
48
|
-
const middlewareFunc = typeof middlewareItem === "string" ? compatRequire(middlewareItem) : middlewareItem;
|
|
49
|
-
app.use(middlewareFunc);
|
|
50
|
-
});
|
|
51
|
-
};
|
|
52
|
-
const useRun = (app) => {
|
|
53
|
-
app.use((req, res, next) => {
|
|
54
|
-
run({
|
|
55
|
-
req,
|
|
56
|
-
res
|
|
57
|
-
}, next);
|
|
58
|
-
});
|
|
59
|
-
};
|
|
60
|
-
const initApp = (app) => {
|
|
61
|
-
app.use(cookieParser());
|
|
62
|
-
app.use(express.text());
|
|
63
|
-
app.use(express.urlencoded({
|
|
64
|
-
extended: true
|
|
65
|
-
}));
|
|
66
|
-
app.use(express.json());
|
|
67
|
-
return app;
|
|
68
|
-
};
|
|
69
|
-
var plugin_default = () => ({
|
|
70
|
-
name: "@modern-js/plugin-express",
|
|
71
|
-
pre: [
|
|
72
|
-
"@modern-js/plugin-bff"
|
|
73
|
-
],
|
|
74
|
-
post: [
|
|
75
|
-
"@modern-js/plugin-server"
|
|
76
|
-
],
|
|
77
|
-
setup: (api) => ({
|
|
78
|
-
prepareApiServer(_0) {
|
|
79
|
-
return __async(this, arguments, function* ({ pwd, config }) {
|
|
80
|
-
let app;
|
|
81
|
-
const apiDir = path.join(pwd, "./api");
|
|
82
|
-
const appContext = api.useAppContext();
|
|
83
|
-
const apiHandlerInfos = appContext.apiHandlerInfos;
|
|
84
|
-
const mode = appContext.apiMode;
|
|
85
|
-
if (mode === "framework") {
|
|
86
|
-
const appModule = yield findAppModule(apiDir);
|
|
87
|
-
app = appModule[0];
|
|
88
|
-
const hooks = appModule[1];
|
|
89
|
-
if (!app || !app.use) {
|
|
90
|
-
app = express();
|
|
91
|
-
}
|
|
92
|
-
initApp(app);
|
|
93
|
-
if (config) {
|
|
94
|
-
const { middleware } = config;
|
|
95
|
-
initMiddlewares(middleware, app);
|
|
96
|
-
}
|
|
97
|
-
useRun(app);
|
|
98
|
-
registerRoutes(app, apiHandlerInfos);
|
|
99
|
-
if (hooks) {
|
|
100
|
-
const { afterLambdaRegisted } = hooks;
|
|
101
|
-
if (afterLambdaRegisted) {
|
|
102
|
-
afterLambdaRegisted(app);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
} else if (mode === "function") {
|
|
106
|
-
app = express();
|
|
107
|
-
initApp(app);
|
|
108
|
-
if (config) {
|
|
109
|
-
const { middleware: middleware1 } = config;
|
|
110
|
-
initMiddlewares(middleware1, app);
|
|
111
|
-
}
|
|
112
|
-
useRun(app);
|
|
113
|
-
registerRoutes(app, apiHandlerInfos);
|
|
114
|
-
} else {
|
|
115
|
-
throw new Error(`mode must be function or framework`);
|
|
116
|
-
}
|
|
117
|
-
return (req, res) => new Promise((resolve, reject) => {
|
|
118
|
-
const handler = (err) => {
|
|
119
|
-
if (err) {
|
|
120
|
-
return reject(err);
|
|
121
|
-
}
|
|
122
|
-
return finalhandler(req, res, {})(null);
|
|
123
|
-
};
|
|
124
|
-
res.on("finish", (err) => {
|
|
125
|
-
if (err) {
|
|
126
|
-
return reject(err);
|
|
127
|
-
}
|
|
128
|
-
return resolve();
|
|
129
|
-
});
|
|
130
|
-
return app(req, res, handler);
|
|
131
|
-
});
|
|
132
|
-
});
|
|
133
|
-
},
|
|
134
|
-
prepareWebServer({ config }, next) {
|
|
135
|
-
var _a2;
|
|
136
|
-
const userConfig = api.useConfigContext();
|
|
137
|
-
if (!((_a2 = userConfig == null ? void 0 : userConfig.server) == null ? void 0 : _a2.enableFrameworkExt)) {
|
|
138
|
-
return next();
|
|
139
|
-
}
|
|
140
|
-
const app = express();
|
|
141
|
-
initApp(app);
|
|
142
|
-
if (config) {
|
|
143
|
-
const { middleware } = config;
|
|
144
|
-
debug("web middleware", middleware);
|
|
145
|
-
initMiddlewares(middleware, app);
|
|
146
|
-
}
|
|
147
|
-
return (ctx) => new Promise((resolve, reject) => {
|
|
148
|
-
const { source: { req, res } } = ctx;
|
|
149
|
-
const handler = (err) => {
|
|
150
|
-
if (err) {
|
|
151
|
-
return reject(err);
|
|
152
|
-
}
|
|
153
|
-
if (res.headersSent && res.statusCode !== 200) {
|
|
154
|
-
finalhandler(req, res, {})(null);
|
|
155
|
-
}
|
|
156
|
-
return resolve();
|
|
157
|
-
};
|
|
158
|
-
res.on("finish", (err) => {
|
|
159
|
-
if (err) {
|
|
160
|
-
return reject(err);
|
|
161
|
-
}
|
|
162
|
-
return resolve();
|
|
163
|
-
});
|
|
164
|
-
return app(req, res, handler);
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
})
|
|
168
|
-
});
|
|
169
|
-
export {
|
|
170
|
-
plugin_default as default
|
|
171
|
-
};
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
var __async = (__this, __arguments, generator) => {
|
|
2
|
-
return new Promise((resolve, reject) => {
|
|
3
|
-
var fulfilled = (value) => {
|
|
4
|
-
try {
|
|
5
|
-
step(generator.next(value));
|
|
6
|
-
} catch (e) {
|
|
7
|
-
reject(e);
|
|
8
|
-
}
|
|
9
|
-
};
|
|
10
|
-
var rejected = (value) => {
|
|
11
|
-
try {
|
|
12
|
-
step(generator.throw(value));
|
|
13
|
-
} catch (e) {
|
|
14
|
-
reject(e);
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
18
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
import { useContext } from "../context";
|
|
22
|
-
const Pipe = (func) => {
|
|
23
|
-
return {
|
|
24
|
-
name: "pipe",
|
|
25
|
-
execute(executeHelper, next) {
|
|
26
|
-
return __async(this, null, function* () {
|
|
27
|
-
const { inputs } = executeHelper;
|
|
28
|
-
const ctx = useContext();
|
|
29
|
-
const { res } = ctx;
|
|
30
|
-
if (typeof func === "function") {
|
|
31
|
-
let isPiped = true;
|
|
32
|
-
const end = (value) => {
|
|
33
|
-
isPiped = false;
|
|
34
|
-
if (typeof value === "function") {
|
|
35
|
-
value(res);
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
return value;
|
|
39
|
-
};
|
|
40
|
-
const output = yield func(inputs, end);
|
|
41
|
-
if (!isPiped) {
|
|
42
|
-
if (output) {
|
|
43
|
-
return executeHelper.result = output;
|
|
44
|
-
} else {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
executeHelper.inputs = output;
|
|
49
|
-
yield next();
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
};
|
|
55
|
-
const Middleware = (middleware) => {
|
|
56
|
-
return {
|
|
57
|
-
name: "middleware",
|
|
58
|
-
metadata(helper) {
|
|
59
|
-
const middlewares = helper.getMetadata("pipe") || [];
|
|
60
|
-
middlewares.push(middleware);
|
|
61
|
-
helper.setMetadata("middleware", middlewares);
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
};
|
|
65
|
-
export {
|
|
66
|
-
Middleware,
|
|
67
|
-
Pipe
|
|
68
|
-
};
|