@eggjs/onerror 3.0.0 → 3.0.1-beta.1

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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eggjs/onerror",
3
- "version": "3.0.0",
3
+ "version": "3.0.1-beta.1",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -9,16 +9,13 @@
9
9
  "name": "onerror",
10
10
  "optionalDependencies": [
11
11
  "jsonp"
12
- ],
13
- "exports": {
14
- "import": "./dist/esm",
15
- "require": "./dist/commonjs",
16
- "typescript": "./src"
17
- }
12
+ ]
18
13
  },
14
+ "homepage": "https://github.com/eggjs/egg/tree/next/plugins/onerror",
19
15
  "repository": {
20
16
  "type": "git",
21
- "url": "https://github.com/eggjs/onerror.git"
17
+ "url": "git://github.com/eggjs/egg.git",
18
+ "directory": "plugins/onerror"
22
19
  },
23
20
  "keywords": [
24
21
  "egg",
@@ -27,67 +24,48 @@
27
24
  ],
28
25
  "author": "dead_horse",
29
26
  "engines": {
30
- "node": ">= 18.19.0"
27
+ "node": ">= 20.19.0"
31
28
  },
32
29
  "dependencies": {
33
- "@eggjs/core": "^6.3.1",
34
30
  "cookie": "^1.0.2",
35
31
  "koa-onerror": "^5.0.1",
36
32
  "mustache": "^4.2.0",
37
33
  "stack-trace": "^0.0.10"
38
34
  },
35
+ "peerDependencies": {
36
+ "egg": "4.1.0-beta.9"
37
+ },
39
38
  "devDependencies": {
40
- "@arethetypeswrong/cli": "^0.17.3",
41
- "@eggjs/bin": "7",
42
- "@eggjs/mock": "^6.0.5",
43
- "@eggjs/tsconfig": "1",
44
- "@types/mocha": "10",
45
39
  "@types/mustache": "^4.2.5",
46
- "@types/node": "22",
40
+ "@types/node": "24.5.2",
47
41
  "@types/stack-trace": "^0.0.33",
48
- "egg": "^4.0.4",
49
- "eslint": "8",
50
- "eslint-config-egg": "14",
51
- "rimraf": "6",
52
- "tshy": "3",
53
- "tshy-after": "1",
54
- "typescript": "5"
55
- },
56
- "scripts": {
57
- "lint": "eslint --cache src test --ext .ts",
58
- "pretest": "npm run clean && npm run lint -- --fix",
59
- "test": "egg-bin test",
60
- "preci": "npm run clean && npm run lint",
61
- "ci": "egg-bin cov",
62
- "postci": "npm run prepublishOnly && npm run clean",
63
- "clean": "rimraf dist",
64
- "prepublishOnly": "tshy && tshy-after && attw --pack"
42
+ "tsdown": "0.15.3",
43
+ "typescript": "5.9.2",
44
+ "vitest": "4.0.0-beta.11",
45
+ "@eggjs/mock": "6.1.0-beta.9",
46
+ "egg": "4.1.0-beta.9"
65
47
  },
66
48
  "type": "module",
67
- "tshy": {
68
- "exports": {
69
- ".": "./src/index.ts",
70
- "./package.json": "./package.json"
71
- }
72
- },
73
49
  "exports": {
74
- ".": {
75
- "import": {
76
- "types": "./dist/esm/index.d.ts",
77
- "default": "./dist/esm/index.js"
78
- },
79
- "require": {
80
- "types": "./dist/commonjs/index.d.ts",
81
- "default": "./dist/commonjs/index.js"
82
- }
83
- },
50
+ ".": "./dist/index.js",
51
+ "./agent": "./dist/agent.js",
52
+ "./app": "./dist/app.js",
53
+ "./config/config.default": "./dist/config/config.default.js",
54
+ "./lib/error_view": "./dist/lib/error_view.js",
55
+ "./lib/utils": "./dist/lib/utils.js",
56
+ "./types": "./dist/types.js",
84
57
  "./package.json": "./package.json"
85
58
  },
86
59
  "files": [
87
- "dist",
88
- "src"
60
+ "dist"
89
61
  ],
