@modern-js/plugin-koa 2.0.0-beta.3 → 2.0.0-beta.4
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 +44 -0
- package/dist/js/modern/cli/index.js +34 -23
- package/dist/js/modern/context.js +4 -4
- package/dist/js/modern/index.js +4 -1
- package/dist/js/modern/plugin.js +94 -81
- package/dist/js/modern/registerRoutes.js +5 -6
- package/dist/js/modern/runtime.js +7 -3
- package/dist/js/modern/utils.js +60 -27
- package/dist/js/node/cli/index.js +57 -30
- package/dist/js/node/context.js +24 -12
- package/dist/js/node/index.js +31 -22
- package/dist/js/node/plugin.js +123 -95
- package/dist/js/node/registerRoutes.js +25 -14
- package/dist/js/node/runtime.js +24 -28
- package/dist/js/node/utils.js +84 -40
- package/dist/js/treeshaking/cli/index.js +49 -0
- package/dist/js/treeshaking/context.js +3 -0
- package/dist/js/treeshaking/index.js +4 -0
- package/dist/js/treeshaking/plugin.js +363 -0
- package/dist/js/treeshaking/registerRoutes.js +11 -0
- package/dist/js/treeshaking/runtime.js +6 -0
- package/dist/js/treeshaking/utils.js +410 -0
- package/dist/types/cli/index.d.ts +2 -0
- package/dist/types/plugin.d.ts +2 -0
- package/package.json +9 -14
package/dist/js/node/context.js
CHANGED
|
@@ -1,13 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var stdin_exports = {};
|
|
19
|
+
__export(stdin_exports, {
|
|
20
|
+
run: () => run,
|
|
21
|
+
useContext: () => useContext
|
|
5
22
|
});
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
const {
|
|
9
|
-
run,
|
|
10
|
-
useContext
|
|
11
|
-
} = (0, _bffCore.createStorage)();
|
|
12
|
-
exports.useContext = useContext;
|
|
13
|
-
exports.run = run;
|
|
23
|
+
module.exports = __toCommonJS(stdin_exports);
|
|
24
|
+
var import_bff_core = require("@modern-js/bff-core");
|
|
25
|
+
const { run, useContext } = (0, import_bff_core.createStorage)();
|
package/dist/js/node/index.js
CHANGED
|
@@ -1,23 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var stdin_exports = {};
|
|
26
|
+
__export(stdin_exports, {
|
|
27
|
+
default: () => src_default
|
|
5
28
|
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var
|
|
10
|
-
Object.keys(_context).forEach(function (key) {
|
|
11
|
-
if (key === "default" || key === "__esModule") return;
|
|
12
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
13
|
-
if (key in exports && exports[key] === _context[key]) return;
|
|
14
|
-
Object.defineProperty(exports, key, {
|
|
15
|
-
enumerable: true,
|
|
16
|
-
get: function () {
|
|
17
|
-
return _context[key];
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
22
|
-
var _default = _plugin.default;
|
|
23
|
-
exports.default = _default;
|
|
29
|
+
module.exports = __toCommonJS(stdin_exports);
|
|
30
|
+
var import_plugin = __toESM(require("./plugin"));
|
|
31
|
+
__reExport(stdin_exports, require("./context"), module.exports);
|
|
32
|
+
var src_default = import_plugin.default;
|
package/dist/js/node/plugin.js
CHANGED
|
@@ -1,123 +1,152 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
21
|
+
mod
|
|
22
|
+
));
|
|
23
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
24
|
+
var stdin_exports = {};
|
|
25
|
+
__export(stdin_exports, {
|
|
26
|
+
default: () => plugin_default
|
|
5
27
|
});
|
|
6
|
-
exports
|
|
7
|
-
var path =
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
28
|
+
module.exports = __toCommonJS(stdin_exports);
|
|
29
|
+
var path = __toESM(require("path"));
|
|
30
|
+
var import_koa = __toESM(require("koa"));
|
|
31
|
+
var import_koa_router = __toESM(require("koa-router"));
|
|
32
|
+
var import_koa_body = __toESM(require("koa-body"));
|
|
33
|
+
var import_utils = require("@modern-js/utils");
|
|
34
|
+
var import_context = require("./context");
|
|
35
|
+
var import_registerRoutes = __toESM(require("./registerRoutes"));
|
|
36
|
+
var __async = (__this, __arguments, generator) => {
|
|
37
|
+
return new Promise((resolve, reject) => {
|
|
38
|
+
var fulfilled = (value) => {
|
|
39
|
+
try {
|
|
40
|
+
step(generator.next(value));
|
|
41
|
+
} catch (e) {
|
|
42
|
+
reject(e);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
var rejected = (value) => {
|
|
46
|
+
try {
|
|
47
|
+
step(generator.throw(value));
|
|
48
|
+
} catch (e) {
|
|
49
|
+
reject(e);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
53
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
const findAppModule = (apiDir) => __async(void 0, null, function* () {
|
|
57
|
+
const exts = [".ts", ".js"];
|
|
58
|
+
const paths = exts.map((ext) => path.join(apiDir, `app${ext}`));
|
|
20
59
|
for (const filename of paths) {
|
|
21
|
-
if (
|
|
22
|
-
// 每次获取 app.ts 的时候,避免使用缓存的 app.ts
|
|
60
|
+
if (yield import_utils.fs.pathExists(filename)) {
|
|
23
61
|
delete require.cache[filename];
|
|
24
|
-
return (0,
|
|
62
|
+
return (0, import_utils.compatRequire)(filename);
|
|
25
63
|
}
|
|
26
64
|
}
|
|
27
65
|
return null;
|
|
28
|
-
};
|
|
66
|
+
});
|
|
29
67
|
const initMiddlewares = (middleware, app) => {
|
|
30
|
-
middleware.forEach(middlewareItem => {
|
|
31
|
-
const middlewareFunc = typeof middlewareItem ===
|
|
68
|
+
middleware.forEach((middlewareItem) => {
|
|
69
|
+
const middlewareFunc = typeof middlewareItem === "string" ? (0, import_utils.compatRequire)(middlewareItem) : middlewareItem;
|
|
32
70
|
app.use(middlewareFunc);
|
|
33
71
|
});
|
|
34
72
|
};
|
|
35
|
-
var
|
|
36
|
-
name:
|
|
37
|
-
pre: [
|
|
38
|
-
post: [
|
|
39
|
-
setup: api => ({
|
|
40
|
-
|
|
41
|
-
pwd,
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
middleware
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
middleware
|
|
74
|
-
}
|
|
75
|
-
|
|
73
|
+
var plugin_default = () => ({
|
|
74
|
+
name: "@modern-js/plugin-koa",
|
|
75
|
+
pre: ["@modern-js/plugin-bff"],
|
|
76
|
+
post: ["@modern-js/plugin-server"],
|
|
77
|
+
setup: (api) => ({
|
|
78
|
+
prepareApiServer(_0) {
|
|
79
|
+
return __async(this, arguments, function* ({ pwd, config }) {
|
|
80
|
+
let app;
|
|
81
|
+
const router = new import_koa_router.default();
|
|
82
|
+
const apiDir = path.join(pwd, "./api");
|
|
83
|
+
const appContext = api.useAppContext();
|
|
84
|
+
const apiHandlerInfos = appContext.apiHandlerInfos;
|
|
85
|
+
const mode = appContext.apiMode;
|
|
86
|
+
if (mode === "framework") {
|
|
87
|
+
app = yield findAppModule(apiDir);
|
|
88
|
+
if (!(app instanceof import_koa.default)) {
|
|
89
|
+
app = new import_koa.default();
|
|
90
|
+
app.use(
|
|
91
|
+
(0, import_koa_body.default)({
|
|
92
|
+
multipart: true
|
|
93
|
+
})
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
if (config) {
|
|
97
|
+
const { middleware } = config;
|
|
98
|
+
initMiddlewares(middleware, app);
|
|
99
|
+
}
|
|
100
|
+
app.use(import_context.run);
|
|
101
|
+
(0, import_registerRoutes.default)(router, apiHandlerInfos);
|
|
102
|
+
} else if (mode === "function") {
|
|
103
|
+
app = new import_koa.default();
|
|
104
|
+
app.use(
|
|
105
|
+
(0, import_koa_body.default)({
|
|
106
|
+
multipart: true
|
|
107
|
+
})
|
|
108
|
+
);
|
|
109
|
+
if (config) {
|
|
110
|
+
const { middleware } = config;
|
|
111
|
+
initMiddlewares(middleware, app);
|
|
112
|
+
}
|
|
113
|
+
app.use(import_context.run);
|
|
114
|
+
(0, import_registerRoutes.default)(router, apiHandlerInfos);
|
|
115
|
+
} else {
|
|
116
|
+
throw new Error(`mode must be function or framework`);
|
|
76
117
|
}
|
|
77
|
-
app.use(
|
|
78
|
-
(
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
app.use(router.routes());
|
|
83
|
-
return (req, res) => {
|
|
84
|
-
return Promise.resolve(app.callback()(req, res));
|
|
85
|
-
};
|
|
118
|
+
app.use(router.routes());
|
|
119
|
+
return (req, res) => {
|
|
120
|
+
return Promise.resolve(app.callback()(req, res));
|
|
121
|
+
};
|
|
122
|
+
});
|
|
86
123
|
},
|
|
87
|
-
prepareWebServer({
|
|
88
|
-
|
|
89
|
-
}, next) {
|
|
90
|
-
var _userConfig$server;
|
|
124
|
+
prepareWebServer({ config }, next) {
|
|
125
|
+
var _a2;
|
|
91
126
|
const userConfig = api.useConfigContext();
|
|
92
|
-
if (userConfig
|
|
127
|
+
if ((_a2 = userConfig == null ? void 0 : userConfig.server) == null ? void 0 : _a2.disableFrameworkExt) {
|
|
93
128
|
return next();
|
|
94
129
|
}
|
|
95
|
-
const app = new
|
|
96
|
-
app.use(
|
|
97
|
-
|
|
130
|
+
const app = new import_koa.default();
|
|
131
|
+
app.use((ctx, next2) => __async(this, null, function* () {
|
|
132
|
+
yield next2();
|
|
98
133
|
if (!ctx.body) {
|
|
99
|
-
// restore statusCode
|
|
100
134
|
if (ctx.res.statusCode === 404 && !ctx.response._explicitStatus) {
|
|
101
135
|
ctx.res.statusCode = 200;
|
|
102
136
|
}
|
|
103
137
|
ctx.respond = false;
|
|
104
138
|
}
|
|
105
|
-
});
|
|
106
|
-
app.use((0,
|
|
139
|
+
}));
|
|
140
|
+
app.use((0, import_koa_body.default)());
|
|
107
141
|
if (config) {
|
|
108
|
-
const {
|
|
109
|
-
middleware
|
|
110
|
-
} = config;
|
|
142
|
+
const { middleware } = config;
|
|
111
143
|
initMiddlewares(middleware, app);
|
|
112
144
|
}
|
|
113
|
-
return ctx => {
|
|
145
|
+
return (ctx) => {
|
|
114
146
|
const {
|
|
115
|
-
source: {
|
|
116
|
-
req,
|
|
117
|
-
res
|
|
118
|
-
}
|
|
147
|
+
source: { req, res }
|
|
119
148
|
} = ctx;
|
|
120
|
-
app.on(
|
|
149
|
+
app.on("error", (err) => {
|
|
121
150
|
if (err) {
|
|
122
151
|
throw err;
|
|
123
152
|
}
|
|
@@ -127,4 +156,3 @@ var _default = () => ({
|
|
|
127
156
|
}
|
|
128
157
|
})
|
|
129
158
|
});
|
|
130
|
-
exports.default = _default;
|
|
@@ -1,20 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var stdin_exports = {};
|
|
19
|
+
__export(stdin_exports, {
|
|
20
|
+
default: () => registerRoutes_default
|
|
5
21
|
});
|
|
6
|
-
exports
|
|
7
|
-
var
|
|
22
|
+
module.exports = __toCommonJS(stdin_exports);
|
|
23
|
+
var import_utils = require("./utils");
|
|
8
24
|
const registerRoutes = (router, handlerInfos) => {
|
|
9
|
-
handlerInfos.forEach(({
|
|
10
|
-
|
|
11
|
-
handler,
|
|
12
|
-
httpMethod
|
|
13
|
-
}) => {
|
|
14
|
-
const routeHandler = (0, _utils.createRouteHandler)(handler);
|
|
25
|
+
handlerInfos.forEach(({ routePath, handler, httpMethod }) => {
|
|
26
|
+
const routeHandler = (0, import_utils.createRouteHandler)(handler);
|
|
15
27
|
const method = httpMethod.toLowerCase();
|
|
16
28
|
router[method](routePath, routeHandler);
|
|
17
29
|
});
|
|
18
30
|
};
|
|
19
|
-
var
|
|
20
|
-
exports.default = _default;
|
|
31
|
+
var registerRoutes_default = registerRoutes;
|
package/dist/js/node/runtime.js
CHANGED
|
@@ -1,31 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
useContext: true
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
8
|
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
14
|
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var stdin_exports = {};
|
|
20
|
+
__export(stdin_exports, {
|
|
21
|
+
hook: () => hook,
|
|
22
|
+
useContext: () => import_context.useContext
|
|
16
23
|
});
|
|
17
|
-
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
22
|
-
if (key in exports && exports[key] === _bffCore[key]) return;
|
|
23
|
-
Object.defineProperty(exports, key, {
|
|
24
|
-
enumerable: true,
|
|
25
|
-
get: function () {
|
|
26
|
-
return _bffCore[key];
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
const hook = attacher => attacher;
|
|
31
|
-
exports.hook = hook;
|
|
24
|
+
module.exports = __toCommonJS(stdin_exports);
|
|
25
|
+
var import_context = require("./context");
|
|
26
|
+
__reExport(stdin_exports, require("@modern-js/bff-core"), module.exports);
|
|
27
|
+
const hook = (attacher) => attacher;
|
package/dist/js/node/utils.js
CHANGED
|
@@ -1,35 +1,79 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
21
|
+
mod
|
|
22
|
+
));
|
|
23
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
24
|
+
var stdin_exports = {};
|
|
25
|
+
__export(stdin_exports, {
|
|
26
|
+
createRouteHandler: () => createRouteHandler,
|
|
27
|
+
isNormalMethod: () => isNormalMethod
|
|
5
28
|
});
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
|
|
29
|
+
module.exports = __toCommonJS(stdin_exports);
|
|
30
|
+
var import_bff_core = require("@modern-js/bff-core");
|
|
31
|
+
var import_bff_runtime = require("@modern-js/bff-runtime");
|
|
32
|
+
var import_type_is = __toESM(require("type-is"));
|
|
33
|
+
var __async = (__this, __arguments, generator) => {
|
|
34
|
+
return new Promise((resolve, reject) => {
|
|
35
|
+
var fulfilled = (value) => {
|
|
36
|
+
try {
|
|
37
|
+
step(generator.next(value));
|
|
38
|
+
} catch (e) {
|
|
39
|
+
reject(e);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
var rejected = (value) => {
|
|
43
|
+
try {
|
|
44
|
+
step(generator.throw(value));
|
|
45
|
+
} catch (e) {
|
|
46
|
+
reject(e);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
50
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
51
|
+
});
|
|
52
|
+
};
|
|
11
53
|
const handleResponseMeta = (ctx, handler) => {
|
|
12
|
-
const responseMeta = Reflect.getMetadata(
|
|
54
|
+
const responseMeta = Reflect.getMetadata(
|
|
55
|
+
import_bff_core.HttpMetadata.Response,
|
|
56
|
+
handler
|
|
57
|
+
);
|
|
13
58
|
if (Array.isArray(responseMeta)) {
|
|
14
59
|
for (const meta of responseMeta) {
|
|
15
60
|
const metaType = meta.type;
|
|
16
61
|
const metaValue = meta.value;
|
|
17
62
|
switch (metaType) {
|
|
18
|
-
case
|
|
19
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
63
|
+
case import_bff_core.ResponseMetaType.Headers:
|
|
20
64
|
for (const [key, value] of Object.entries(metaValue)) {
|
|
21
|
-
if (typeof value ===
|
|
65
|
+
if (typeof value === "string") {
|
|
22
66
|
ctx.append(key, value);
|
|
23
67
|
}
|
|
24
68
|
}
|
|
25
69
|
break;
|
|
26
|
-
case
|
|
27
|
-
if (typeof metaValue ===
|
|
70
|
+
case import_bff_core.ResponseMetaType.Redirect:
|
|
71
|
+
if (typeof metaValue === "string") {
|
|
28
72
|
ctx.redirect(metaValue);
|
|
29
73
|
}
|
|
30
74
|
break;
|
|
31
|
-
case
|
|
32
|
-
if (typeof metaValue ===
|
|
75
|
+
case import_bff_core.ResponseMetaType.StatusCode:
|
|
76
|
+
if (typeof metaValue === "number") {
|
|
33
77
|
ctx.status = metaValue;
|
|
34
78
|
}
|
|
35
79
|
break;
|
|
@@ -39,15 +83,14 @@ const handleResponseMeta = (ctx, handler) => {
|
|
|
39
83
|
}
|
|
40
84
|
}
|
|
41
85
|
};
|
|
42
|
-
const createRouteHandler = handler => {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if ((0, _bffCore.isWithMetaHandler)(handler)) {
|
|
86
|
+
const createRouteHandler = (handler) => {
|
|
87
|
+
const apiHandler = (ctx) => __async(void 0, null, function* () {
|
|
88
|
+
const input = yield getInputFromRequest(ctx);
|
|
89
|
+
if ((0, import_bff_core.isWithMetaHandler)(handler)) {
|
|
47
90
|
try {
|
|
48
91
|
handleResponseMeta(ctx, handler);
|
|
49
|
-
const body =
|
|
50
|
-
if (typeof body !==
|
|
92
|
+
const body = yield handler(input);
|
|
93
|
+
if (typeof body !== "undefined") {
|
|
51
94
|
ctx.body = body;
|
|
52
95
|
}
|
|
53
96
|
} catch (error) {
|
|
@@ -63,10 +106,10 @@ const createRouteHandler = handler => {
|
|
|
63
106
|
};
|
|
64
107
|
}
|
|
65
108
|
}
|
|
66
|
-
} else if ((0,
|
|
67
|
-
const result =
|
|
68
|
-
if (result.type !==
|
|
69
|
-
if (result.type ===
|
|
109
|
+
} else if ((0, import_bff_runtime.isSchemaHandler)(handler)) {
|
|
110
|
+
const result = yield handler(input);
|
|
111
|
+
if (result.type !== "HandleSuccess") {
|
|
112
|
+
if (result.type === "InputValidationError") {
|
|
70
113
|
ctx.status = 400;
|
|
71
114
|
} else {
|
|
72
115
|
ctx.status = 500;
|
|
@@ -77,33 +120,34 @@ const createRouteHandler = handler => {
|
|
|
77
120
|
}
|
|
78
121
|
} else {
|
|
79
122
|
const args = Object.values(input.params).concat(input);
|
|
80
|
-
const body =
|
|
81
|
-
if (typeof body !==
|
|
123
|
+
const body = yield handler(...args);
|
|
124
|
+
if (typeof body !== "undefined") {
|
|
82
125
|
ctx.body = body;
|
|
83
126
|
}
|
|
84
127
|
}
|
|
85
|
-
};
|
|
86
|
-
Object.defineProperties(
|
|
128
|
+
});
|
|
129
|
+
Object.defineProperties(
|
|
130
|
+
apiHandler,
|
|
131
|
+
Object.getOwnPropertyDescriptors(handler)
|
|
132
|
+
);
|
|
87
133
|
return apiHandler;
|
|
88
134
|
};
|
|
89
|
-
|
|
90
|
-
const
|
|
91
|
-
exports.isNormalMethod = isNormalMethod;
|
|
92
|
-
const getInputFromRequest = async ctx => {
|
|
135
|
+
const isNormalMethod = (httpMethod) => import_bff_core.httpMethods.includes(httpMethod);
|
|
136
|
+
const getInputFromRequest = (ctx) => __async(void 0, null, function* () {
|
|
93
137
|
const draft = {
|
|
94
138
|
params: ctx.params,
|
|
95
139
|
query: ctx.query,
|
|
96
140
|
headers: ctx.headers,
|
|
97
141
|
cookies: ctx.headers.cookie
|
|
98
142
|
};
|
|
99
|
-
if (
|
|
143
|
+
if (import_type_is.default.is(ctx.request.type, ["application/json"])) {
|
|
100
144
|
draft.data = ctx.request.body;
|
|
101
|
-
} else if (
|
|
145
|
+
} else if (import_type_is.default.is(ctx.request.type, ["multipart/form-data"])) {
|
|
102
146
|
draft.formData = ctx.request.files;
|
|
103
|
-
} else if (
|
|
147
|
+
} else if (import_type_is.default.is(ctx.request.type, ["application/x-www-form-urlencoded"])) {
|
|
104
148
|
draft.formUrlencoded = ctx.request.body;
|
|
105
149
|
} else {
|
|
106
150
|
draft.body = ctx.request.body;
|
|
107
151
|
}
|
|
108
152
|
return draft;
|
|
109
|
-
};
|
|
153
|
+
});
|