@eggjs/onerror 3.0.0 → 3.0.1-beta.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.
Files changed (57) hide show
  1. package/README.md +2 -6
  2. package/dist/agent.d.ts +10 -0
  3. package/dist/agent.js +15 -0
  4. package/dist/app.d.ts +16 -0
  5. package/dist/app.js +111 -0
  6. package/{src/config/config.default.ts → dist/config/config.default.d.ts} +8 -12
  7. package/dist/config/config.default.js +11 -0
  8. package/dist/index.d.ts +1 -0
  9. package/dist/index.js +1 -0
  10. package/dist/lib/error_view.d.ts +158 -0
  11. package/dist/lib/error_view.js +224 -0
  12. package/dist/{commonjs/lib → lib}/onerror_page.mustache.html +1 -1
  13. package/dist/lib/utils.d.ts +10 -0
  14. package/dist/lib/utils.js +21 -0
  15. package/dist/types.d.ts +10 -0
  16. package/dist/types.js +1 -0
  17. package/package.json +33 -55
  18. package/dist/commonjs/agent.d.ts +0 -6
  19. package/dist/commonjs/agent.js +0 -16
  20. package/dist/commonjs/app.d.ts +0 -12
  21. package/dist/commonjs/app.js +0 -150
  22. package/dist/commonjs/config/config.default.d.ts +0 -27
  23. package/dist/commonjs/config/config.default.js +0 -15
  24. package/dist/commonjs/index.d.ts +0 -1
  25. package/dist/commonjs/index.js +0 -4
  26. package/dist/commonjs/lib/error_view.d.ts +0 -154
  27. package/dist/commonjs/lib/error_view.js +0 -248
  28. package/dist/commonjs/lib/utils.d.ts +0 -10
  29. package/dist/commonjs/lib/utils.js +0 -53
  30. package/dist/commonjs/package.json +0 -3
  31. package/dist/commonjs/types.d.ts +0 -7
  32. package/dist/commonjs/types.js +0 -3
  33. package/dist/esm/agent.d.ts +0 -6
  34. package/dist/esm/agent.js +0 -13
  35. package/dist/esm/app.d.ts +0 -12
  36. package/dist/esm/app.js +0 -144
  37. package/dist/esm/config/config.default.d.ts +0 -27
  38. package/dist/esm/config/config.default.js +0 -10
  39. package/dist/esm/index.d.ts +0 -1
  40. package/dist/esm/index.js +0 -2
  41. package/dist/esm/lib/error_view.d.ts +0 -154
  42. package/dist/esm/lib/error_view.js +0 -241
  43. package/dist/esm/lib/onerror_page.mustache.html +0 -761
  44. package/dist/esm/lib/utils.d.ts +0 -10
  45. package/dist/esm/lib/utils.js +0 -43
  46. package/dist/esm/package.json +0 -3
  47. package/dist/esm/types.d.ts +0 -7
  48. package/dist/esm/types.js +0 -2
  49. package/dist/package.json +0 -4
  50. package/src/agent.ts +0 -12
  51. package/src/app.ts +0 -160
  52. package/src/index.ts +0 -1
  53. package/src/lib/error_view.ts +0 -281
  54. package/src/lib/onerror_page.mustache.html +0 -761
  55. package/src/lib/utils.ts +0 -47
  56. package/src/types.ts +0 -12
  57. package/src/typings/index.d.ts +0 -4