90
- "types": "./dist/commonjs/index.d.ts",
91
- "main": "./dist/commonjs/index.js",
92
- "module": "./dist/esm/index.js"
93
- }
62
+ "types": "./dist/index.d.ts",
63
+ "main": "./dist/index.js",
64
+ "module": "./dist/index.js",
65
+ "scripts": {
66
+ "lint": "oxlint --type-aware",
67
+ "typecheck": "tsc --noEmit",
68
+ "test": "vitest run",
69
+ "build": "tsdown"
70
+ }
71
+ }
@@ -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
- }
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- class Boot {
4
- agent;
5
- constructor(agent) {
6
- this.agent = agent;
7
- }
8
- async didLoad() {
9
- // should watch error event
10
- this.agent.on('error', err => {
11
- this.agent.coreLogger.error(err);
12
- });
13
- }
14
- }
15
- exports.default = Boot;
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSxNQUFxQixJQUFJO0lBQ0g7SUFBcEIsWUFBb0IsS0FBYztRQUFkLFVBQUssR0FBTCxLQUFLLENBQVM7SUFBRyxDQUFDO0lBRXRDLEtBQUssQ0FBQyxPQUFPO1FBQ1gsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRTtZQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFURCx1QkFTQyJ9
@@ -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
- }
@@ -1,150 +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
- const node_http_1 = __importDefault(require("node:http"));
7
- const node_fs_1 = __importDefault(require("node:fs"));
8
- const koa_onerror_1 = require("koa-onerror");
9
- const error_view_js_1 = require("./lib/error_view.js");
10
- const utils_js_1 = require("./lib/utils.js");
11
- class Boot {
12
- app;
13
- constructor(app) {
14
- this.app = app;
15
- }
16
- async didLoad() {
17
- // logging error
18
- const config = this.app.config.onerror;
19
- const viewTemplate = node_fs_1.default.readFileSync(config.templatePath, 'utf8');
20
- const app = this.app;
21
- app.on('error', (err, ctx) => {
22
- if (!ctx) {
23
- ctx = app.currentContext || app.createAnonymousContext();
24
- }
25
- if (config.appErrorFilter && !config.appErrorFilter(err, ctx))
26
- return;
27
- const status = (0, utils_js_1.detectStatus)(err);
28
- // 5xx
29
- if (status >= 500) {
30
- try {
31
- ctx.logger.error(err);
32
- }
33
- catch (ex) {
34
- app.logger.error(err);
35
- app.logger.error(ex);
36
- }
37
- return;
38
- }
39
- // 4xx
40
- try {
41
- ctx.logger.warn(err);
42
- }
43
- catch (ex) {
44
- app.logger.warn(err);
45
- app.logger.error(ex);
46
- }
47
- });
48
- const errorOptions = {
49
- // support customize accepts function
50
- accepts() {
51
- const fn = config.accepts || utils_js_1.accepts;
52
- return fn(this);
53
- },
54
- html(err, ctx) {
55
- const status = (0, utils_js_1.detectStatus)(err);
56
- const errorPageUrl = typeof config.errorPageUrl === 'function'
57
- ? config.errorPageUrl(err, ctx)
58
- : config.errorPageUrl;
59
- // keep the real response status
60
- ctx.realStatus = status;
61
- // don't respond any error message in production env
62
- if ((0, utils_js_1.isProd)(app)) {
63
- // 5xx
64
- if (status >= 500) {
65
- if (errorPageUrl) {
66
- const statusQuery = (errorPageUrl.indexOf('?') > 0 ? '&' : '?') +
67
- `real_status=${status}`;
68
- return ctx.redirect(errorPageUrl + statusQuery);
69
- }
70
- ctx.status = 500;
71
- ctx.body = `<h2>Internal Server Error, real status: ${status}</h2>`;
72
- return;
73
- }
74
- // 4xx
75
- ctx.status = status;
76
- ctx.body = `<h2>${status} ${node_http_1.default.STATUS_CODES[status]}</h2>`;
77
- return;
78
- }
79
- // show simple error format for unittest
80
- if (app.config.env === 'unittest') {
81
- ctx.status = status;
82
- ctx.body = `${err.name}: ${err.message}\n${err.stack}`;
83
- return;
84
- }
85
- const errorView = new error_view_js_1.ErrorView(ctx, err, viewTemplate);
86
- ctx.body = errorView.toHTML();
87
- },
88
- json(err, ctx) {
89
- const status = (0, utils_js_1.detectStatus)(err);
90
- let errorJson = {};
91
- ctx.status = status;
92
- const code = err.code ?? err.type;
93
- const message = (0, utils_js_1.detectErrorMessage)(ctx, err);
94
- if ((0, utils_js_1.isProd)(app)) {
95
- // 5xx server side error
96
- if (status >= 500) {
97
- errorJson = {
98
- code,
99
- // don't respond any error message in production env
100
- message: node_http_1.default.STATUS_CODES[status],
101
- };
102
- }
103
- else {
104
- // 4xx client side error
105
- // addition `errors`
106
- errorJson = {
107
- code,
108
- message,
109
- errors: err.errors,
110
- };
111
- }
112
- }
113
- else {
114
- errorJson = {
115
- code,
116
- message,
117
- errors: err.errors,
118
- };
119
- if (status >= 500) {
120
- // provide detail error stack in local env
121
- errorJson.stack = err.stack;
122
- errorJson.name = err.name;
123
- for (const key in err) {
124
- if (!errorJson[key]) {
125
- errorJson[key] = err[key];
126
- }
127
- }
128
- }
129
- }
130
- ctx.body = errorJson;
131
- },
132
- js(err, ctx) {
133
- errorOptions.json.call(ctx, err, ctx);
134
- if (ctx.createJsonpBody) {
135
- ctx.createJsonpBody(ctx.body);
136
- }
137
- },
138
- };
139
- // support customize error response
140
- const keys = ['all', 'html', 'json', 'text', 'js'];
141
- for (const type of keys) {
142
- if (config[type]) {
143
- Reflect.set(errorOptions, type, config[type]);
144
- }
145
- }
146
- (0, koa_onerror_1.onerror)(app, errorOptions);
147
- }
148
- }
149
- exports.default = Boot;
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDBEQUE2QjtBQUM3QixzREFBeUI7QUFDekIsNkNBQThFO0FBRTlFLHVEQUFnRDtBQUNoRCw2Q0FBbUY7QUFTbkYsTUFBcUIsSUFBSTtJQUNIO0lBQXBCLFlBQW9CLEdBQVk7UUFBWixRQUFHLEdBQUgsR0FBRyxDQUFTO0lBQUcsQ0FBQztJQUVwQyxLQUFLLENBQUMsT0FBTztRQUNYLGdCQUFnQjtRQUNoQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDdkMsTUFBTSxZQUFZLEdBQUcsaUJBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsRSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ3JCLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQzNCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDVCxHQUFHLEdBQUcsR0FBRyxDQUFDLGNBQWMsSUFBSSxHQUFHLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUMzRCxDQUFDO1lBQ0QsSUFBSSxNQUFNLENBQUMsY0FBYyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO2dCQUFFLE9BQU87WUFFdEUsTUFBTSxNQUFNLEdBQUcsSUFBQSx1QkFBWSxFQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pDLE1BQU07WUFDTixJQUFJLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDO29CQUNILEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN4QixDQUFDO2dCQUFDLE9BQU8s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
@@ -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,15 +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
- const node_path_1 = __importDefault(require("node:path"));
7
- const utils_js_1 = require("../lib/utils.js");
8
- exports.default = {
9
- onerror: {
10
- errorPageUrl: '',
11
- appErrorFilter: undefined,
12
- templatePath: node_path_1.default.join((0, utils_js_1.getSourceDirname)(), 'lib/onerror_page.mustache.html'),
13
- },
14
- };
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uZmlnL2NvbmZpZy5kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMERBQTZCO0FBRzdCLDhDQUFtRDtBQXdCbkQsa0JBQWU7SUFDYixPQUFPLEVBQUU7UUFDUCxZQUFZLEVBQUUsRUFBRTtRQUNoQixjQUFjLEVBQUUsU0FBUztRQUN6QixZQUFZLEVBQUUsbUJBQUksQ0FBQyxJQUFJLENBQUMsSUFBQSwyQkFBZ0IsR0FBRSxFQUFFLGdDQUFnQyxDQUFDO0tBQzdEO0NBQ25CLENBQUMifQ==
@@ -1 +0,0 @@
1
- import './types.js';
@@ -1,4 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- require("./types.js");
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzQkFBb0IifQ==
@@ -1,154 +0,0 @@
1
- import { type StackFrame } from 'stack-trace';
2
- import type { OnerrorError } from 'koa-onerror';
3
- import type { Context } from '@eggjs/core';
4
- export interface FrameSource {
5
- pre: string[];
6
- line: string;
7
- post: string[];
8
- }
9
- export interface Frame extends StackFrame {
10
- context?: FrameSource;
11
- }
12
- export declare class ErrorView {
13
- ctx: Context;
14
- error: OnerrorError;
15
- request: Context['request'];
16
- app: Context['app'];
17
- assets: Map<string, string>;
18
- viewTemplate: string;
19
- codeContext: number;
20
- _filterHeaders: string[];
21
- constructor(ctx: Context, error: OnerrorError, template: string);
22
- /**
23
- * get html error page
24
- *
25
- * @return {String} html page
26
- */
27
- toHTML(): string;
28
- /**
29
- * compile view
30
- *
31
- * @param {String} tpl - template
32
- * @param {Object} locals - data used by template
33
- */
34
- compileView(tpl: string, locals: Record<string, unknown>): string;
35
- /**
36
- * check if the frame is node native file.
37
- *
38
- * @param {Frame} frame - current frame
39
- */
40
- isNode(frame: Frame): boolean;
41
- /**
42
- * check if the frame is app modules.
43
- *
44
- * @param {Object} frame - current frame
45
- */
46
- isApp(frame: Frame): boolean;
47
- /**
48
- * cache file asserts
49
- *
50
- * @param {String} key - assert key
51
- * @param {String} value - assert content
52
- */
53
- setAssets(key: string, value: string): void;
54
- /**
55
- * get cache file asserts
56
- *
57
- * @param {String} key - assert key
58
- */
59
- getAssets(key: string): string | undefined;
60
- /**
61
- * get frame source
62
- *
63
- * @param {Object} frame - current frame
64
- */
65
- getFrameSource(frame: StackFrame): FrameSource;
66
- /**
67
- * parse error and return frame stack
68
- */
69
- parseError(): Frame[];
70
- /**
71
- * get stack context
72
- *
73
- * @param {Object} frame - current frame
74
- */
75
- getContext(frame: Frame): {
76
- start?: undefined;
77
- pre?: undefined;
78
- line?: undefined;
79
- post?: undefined;
80
- } | {
81
- start: number;
82
- pre: string;
83
- line: string;
84
- post: string;
85
- };
86
- /**
87
- * get frame classes, let view identify the frame
88
- *
89
- * @param {any} frame - current frame
90
- * @param {any} index - current index
91
- */
92
- getFrameClasses(frame: Frame, index: number): string;
93
- /**
94
- * serialize frame and return meaningful data
95
- *
96
- * @param {Object} frame - current frame
97
- */
98
- serializeFrame(frame: Frame): {
99
- extname: string;
100
- file: string;
101
- method: string;
102
- line: number;
103
- column: number;
104
- context: {
105
- start?: undefined;
106
- pre?: undefined;
107
- line?: undefined;
108
- post?: undefined;
109
- } | {
110
- start: number;
111
- pre: string;
112
- line: string;
113
- post: string;
114
- };
115
- classes: string;
116
- };
117
- /**
118
- * serialize base data
119
- *
120
- * @param {Object} stack - frame stack
121
- * @param {Function} frameFormatter - frame formatter function
122
- */
123
- serializeData(stack: Frame[], frameFormatter: (frame: Frame, index: number) => any): {
124
- code: any;
125
- message: string;
126
- name: string;
127
- status: number;
128
- frames: any[];
129
- };
130
- /**
131
- * serialize request object
132
- */
133
- serializeRequest(): {
134
- url: string;
135
- httpVersion: string;
136
- method: string;
137
- connection: string | undefined;
138
- headers: {
139
- key: string;
140
- value: string | string[] | undefined;
141
- }[];
142
- cookies: {
143
- key: string;
144
- value: string | undefined;
145
- }[];
146
- };
147
- /**
148
- * serialize app info object
149
- */
150
- serializeAppInfo(): {
151
- baseDir: string;
152
- config: string;
153
- };
154
- }