@jiangnian520/midway-response 1.0.1 → 1.0.2
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.
|
@@ -47,27 +47,33 @@ let ResponseMiddleware = class ResponseMiddleware {
|
|
|
47
47
|
resolve() {
|
|
48
48
|
return async (ctx, next) => {
|
|
49
49
|
const start = Date.now();
|
|
50
|
-
const stTime = new Date().toISOString();
|
|
51
|
-
// 将开始时间挂载到 ctx 上,给异常过滤器用
|
|
50
|
+
const stTime = new Date().toISOString();
|
|
52
51
|
ctx.state.__req_start_time__ = stTime;
|
|
53
52
|
ctx.state.__req_start_ms__ = start;
|
|
54
53
|
await next();
|
|
55
|
-
|
|
54
|
+
const end = Date.now();
|
|
55
|
+
const edTime = new Date().toISOString();
|
|
56
|
+
const waste = `${end - start}ms`;
|
|
57
|
+
// 1. 如果是文件流或 Buffer,不处理
|
|
56
58
|
if (ctx.body === undefined ||
|
|
57
59
|
ctx.body === null ||
|
|
58
60
|
ctx.body instanceof stream.Stream ||
|
|
59
61
|
Buffer.isBuffer(ctx.body)) {
|
|
60
62
|
return;
|
|
61
63
|
}
|
|
62
|
-
//
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
// ========================================================
|
|
65
|
+
// ✅ 核心兜底:如果是被其他组件拦截的纯文本响应(如限流)
|
|
66
|
+
// ========================================================
|
|
67
|
+
if (ctx.status >= 400 && typeof ctx.body === 'string') {
|
|
68
|
+
ctx.body = ajax_result_1.AjaxResult.error(ctx.status, ctx.body).withMeta(stTime, edTime, waste);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
// 2. 如果业务代码已经手动返回了 AjaxResult
|
|
66
72
|
if (ctx.body instanceof ajax_result_1.AjaxResult) {
|
|
67
73
|
ctx.body.withMeta(stTime, edTime, waste);
|
|
68
74
|
return;
|
|
69
75
|
}
|
|
70
|
-
// 3.
|
|
76
|
+
// 3. 正常成功的返回
|
|
71
77
|
if (ctx.status >= 200 && ctx.status < 300) {
|
|
72
78
|
ctx.body = ajax_result_1.AjaxResult.success(ctx.body).withMeta(stTime, edTime, waste);
|
|
73
79
|
}
|
|
@@ -81,4 +87,4 @@ exports.ResponseMiddleware = ResponseMiddleware;
|
|
|
81
87
|
exports.ResponseMiddleware = ResponseMiddleware = __decorate([
|
|
82
88
|
(0, core_1.Middleware)()
|
|
83
89
|
], ResponseMiddleware);
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UubWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL3Jlc3BvbnNlLm1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQTRDO0FBRzVDLCtDQUEyQztBQUMzQywrQ0FBaUM7QUFHMUIsSUFBTSxrQkFBa0IsR0FBeEIsTUFBTSxrQkFBa0I7SUFDM0IsT0FBTztRQUNILE9BQU8sS0FBSyxFQUFFLEdBQVksRUFBRSxJQUFrQixFQUFFLEVBQUU7WUFDOUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7WUFFeEMsR0FBRyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUM7WUFDdEMsR0FBRyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7WUFFbkMsTUFBTSxJQUFJLEVBQUUsQ0FBQztZQUViLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN2QixNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sS0FBSyxHQUFHLEdBQUcsR0FBRyxHQUFHLEtBQUssSUFBSSxDQUFDO1lBRWpDLHdCQUF3QjtZQUN4QixJQUNJLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUztnQkFDdEIsR0FBRyxDQUFDLElBQUksS0FBSyxJQUFJO2dCQUNqQixHQUFHLENBQUMsSUFBSSxZQUFZLE1BQU0sQ0FBQyxNQUFNO2dCQUNqQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFDM0IsQ0FBQztnQkFDQyxPQUFPO1lBQ1gsQ0FBQztZQUVELDJEQUEyRDtZQUMzRCwrQkFBK0I7WUFDL0IsMkRBQTJEO1lBQzNELElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNwRCxHQUFHLENBQUMsSUFBSSxHQUFHLHdCQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNsRixPQUFPO1lBQ1gsQ0FBQztZQUVELDhCQUE4QjtZQUM5QixJQUFJLEdBQUcsQ0FBQyxJQUFJLFlBQVksd0JBQVUsRUFBRSxDQUFDO2dCQUNqQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN6QyxPQUFPO1lBQ1gsQ0FBQztZQUVELGFBQWE7WUFDYixJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7Z0JBQ3hDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsd0JBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzVFLENBQUM7UUFDTCxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU87UUFDVixPQUFPLG9CQUFvQixDQUFDO0lBQ2hDLENBQUM7Q0FDSixDQUFBO0FBakRZLGdEQUFrQjs2QkFBbEIsa0JBQWtCO0lBRDlCLElBQUEsaUJBQVUsR0FBRTtHQUNBLGtCQUFrQixDQWlEOUIifQ==
|