@@ -1,248 +0,0 @@
1
- "use strict";
2
- // modify from https://github.com/poppinss/youch/blob/develop/src/Youch/index.js
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.ErrorView = void 0;
8
- const node_fs_1 = __importDefault(require("node:fs"));
9
- const node_path_1 = __importDefault(require("node:path"));
10
- const node_util_1 = __importDefault(require("node:util"));
11
- const cookie_1 = require("cookie");
12
- const mustache_1 = __importDefault(require("mustache"));
13
- const stack_trace_1 = __importDefault(require("stack-trace"));
14
- const utils_js_1 = require("./utils.js");
15
- const startingSlashRegex = /\\|\//;
16
- class ErrorView {
17
- ctx;
18
- error;
19
- request;
20
- app;
21
- assets;
22
- viewTemplate;
23
- codeContext = 5;
24
- _filterHeaders = ['cookie', 'connection'];
25
- constructor(ctx, error, template) {
26
- this.ctx = ctx;
27
- this.error = error;
28
- this.request = ctx.request;
29
- this.app = ctx.app;
30
- this.assets = new Map();
31
- this.viewTemplate = template;
32
- }
33
- /**
34
- * get html error page
35
- *
36
- * @return {String} html page
37
- */
38
- toHTML() {
39
- const stack = this.parseError();
40
- const data = this.serializeData(stack, (frame, index) => {
41
- const serializedFrame = this.serializeFrame(frame);
42
- serializedFrame.classes = this.getFrameClasses(frame, index);
43
- return serializedFrame;
44
- });
45
- return this.compileView(this.viewTemplate, {
46
- ...data,
47
- appInfo: this.serializeAppInfo(),
48
- request: this.serializeRequest(),
49
- });
50
- }
51
- /**
52
- * compile view
53
- *
54
- * @param {String} tpl - template
55
- * @param {Object} locals - data used by template
56
- */
57
- compileView(tpl, locals) {
58
- return mustache_1.default.render(tpl, locals);
59
- }
60
- /**
61
- * check if the frame is node native file.
62
- *
63
- * @param {Frame} frame - current frame
64
- */
65
- isNode(frame) {
66
- if (frame.isNative()) {
67
- return true;
68
- }
69
- const filename = frame.getFileName() || '';
70
- return !node_path_1.default.isAbsolute(filename) && filename[0] !== '.';
71
- }
72
- /**
73
- * check if the frame is app modules.
74
- *
75
- * @param {Object} frame - current frame
76
- */
77
- isApp(frame) {
78
- if (this.isNode(frame)) {
79
- return false;
80
- }
81
- const filename = frame.getFileName() || '';
82
- return !filename.includes('node_modules' + node_path_1.default.sep);
83
- }
84
- /**
85
- * cache file asserts
86
- *
87
- * @param {String} key - assert key
88
- * @param {String} value - assert content
89
- */
90
- setAssets(key, value) {
91
- this.assets.set(key, value);
92
- }
93
- /**
94
- * get cache file asserts
95
- *
96
- * @param {String} key - assert key
97
- */
98
- getAssets(key) {
99
- return this.assets.get(key);
100
- }
101
- /**
102
- * get frame source
103
- *
104
- * @param {Object} frame - current frame
105
- */
106
- getFrameSource(frame) {
107
- const filename = frame.getFileName();
108
- const lineNumber = frame.getLineNumber();
109
- let contents = this.getAssets(filename);
110
- if (!contents) {
111
- contents = node_fs_1.default.existsSync(filename) ? node_fs_1.default.readFileSync(filename, 'utf8') : '';
112
- this.setAssets(filename, contents);
113
- }
114
- const lines = contents.split(/\r?\n/);
115
- return {
116
- pre: lines.slice(Math.max(0, lineNumber - (this.codeContext + 1)), lineNumber - 1),
117
- line: lines[lineNumber - 1],
118
- post: lines.slice(lineNumber, lineNumber + this.codeContext),
119
- };
120
- }
121
- /**
122
- * parse error and return frame stack
123
- */
124
- parseError() {
125
- const stack = stack_trace_1.default.parse(this.error);
126
- return stack.map((frame) => {
127
- if (!this.isNode(frame)) {
128
- frame.context = this.getFrameSource(frame);
129
- }
130
- return frame;
131
- });
132
- }
133
- /**
134
- * get stack context
135
- *
136
- * @param {Object} frame - current frame
137
- */
138
- getContext(frame) {
139
- if (!frame.context) {
140
- return {};
141
- }
142
- return {
143
- start: frame.getLineNumber() - (frame.context.pre || []).length,
144
- pre: frame.context.pre.join('\n'),
145
- line: frame.context.line,
146
- post: frame.context.post.join('\n'),
147
- };
148
- }
149
- /**
150
- * get frame classes, let view identify the frame
151
- *
152
- * @param {any} frame - current frame
153
- * @param {any} index - current index
154
- */
155
- getFrameClasses(frame, index) {
156
- const classes = [];
157
- if (index === 0) {
158
- classes.push('active');
159
- }
160
- if (!this.isApp(frame)) {
161
- classes.push('native-frame');
162
- }
163
- return classes.join(' ');
164
- }
165
- /**
166
- * serialize frame and return meaningful data
167
- *
168
- * @param {Object} frame - current frame
169
- */
170
- serializeFrame(frame) {
171
- const filename = frame.getFileName();
172
- const relativeFileName = filename.includes(process.cwd())
173
- ? filename.replace(process.cwd(), '').replace(startingSlashRegex, '')
174
- : filename;
175
- const extname = node_path_1.default.extname(filename).replace('.', '');
176
- return {
177
- extname,
178
- file: relativeFileName,
179
- method: frame.getFunctionName(),
180
- line: frame.getLineNumber(),
181
- column: frame.getColumnNumber(),
182
- context: this.getContext(frame),
183
- classes: '',
184
- };
185
- }
186
- /**
187
- * serialize base data
188
- *
189
- * @param {Object} stack - frame stack
190
- * @param {Function} frameFormatter - frame formatter function
191
- */
192
- serializeData(stack, frameFormatter) {
193
- const code = Reflect.get(this.error, 'code') ?? Reflect.get(this.error, 'type');
194
- let message = (0, utils_js_1.detectErrorMessage)(this.ctx, this.error);
195
- if (code) {
196
- message = `${message} (code: ${code})`;
197
- }
198
- return {
199
- code,
200
- message,
201
- name: this.error.name,
202
- status: this.error.status,
203
- frames: stack instanceof Array ? stack.filter(frame => frame.getFileName()).map(frameFormatter) : [],
204
- };
205
- }
206
- /**
207
- * serialize request object
208
- */
209
- serializeRequest() {
210
- const headers = [];
211
- Object.keys(this.request.headers).forEach(key => {
212
- if (this._filterHeaders.includes(key)) {
213
- return;
214
- }
215
- headers.push({
216
- key,
217
- value: this.request.headers[key],
218
- });
219
- });
220
- const parsedCookies = (0, cookie_1.parse)(this.request.headers.cookie || '');
221
- const cookies = Object.keys(parsedCookies).map(key => {
222
- return { key, value: parsedCookies[key] };
223
- });
224
- return {
225
- url: this.request.url,
226
- httpVersion: this.request.req.httpVersion,
227
- method: this.request.method,
228
- connection: this.request.headers.connection,
229
- headers,
230
- cookies,
231
- };
232
- }
233
- /**
234
- * serialize app info object
235
- */
236
- serializeAppInfo() {
237
- let config = this.app.config;
238
- if ('dumpConfigToObject' in this.app && typeof this.app.dumpConfigToObject === 'function') {
239
- config = this.app.dumpConfigToObject().config.config;
240
- }
241
- return {
242
- baseDir: this.app.config.baseDir,
243
- config: node_util_1.default.inspect(config),
244
- };
245
- }
246
- }
247
- exports.ErrorView = ErrorView;
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3Jfdmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZXJyb3Jfdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsZ0ZBQWdGOzs7Ozs7QUFFaEYsc0RBQXlCO0FBQ3pCLDBEQUE2QjtBQUM3QiwwREFBNkI7QUFDN0IsbUNBQStCO0FBQy9CLHdEQUFnQztBQUNoQyw4REFBMEQ7QUFDMUQseUNBQWdEO0FBSWhELE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDO0FBWW5DLE1BQWEsU0FBUztJQUNwQixHQUFHLENBQVU7SUFDYixLQUFLLENBQWU7SUFDcEIsT0FBTyxDQUFxQjtJQUM1QixHQUFHLENBQWlCO0lBQ3BCLE1BQU0sQ0FBc0I7SUFDNUIsWUFBWSxDQUFTO0lBRXJCLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDaEIsY0FBYyxHQUFHLENBQUUsUUFBUSxFQUFFLFlBQVksQ0FBRSxDQUFDO0lBRTVDLFlBQVksR0FBWSxFQUFFLEtBQW1CLEVBQUUsUUFBZ0I7UUFDN0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7UUFDM0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU07UUFDSixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDdEQsTUFB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
@@ -1,10 +0,0 @@
1
- import type { Context, EggCore } from '@eggjs/core';
2
- import type { OnerrorError } from 'koa-onerror';
3
- export declare function detectErrorMessage(ctx: Context, err: OnerrorError): string;
4
- export declare function detectStatus(err: OnerrorError): number;
5
- export declare function accepts(ctx: Context): "json" | "js" | "html";
6
- export declare function isProd(app: EggCore): boolean;
7
- /**
8
- * Get the source directory name
9
- */
10
- export declare function getSourceDirname(): string;
@@ -1,53 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.detectErrorMessage = detectErrorMessage;
7
- exports.detectStatus = detectStatus;
8
- exports.accepts = accepts;
9
- exports.isProd = isProd;
10
- exports.getSourceDirname = getSourceDirname;
11
- const node_path_1 = __importDefault(require("node:path"));
12
- const node_url_1 = require("node:url");
13
- function detectErrorMessage(ctx, err) {
14
- // detect json parse error
15
- if (err.status === 400 &&
16
- err.name === 'SyntaxError' &&
17
- ctx.request.is('application/json', 'application/vnd.api+json', 'application/csp-report')) {
18
- return 'Problems parsing JSON';
19
- }
20
- return err.message;
21
- }
22
- function detectStatus(err) {
23
- // detect status
24
- let status = err.status || 500;
25
- if (status < 200) {
26
- // invalid status consider as 500, like urllib will return -1 status
27
- status = 500;
28
- }
29
- return status;
30
- }
31
- function accepts(ctx) {
32
- if (ctx.acceptJSON)
33
- return 'json';
34
- if (ctx.acceptJSONP)
35
- return 'js';
36
- return 'html';
37
- }
38
- function isProd(app) {
39
- return app.config.env !== 'local' && app.config.env !== 'unittest';
40
- }
41
- /**
42
- * Get the source directory name
43
- */
44
- function getSourceDirname() {
45
- if (typeof __dirname === 'string') {
46
- return node_path_1.default.dirname(__dirname);
47
- }
48
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
49
- // @ts-ignore
50
- const __filename = (0, node_url_1.fileURLToPath)('import_meta_url_placeholder_by_tshy_after');
51
- return node_path_1.default.dirname(node_path_1.default.dirname(__filename));
52
- }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBS0EsZ0RBUUM7QUFFRCxvQ0FRQztBQUVELDBCQUlDO0FBRUQsd0JBRUM7QUFLRCw0Q0FRQztBQTlDRCwwREFBNkI7QUFDN0IsdUNBQXlDO0FBSXpDLFNBQWdCLGtCQUFrQixDQUFDLEdBQVksRUFBRSxHQUFpQjtJQUNoRSwwQkFBMEI7SUFDMUIsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUc7UUFDbEIsR0FBRyxDQUFDLElBQUksS0FBSyxhQUFhO1FBQzFCLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLGtCQUFrQixFQUFFLDBCQUEwQixFQUFFLHdCQUF3QixDQUFDLEVBQUUsQ0FBQztRQUM3RixPQUFPLHVCQUF1QixDQUFDO0lBQ2pDLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUM7QUFDckIsQ0FBQztBQUVELFNBQWdCLFlBQVksQ0FBQyxHQUFpQjtJQUM1QyxnQkFBZ0I7SUFDaEIsSUFBSSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUM7SUFDL0IsSUFBSSxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDakIsb0VBQW9FO1FBQ3BFLE1BQU0sR0FBRyxHQUFHLENBQUM7SUFDZixDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELFNBQWdCLE9BQU8sQ0FBQyxHQUFZO0lBQ2xDLElBQUksR0FBRyxDQUFDLFVBQVU7UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUNsQyxJQUFJLEdBQUcsQ0FBQyxXQUFXO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDakMsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELFNBQWdCLE1BQU0sQ0FBQyxHQUFZO0lBQ2pDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssT0FBTyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLFVBQVUsQ0FBQztBQUNyRSxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0I7SUFDOUIsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNsQyxPQUFPLG1CQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDRCw2REFBNkQ7SUFDN0QsYUFBYTtJQUNiLE1BQU0sVUFBVSxHQUFHLElBQUEsd0JBQWEsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELE9BQU8sbUJBQUksQ0FBQyxPQUFPLENBQUMsbUJBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUNoRCxDQUFDIn0=
@@ -1,3 +0,0 @@
1
- {
2
- "type": "commonjs"
3
- }
@@ -1,7 +0,0 @@
1
- import type { OnerrorConfig } from './config/config.default.js';
2
- export type { OnerrorConfig };
3
- declare module '@eggjs/core' {
4
- interface EggAppConfig {
5
- onerror: OnerrorConfig;
6
- }
7
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -1,6 +0,0 @@
1
- import type { ILifecycleBoot, EggCore } from '@eggjs/core';
2
- export default class Boot implements ILifecycleBoot {
3
- private agent;
4
- constructor(agent: EggCore);
5
- didLoad(): Promise<void>;
6
- }
package/dist/esm/agent.js DELETED
@@ -1,13 +0,0 @@
1
- export default class Boot {
2
- agent;
3
- constructor(agent) {
4
- this.agent = agent;
5
- }
6
- async didLoad() {
7
- // should watch error event
8
- this.agent.on('error', err => {
9
- this.agent.coreLogger.error(err);
10
- });
11
- }
12
- }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE9BQU8sT0FBTyxJQUFJO0lBQ0g7SUFBcEIsWUFBb0IsS0FBYztRQUFkLFVBQUssR0FBTCxLQUFLLENBQVM7SUFBRyxDQUFDO0lBRXRDLEtBQUssQ0FBQyxPQUFPO1FBQ1gsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRTtZQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YifQ==
package/dist/esm/app.d.ts DELETED
@@ -1,12 +0,0 @@
1
- import { type OnerrorError } from 'koa-onerror';
2
- import type { ILifecycleBoot, EggCore } from '@eggjs/core';
3
- export interface OnerrorErrorWithCode extends OnerrorError {
4
- code?: string;
5
- type?: string;
6
- errors?: any[];
7
- }
8
- export default class Boot implements ILifecycleBoot {
9
- private app;
10
- constructor(app: EggCore);
11
- didLoad(): Promise<void>;
12
- }
package/dist/esm/app.js DELETED
@@ -1,144 +0,0 @@
1
- import http from 'node:http';
2
- import fs from 'node:fs';
3
- import { onerror } from 'koa-onerror';
4
- import { ErrorView } from './lib/error_view.js';
5
- import { isProd, detectStatus, detectErrorMessage, accepts } from './lib/utils.js';
6
- export default class Boot {
7
- app;
8
- constructor(app) {
9
- this.app = app;
10
- }
11
- async didLoad() {
12
- // logging error
13
- const config = this.app.config.onerror;
14
- const viewTemplate = fs.readFileSync(config.templatePath, 'utf8');
15
- const app = this.app;
16
- app.on('error', (err, ctx) => {
17
- if (!ctx) {
18
- ctx = app.currentContext || app.createAnonymousContext();
19
- }
20
- if (config.appErrorFilter && !config.appErrorFilter(err, ctx))
21
- return;
22
- const status = detectStatus(err);
23
- // 5xx
24
- if (status >= 500) {
25
- try {
26
- ctx.logger.error(err);
27
- }
28
- catch (ex) {
29
- app.logger.error(err);
30
- app.logger.error(ex);
31
- }
32
- return;
33
- }
34
- // 4xx
35
- try {
36
- ctx.logger.warn(err);
37
- }
38
- catch (ex) {
39
- app.logger.warn(err);
40
- app.logger.error(ex);
41
- }
42
- });
43
- const errorOptions = {
44
- // support customize accepts function
45
- accepts() {
46
- const fn = config.accepts || accepts;
47
- return fn(this);
48
- },
49
- html(err, ctx) {
50
- const status = detectStatus(err);
51
- const errorPageUrl = typeof config.errorPageUrl === 'function'
52
- ? config.errorPageUrl(err, ctx)
53
- : config.errorPageUrl;
54
- // keep the real response status
55
- ctx.realStatus = status;
56
- // don't respond any error message in production env
57
- if (isProd(app)) {
58
- // 5xx
59
- if (status >= 500) {
60
- if (errorPageUrl) {
61
- const statusQuery = (errorPageUrl.indexOf('?') > 0 ? '&' : '?') +
62
- `real_status=${status}`;
63
- return ctx.redirect(errorPageUrl + statusQuery);
64
- }
65
- ctx.status = 500;
66
- ctx.body = `<h2>Internal Server Error, real status: ${status}</h2>`;
67
- return;
68
- }
69
- // 4xx
70
- ctx.status = status;
71
- ctx.body = `<h2>${status} ${http.STATUS_CODES[status]}</h2>`;
72
- return;
73
- }
74
- // show simple error format for unittest
75
- if (app.config.env === 'unittest') {
76
- ctx.status = status;
77
- ctx.body = `${err.name}: ${err.message}\n${err.stack}`;
78
- return;
79
- }
80
- const errorView = new ErrorView(ctx, err, viewTemplate);
81
- ctx.body = errorView.toHTML();
82
- },
83
- json(err, ctx) {
84
- const status = detectStatus(err);
85
- let errorJson = {};
86
- ctx.status = status;
87
- const code = err.code ?? err.type;
88
- const message = detectErrorMessage(ctx, err);
89
- if (isProd(app)) {
90
- // 5xx server side error
91
- if (status >= 500) {
92
- errorJson = {
93
- code,
94
- // don't respond any error message in production env
95
- message: http.STATUS_CODES[status],
96
- };
97
- }
98
- else {
99
- // 4xx client side error
100
- // addition `errors`
101
- errorJson = {
102
- code,
103
- message,
104
- errors: err.errors,
105
- };
106
- }
107
- }
108
- else {
109
- errorJson = {
110
- code,
111
- message,
112
- errors: err.errors,
113
- };
114
- if (status >= 500) {
115
- // provide detail error stack in local env
116
- errorJson.stack = err.stack;
117
- errorJson.name = err.name;
118
- for (const key in err) {
119
- if (!errorJson[key]) {
120
- errorJson[key] = err[key];
121
- }
122
- }
123
- }
124
- }
125
- ctx.body = errorJson;
126
- },
127
- js(err, ctx) {
128
- errorOptions.json.call(ctx, err, ctx);
129
- if (ctx.createJsonpBody) {
130
- ctx.createJsonpBody(ctx.body);
131
- }
132
- },
133
- };
134
- // support customize error response
135
- const keys = ['all', 'html', 'json', 'text', 'js'];
136
- for (const type of keys) {
137
- if (config[type]) {
138
- Reflect.set(errorOptions, type, config[type]);
139
- }
140
- }
141
- onerror(app, errorOptions);
142
- }
143
- }
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFDN0IsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pCLE9BQU8sRUFBRSxPQUFPLEVBQTBDLE1BQU0sYUFBYSxDQUFDO0FBRTlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVNuRixNQUFNLENBQUMsT0FBTyxPQUFPLElBQUk7SUFDSDtJQUFwQixZQUFvQixHQUFZO1FBQVosUUFBRyxHQUFILEdBQUcsQ0FBUztJQUFHLENBQUM7SUFFcEMsS0FBSyxDQUFDLE9BQU87UUFDWCxnQkFBZ0I7UUFDaEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ3ZDLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsRSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ3JCLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQzNCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDVCxHQUFHLEdBQUcsR0FBRyxDQUFDLGNBQWMsSUFBSSxHQUFHLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUMzRCxDQUFDO1lBQ0QsSUFBSSxNQUFNLENBQUMsY0FBYyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO2dCQUFFLE9BQU87WUFFdEUsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pDLE1BQU07WUFDTixJQUFJLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDO29CQUNILEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN4QixDQUFDO2dCQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7b0JBQ1osR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3RCLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN2QixDQUFDO2dCQUNELE9BQU87WUFDVCxDQUFDO1lBRUQsTUFBTTtZQUNOLElBQUksQ0FBQztnQkFDSCxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QixDQUFDO1lBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztnQkFDWixHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDckIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdkIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxZQUFZLEdBQW1CO1lBQ25DLHFDQUFxQztZQUNyQyxPQUFPO2dCQUNMLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDO2dCQUNyQyxPQUFPLEVBQUUsQ0FBQyxJQUFXLENBQUMsQ0FBQztZQUN6QixDQUFDO1lBRUQsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFZO2dCQUNwQixNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2pDLE1BQU0sWUFBWSxHQUFHLE9BQU8sTUFBTSxDQUFDLFlBQVksS0FBSyxVQUFVO29CQUM1RCxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO29CQUMvQixDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztnQkFFeEIsZ0NBQWdDO2dCQUNoQyxHQUFHLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztnQkFDeEIsb0RBQW9EO2dCQUNwRCxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUNoQixNQUFNO29CQUNOLElBQUksTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO3dCQUNsQixJQUFJLFlBQVksRUFBRSxDQUFDOzRCQUNqQixNQUFNLFdBQVcsR0FDZixDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztnQ0FDM0MsZUFBZSxNQUFNLEVBQUUsQ0FBQzs0QkFDMUIsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUMsQ0FBQzt3QkFDbEQsQ0FBQzt3QkFDRCxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQzt3QkFDakIsR0FBRyxDQUFDLElBQUksR0FBRywyQ0FBMkMsTUFBTSxPQUFPLENBQUM7d0JBQ3BFLE9BQU87b0JBQ1QsQ0FBQztvQkFDRCxNQUFNO29CQUNOLEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO29CQUNwQixHQUFHLENBQUMsSUFBSSxHQUFHLE9BQU8sTUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztvQkFDN0QsT0FBTztnQkFDVCxDQUFDO2dCQUNELHdDQUF3QztnQkFDeEMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxVQUFVLEVBQUUsQ0FBQztvQkFDbEMsR0FBRyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7b0JBQ3BCLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxPQUFPLEtBQUssR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUN2RCxPQUFPO2dCQUNULENBQUM7Z0JBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQztnQkFDeEQsR0FBRyxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEMsQ0FBQztZQUVELElBQUksQ0FBQyxHQUF5QixFQUFFLEdBQVk7Z0JBQzFDLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDakMsSUFBSSxTQUFTLEdBQXdCLEVBQUUsQ0FBQztnQkFFeEMsR0FBRyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Z0JBQ3BCLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDbEMsTUFBTSxPQUFPLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUU3QyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUNoQix3QkFBd0I7b0JBQ3hCLElBQUksTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO3dCQUNsQixTQUFTLEdBQUc7NEJBQ1YsSUFBSTs0QkFDSixvREFBb0Q7NEJBQ3BELE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQzt5QkFDbkMsQ0FBQztvQkFDSixDQUFDO3lCQUFNLENBQUM7d0JBQ04sd0JBQXdCO3dCQUN4QixvQkFBb0I7d0JBQ3BCLFNBQVMsR0FBRzs0QkFDVixJQUFJOzRCQUNKLE9BQU87NEJBQ1AsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNO3lCQUNuQixDQUFDO29CQUNKLENBQUM7Z0JBQ0gsQ0FBQztxQkFBTSxDQUFDO29CQUNOLFNBQVMsR0FBRzt3QkFDVixJQUFJO3dCQUNKLE9BQU87d0JBQ1AsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNO3FCQUNuQixDQUFDO29CQUVGLElBQUksTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO3dCQUNsQiwwQ0FBMEM7d0JBQzFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQzt3QkFDNUIsU0FBUyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO3dCQUMxQixLQUFLLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDOzRCQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0NBQ3BCLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBSSxHQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7NEJBQ3JDLENBQUM7d0JBQ0gsQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUM7Z0JBRUQsR0FBRyxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7WUFDdkIsQ0FBQztZQUVELEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBWTtnQkFDbEIsWUFBWSxDQUFDLElBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFFdkMsSUFBSSxHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7b0JBQ3hCLEdBQUcsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoQyxDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUM7UUFFRixtQ0FBbUM7UUFDbkMsTUFBTSxJQUFJLEdBQTRCLENBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBRSxDQUFDO1FBQzlFLEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7WUFDeEIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ2hELENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUM3QixDQUFDO0NBQ0YifQ==
@@ -1,27 +0,0 @@
1
- import type { Context } from '@eggjs/core';
2
- import type { OnerrorError, OnerrorOptions } from 'koa-onerror';
3
- export interface OnerrorConfig extends OnerrorOptions {
4
- /**
5
- * 5xx error will redirect to ${errorPageUrl}
6
- * won't redirect in local env
7
- *
8
- * Default: `''`
9
- */
10
- errorPageUrl: string | ((err: OnerrorError, ctx: Context) => string);
11
- /**
12
- * will execute `appErrorFilter` when emit an error in `app`
13
- * If `appErrorFilter` return false, egg-onerror won't log this error.
14
- * You can logging in `appErrorFilter` and return false to override the default error logging.
15
- *
16
- * Default: `undefined`
17
- */
18
- appErrorFilter?: (err: OnerrorError, ctx: Context) => boolean;
19
- /**
20
- * default template path
21
- */
22
- templatePath: string;
23
- }
24
- declare const _default: {
25
- onerror: OnerrorConfig;
26
- };
27
- export default _default;
@@ -1,10 +0,0 @@
1
- import path from 'node:path';
2
- import { getSourceDirname } from '../lib/utils.js';
3
- export default {
4
- onerror: {
5
- errorPageUrl: '',
6
- appErrorFilter: undefined,
7
- templatePath: path.join(getSourceDirname(), 'lib/onerror_page.mustache.html'),
8
- },
9
- };
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uZmlnL2NvbmZpZy5kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUc3QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQXdCbkQsZUFBZTtJQUNiLE9BQU8sRUFBRTtRQUNQLFlBQVksRUFBRSxFQUFFO1FBQ2hCLGNBQWMsRUFBRSxTQUFTO1FBQ3pCLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsZ0NBQWdDLENBQUM7S0FDN0Q7Q0FDbkIsQ0FBQyJ9
@@ -1 +0,0 @@
1
- import './types.js';
package/dist/esm/index.js DELETED
@@ -1,2 +0,0 @@
1
- import './types.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxZQUFZLENBQUMifQ==