egg 4.1.0-beta.34 → 4.1.0-beta.36

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 (101) hide show
  1. package/dist/agent.d.ts +7 -3
  2. package/dist/agent.js +10 -6
  3. package/dist/ajv.d.ts +1 -1
  4. package/dist/ajv.js +3 -2
  5. package/dist/aop.d.ts +1 -1
  6. package/dist/aop.js +3 -2
  7. package/dist/app/extend/context.d.ts +181 -178
  8. package/dist/app/extend/context.js +244 -259
  9. package/dist/app/extend/helper.d.ts +40 -35
  10. package/dist/app/extend/helper.js +45 -41
  11. package/dist/app/extend/request.d.ts +135 -131
  12. package/dist/app/extend/request.js +219 -258
  13. package/dist/app/extend/response.d.ts +28 -24
  14. package/dist/app/extend/response.js +36 -34
  15. package/dist/app/middleware/body_parser.d.ts +2 -2
  16. package/dist/app/middleware/body_parser.js +7 -3
  17. package/dist/app/middleware/meta.d.ts +8 -8
  18. package/dist/app/middleware/meta.js +15 -18
  19. package/dist/app/middleware/notfound.d.ts +8 -5
  20. package/dist/app/middleware/notfound.js +25 -28
  21. package/dist/app/middleware/override_method.d.ts +2 -2
  22. package/dist/app/middleware/override_method.js +7 -3
  23. package/dist/app/middleware/site_file.d.ts +11 -7
  24. package/dist/app/middleware/site_file.js +37 -52
  25. package/dist/config/config.default.d.ts +11 -6
  26. package/dist/config/config.default.js +258 -375
  27. package/dist/config/config.local.d.ts +6 -3
  28. package/dist/config/config.local.js +7 -8
  29. package/dist/config/config.unittest.d.ts +6 -3
  30. package/dist/config/config.unittest.js +10 -8
  31. package/dist/config/plugin.d.ts +6 -2
  32. package/dist/config/plugin.js +67 -131
  33. package/dist/dal.d.ts +1 -1
  34. package/dist/dal.js +3 -2
  35. package/dist/errors.d.ts +1 -1
  36. package/dist/errors.js +3 -2
  37. package/dist/helper.d.ts +1 -1
  38. package/dist/helper.js +3 -2
  39. package/dist/index.d.ts +24 -106
  40. package/dist/index.js +23 -89
  41. package/dist/lib/agent.d.ts +21 -15
  42. package/dist/lib/agent.js +53 -45
  43. package/dist/lib/application.d.ts +60 -54
  44. package/dist/lib/application.js +200 -250
  45. package/dist/lib/core/base_context_class.d.ts +23 -17
  46. package/dist/lib/core/base_context_class.js +17 -15
  47. package/dist/lib/core/base_context_logger.d.ts +39 -35
  48. package/dist/lib/core/base_context_logger.js +58 -60
  49. package/dist/lib/core/base_hook_class.d.ts +18 -11
  50. package/dist/lib/core/base_hook_class.js +26 -22
  51. package/dist/lib/core/context_httpclient.d.ts +21 -16
  52. package/dist/lib/core/context_httpclient.js +29 -26
  53. package/dist/lib/core/httpclient.d.ts +14 -12
  54. package/dist/lib/core/httpclient.js +34 -37
  55. package/dist/lib/core/logger.d.ts +7 -3
  56. package/dist/lib/core/logger.js +30 -36
  57. package/dist/lib/core/messenger/IMessenger.d.ts +53 -49
  58. package/dist/lib/core/messenger/IMessenger.js +1 -2
  59. package/dist/lib/core/messenger/base.d.ts +11 -7
  60. package/dist/lib/core/messenger/base.js +30 -29
  61. package/dist/lib/core/messenger/index.d.ts +10 -6
  62. package/dist/lib/core/messenger/index.js +11 -8
  63. package/dist/lib/core/messenger/ipc.d.ts +62 -57
  64. package/dist/lib/core/messenger/ipc.js +126 -138
  65. package/dist/lib/core/messenger/local.d.ts +63 -58
  66. package/dist/lib/core/messenger/local.js +126 -131
  67. package/dist/lib/core/utils.d.ts +5 -2
  68. package/dist/lib/core/utils.js +44 -66
  69. package/dist/lib/define.d.ts +72 -67
  70. package/dist/lib/define.js +54 -53
  71. package/dist/lib/egg.d.ts +283 -281
  72. package/dist/lib/egg.js +512 -573
  73. package/dist/lib/error/CookieLimitExceedError.d.ts +7 -4
  74. package/dist/lib/error/CookieLimitExceedError.js +15 -12
  75. package/dist/lib/error/MessageUnhandledRejectionError.d.ts +7 -4
  76. package/dist/lib/error/MessageUnhandledRejectionError.js +15 -12
  77. package/dist/lib/error/index.d.ts +3 -2
  78. package/dist/lib/error/index.js +4 -3
  79. package/dist/lib/loader/AgentWorkerLoader.d.ts +15 -10
  80. package/dist/lib/loader/AgentWorkerLoader.js +22 -18
  81. package/dist/lib/loader/AppWorkerLoader.d.ts +20 -15
  82. package/dist/lib/loader/AppWorkerLoader.js +35 -37
  83. package/dist/lib/loader/EggApplicationLoader.d.ts +7 -3
  84. package/dist/lib/loader/EggApplicationLoader.js +7 -4
  85. package/dist/lib/loader/index.d.ts +4 -3
  86. package/dist/lib/loader/index.js +5 -4
  87. package/dist/lib/start.d.ts +24 -20
  88. package/dist/lib/start.js +32 -42
  89. package/dist/lib/types.d.ts +288 -286
  90. package/dist/lib/types.js +2 -2
  91. package/dist/lib/types.plugin.d.ts +21 -21
  92. package/dist/lib/types.plugin.js +23 -24
  93. package/dist/orm.d.ts +1 -1
  94. package/dist/orm.js +3 -2
  95. package/dist/schedule.d.ts +2 -2
  96. package/dist/schedule.js +5 -5
  97. package/dist/transaction.d.ts +1 -1
  98. package/dist/transaction.js +3 -2
  99. package/dist/urllib.d.ts +1 -1
  100. package/dist/urllib.js +3 -2
  101. package/package.json +60 -64
@@ -1,17 +1,18 @@
1
- import path from 'node:path';
2
- import fs from 'node:fs';
3
- import http from 'node:http';
4
- import { Socket } from 'node:net';
5
- import { graceful } from 'graceful';
6
- import { assign } from 'utility';
7
- import { utils as eggUtils } from '@eggjs/core';
8
- import { isGeneratorFunction } from 'is-type-of';
9
- import { EggApplicationCore } from "./egg.js";
10
- import { AppWorkerLoader } from "./loader/index.js";
11
1
  import Helper from "../app/extend/helper.js";
12
- import { CookieLimitExceedError } from "./error/index.js";
13
- // client error => 400 Bad Request
14
- // Refs: https://nodejs.org/dist/latest-v8.x/docs/api/http.html#http_event_clienterror
2
+ import { CookieLimitExceedError } from "./error/CookieLimitExceedError.js";
3
+ import { EggApplicationCore } from "./egg.js";
4
+ import { AppWorkerLoader } from "./loader/AppWorkerLoader.js";
5
+ import "./loader/index.js";
6
+ import { utils } from "@eggjs/core";
7
+ import path from "node:path";
8
+ import { assign } from "utility";
9
+ import fs from "node:fs";
10
+ import http from "node:http";
11
+ import { isGeneratorFunction } from "is-type-of";
12
+ import { Socket } from "node:net";
13
+ import { graceful } from "graceful";
14
+
15
+ //#region src/lib/application.ts
15
16
  const DEFAULT_BAD_REQUEST_HTML = `<html>
16
17
  <head><title>400 Bad Request</title></head>
17
18
  <body bgcolor="white">
@@ -19,243 +20,192 @@ const DEFAULT_BAD_REQUEST_HTML = `<html>
19
20
  <hr><center>❤</center>
20
21
  </body>
21
22
  </html>`;
22
- const DEFAULT_BAD_REQUEST_HTML_LENGTH = Buffer.byteLength(DEFAULT_BAD_REQUEST_HTML);
23
- const DEFAULT_BAD_REQUEST_RESPONSE = `HTTP/1.1 400 Bad Request\r\nContent-Length: ${DEFAULT_BAD_REQUEST_HTML_LENGTH}` +
24
- `\r\n\r\n${DEFAULT_BAD_REQUEST_HTML}`;
25
- // Refs: https://github.com/nodejs/node/blob/b38c81/lib/_http_outgoing.js#L706-L710
23
+ const DEFAULT_BAD_REQUEST_RESPONSE = `HTTP/1.1 400 Bad Request\r\nContent-Length: ${Buffer.byteLength(DEFAULT_BAD_REQUEST_HTML)}\r\n\r\n${DEFAULT_BAD_REQUEST_HTML}`;
26
24
  function escapeHeaderValue(value) {
27
- // Protect against response splitting. The regex test is there to
28
- // minimize the performance impact in the common case.
29
- return /[\r\n]/.test(value) ? value.replace(/[\r\n]+[ \t]*/g, '') : value;
25
+ return /[\r\n]/.test(value) ? value.replace(/[\r\n]+[ \t]*/g, "") : value;
30
26
  }
31
27
  /**
32
- * Singleton instance in App Worker, extend {@link EggApplicationCore}
33
- * @augments EggApplicationCore
34
- */
35
- export class Application extends EggApplicationCore {
36
- // will auto set after 'server' event emit
37
- server;
38
- #locals = {};
39
- /**
40
- * reference to {@link Helper}
41
- * @member {Helper} Application#Helper
42
- */
43
- Helper = Helper;
44
- /**
45
- * @class
46
- * @param {Object} options - see {@link EggApplicationCore}
47
- */
48
- constructor(options) {
49
- super({
50
- ...options,
51
- type: 'application',
52
- });
53
- }
54
- customEggLoader() {
55
- return AppWorkerLoader;
56
- }
57
- async load() {
58
- await super.load();
59
- this.#warnConfusedConfig();
60
- this.#bindEvents();
61
- }
62
- #responseRaw(socket, raw) {
63
- if (!socket?.writable)
64
- return;
65
- if (!raw) {
66
- socket.end(DEFAULT_BAD_REQUEST_RESPONSE);
67
- return;
68
- }
69
- const body = raw.body == null ? DEFAULT_BAD_REQUEST_HTML : raw.body;
70
- const headers = raw.headers || {};
71
- const status = raw.status || 400;
72
- let responseHeaderLines = '';
73
- const firstLine = `HTTP/1.1 ${status} ${http.STATUS_CODES[status] || 'Unknown'}`;
74
- // Not that safe because no validation for header keys.
75
- // Refs: https://github.com/nodejs/node/blob/b38c81/lib/_http_outgoing.js#L451
76
- for (const key of Object.keys(headers)) {
77
- if (key.toLowerCase() === 'content-length') {
78
- delete headers[key];
79
- continue;
80
- }
81
- responseHeaderLines += `${key}: ${escapeHeaderValue(headers[key])}\r\n`;
82
- }
83
- responseHeaderLines += `Content-Length: ${Buffer.byteLength(body)}\r\n`;
84
- socket.end(`${firstLine}\r\n${responseHeaderLines}\r\n${body.toString()}`);
85
- }
86
- onClientError(err, socket) {
87
- // ignore when there is no http body, it almost like an ECONNRESET
88
- if (err.rawPacket) {
89
- this.logger.warn('[egg:application] A client (%s:%d) error [%s] occurred: %s', socket.remoteAddress, socket.remotePort, err.code, err.message);
90
- }
91
- if (typeof this.config.onClientError === 'function') {
92
- // @ts-ignore onClientError is not typed
93
- const p = eggUtils.callFn(this.config.onClientError, [err, socket, this]);
94
- // the returned object should be something like:
95
- //
96
- // {
97
- // body: '...',
98
- // headers: {
99
- // ...
100
- // },
101
- // status: 400
102
- // }
103
- //
104
- // default values:
105
- //
106
- // + body: ''
107
- // + headers: {}
108
- // + status: 400
109
- p.then((ret) => {
110
- this.#responseRaw(socket, ret || {});
111
- }).catch((err) => {
112
- this.logger.error(err);
113
- this.#responseRaw(socket);
114
- });
115
- }
116
- else {
117
- // because it's a raw socket object, we should return the raw HTTP response
118
- // packet.
119
- this.#responseRaw(socket);
120
- }
121
- }
122
- onServer(server) {
123
- // expose app.server
124
- this.server = server;
125
- // set ignore code
126
- const serverGracefulIgnoreCode = this.config.serverGracefulIgnoreCode || [];
127
- graceful({
128
- server: [server],
129
- error: (err, throwErrorCount) => {
130
- const originMessage = err.message;
131
- if (originMessage) {
132
- // shouldjs will override error property but only getter
133
- // https://github.com/shouldjs/should.js/blob/889e22ebf19a06bc2747d24cf34b25cc00b37464/lib/assertion-error.js#L26
134
- Object.defineProperty(err, 'message', {
135
- get() {
136
- return `${originMessage} (uncaughtException throw ${throwErrorCount} times on pid: ${process.pid})`;
137
- },
138
- configurable: true,
139
- enumerable: false,
140
- });
141
- }
142
- this.coreLogger.error(err);
143
- },
144
- ignoreCode: serverGracefulIgnoreCode,
145
- });
146
- server.on('clientError', (err, socket) => this.onClientError(err, socket));
147
- // server timeout
148
- if (typeof this.config.serverTimeout === 'number') {
149
- server.setTimeout(this.config.serverTimeout);
150
- }
151
- }
152
- /**
153
- * global locals for view
154
- * @member {Object} Application#locals
155
- * @see Context#locals
156
- */
157
- get locals() {
158
- return this.#locals;
159
- }
160
- set locals(val) {
161
- assign(this.#locals, val);
162
- }
163
- /**
164
- * save routers to `run/router.json`
165
- * @private
166
- */
167
- dumpConfig() {
168
- super.dumpConfig();
169
- // dump routers to router.json
170
- const rundir = this.config.rundir;
171
- const FULLPATH = this.loader.FileLoader.FULLPATH;
172
- try {
173
- const dumpRouterFile = path.join(rundir, 'router.json');
174
- const routers = [];
175
- for (const layer of this.router.stack) {
176
- routers.push({
177
- name: layer.name,
178
- methods: layer.methods,
179
- paramNames: layer.paramNames,
180
- path: layer.path,
181
- regexp: layer.regexp.toString(),
182
- stack: layer.stack.map((stack) => stack[FULLPATH] || stack._name || stack.name || 'anonymous'),
183
- });
184
- }
185
- fs.writeFileSync(dumpRouterFile, JSON.stringify(routers, null, 2));
186
- }
187
- catch (err) {
188
- this.coreLogger.warn(`dumpConfig router.json error: ${err.message}`);
189
- }
190
- }
191
- /**
192
- * Run async function in the background
193
- * @see Context#runInBackground
194
- * @param {Function} scope - the first args is an anonymous ctx
195
- */
196
- runInBackground(scope, req) {
197
- const ctx = this.createAnonymousContext(req);
198
- if (!scope.name) {
199
- Reflect.set(scope, '_name', eggUtils.getCalleeFromStack(true));
200
- }
201
- this.ctxStorage.run(ctx, () => {
202
- return ctx.runInBackground(scope);
203
- });
204
- }
205
- /**
206
- * secret key for Application
207
- * @member {String} Application#keys
208
- */
209
- get keys() {
210
- if (!this._keys) {
211
- if (!this.config.keys) {
212
- if (this.config.env === 'local' || this.config.env === 'unittest') {
213
- const configPath = path.join(this.config.baseDir, 'config/config.default.js');
214
- console.error('Cookie need secret key to sign and encrypt.');
215
- console.error('Please add `config.keys` in %s', configPath);
216
- }
217
- throw new Error('Please set config.keys first');
218
- }
219
- this._keys = this.config.keys.split(',').map((s) => s.trim());
220
- }
221
- return this._keys;
222
- }
223
- /**
224
- * @deprecated keep compatible with egg 3.x
225
- */
226
- toAsyncFunction(fn) {
227
- if (isGeneratorFunction(fn)) {
228
- throw new Error('Generator function is not supported');
229
- }
230
- return fn;
231
- }
232
- /**
233
- * bind app's events
234
- *
235
- * @private
236
- */
237
- #bindEvents() {
238
- // Browser Cookie Limits: http://browsercookielimits.iain.guru/
239
- // https://github.com/eggjs/egg-cookies/blob/58ef4ea497a0eb4dd711d7e9751e56bc5fcee004/src/cookies.ts#L145
240
- this.on('cookieLimitExceed', ({ name, value, ctx }) => {
241
- const err = new CookieLimitExceedError(name, value);
242
- ctx.coreLogger.error(err);
243
- });
244
- // expose server to support websocket
245
- this.once('server', (server) => this.onServer(server));
246
- }
247
- /**
248
- * warn when confused configurations are present
249
- *
250
- * @private
251
- */
252
- #warnConfusedConfig() {
253
- const confusedConfigurations = this.config.confusedConfigurations;
254
- Object.keys(confusedConfigurations).forEach((key) => {
255
- if (this.config[key] !== undefined) {
256
- this.logger.warn('[egg:application] Unexpected config key `%o` exists, Please use `%o` instead.', key, confusedConfigurations[key]);
257
- }
258
- });
259
- }
260
- }
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2FwcGxpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUM3QixPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDekIsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxLQUFLLElBQUksUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQWdELE1BQU0sVUFBVSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLE1BQU0sTUFBTSx5QkFBeUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUcxRCxrQ0FBa0M7QUFDbEMsc0ZBQXNGO0FBQ3RGLE1BQU0sd0JBQXdCLEdBQUc7Ozs7OztVQU12QixDQUFDO0FBQ1gsTUFBTSwrQkFBK0IsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFDcEYsTUFBTSw0QkFBNEIsR0FDaEMsK0NBQStDLCtCQUErQixFQUFFO0lBQ2hGLFdBQVcsd0JBQXdCLEVBQUUsQ0FBQztBQUV4QyxtRkFBbUY7QUFDbkYsU0FBUyxpQkFBaUIsQ0FBQyxLQUFhO0lBQ3RDLGlFQUFpRTtJQUNqRSxzREFBc0Q7SUFDdEQsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFD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
28
+ * Singleton instance in App Worker, extend {@link EggApplicationCore}
29
+ * @augments EggApplicationCore
30
+ */
31
+ var Application = class extends EggApplicationCore {
32
+ server;
33
+ #locals = {};
34
+ /**
35
+ * reference to {@link Helper}
36
+ * @member {Helper} Application#Helper
37
+ */
38
+ Helper = Helper;
39
+ /**
40
+ * @class
41
+ * @param {Object} options - see {@link EggApplicationCore}
42
+ */
43
+ constructor(options) {
44
+ super({
45
+ ...options,
46
+ type: "application"
47
+ });
48
+ }
49
+ customEggLoader() {
50
+ return AppWorkerLoader;
51
+ }
52
+ async load() {
53
+ await super.load();
54
+ this.#warnConfusedConfig();
55
+ this.#bindEvents();
56
+ }
57
+ #responseRaw(socket, raw) {
58
+ if (!socket?.writable) return;
59
+ if (!raw) {
60
+ socket.end(DEFAULT_BAD_REQUEST_RESPONSE);
61
+ return;
62
+ }
63
+ const body = raw.body == null ? DEFAULT_BAD_REQUEST_HTML : raw.body;
64
+ const headers = raw.headers || {};
65
+ const status = raw.status || 400;
66
+ let responseHeaderLines = "";
67
+ const firstLine = `HTTP/1.1 ${status} ${http.STATUS_CODES[status] || "Unknown"}`;
68
+ for (const key of Object.keys(headers)) {
69
+ if (key.toLowerCase() === "content-length") {
70
+ delete headers[key];
71
+ continue;
72
+ }
73
+ responseHeaderLines += `${key}: ${escapeHeaderValue(headers[key])}\r\n`;
74
+ }
75
+ responseHeaderLines += `Content-Length: ${Buffer.byteLength(body)}\r\n`;
76
+ socket.end(`${firstLine}\r\n${responseHeaderLines}\r\n${body.toString()}`);
77
+ }
78
+ onClientError(err, socket) {
79
+ if (err.rawPacket) this.logger.warn("[egg:application] A client (%s:%d) error [%s] occurred: %s", socket.remoteAddress, socket.remotePort, err.code, err.message);
80
+ if (typeof this.config.onClientError === "function") utils.callFn(this.config.onClientError, [
81
+ err,
82
+ socket,
83
+ this
84
+ ]).then((ret) => {
85
+ this.#responseRaw(socket, ret || {});
86
+ }).catch((err$1) => {
87
+ this.logger.error(err$1);
88
+ this.#responseRaw(socket);
89
+ });
90
+ else this.#responseRaw(socket);
91
+ }
92
+ onServer(server) {
93
+ this.server = server;
94
+ const serverGracefulIgnoreCode = this.config.serverGracefulIgnoreCode || [];
95
+ graceful({
96
+ server: [server],
97
+ error: (err, throwErrorCount) => {
98
+ const originMessage = err.message;
99
+ if (originMessage) Object.defineProperty(err, "message", {
100
+ get() {
101
+ return `${originMessage} (uncaughtException throw ${throwErrorCount} times on pid: ${process.pid})`;
102
+ },
103
+ configurable: true,
104
+ enumerable: false
105
+ });
106
+ this.coreLogger.error(err);
107
+ },
108
+ ignoreCode: serverGracefulIgnoreCode
109
+ });
110
+ server.on("clientError", (err, socket) => this.onClientError(err, socket));
111
+ if (typeof this.config.serverTimeout === "number") server.setTimeout(this.config.serverTimeout);
112
+ }
113
+ /**
114
+ * global locals for view
115
+ * @member {Object} Application#locals
116
+ * @see Context#locals
117
+ */
118
+ get locals() {
119
+ return this.#locals;
120
+ }
121
+ set locals(val) {
122
+ assign(this.#locals, val);
123
+ }
124
+ /**
125
+ * save routers to `run/router.json`
126
+ * @private
127
+ */
128
+ dumpConfig() {
129
+ super.dumpConfig();
130
+ const rundir = this.config.rundir;
131
+ const FULLPATH = this.loader.FileLoader.FULLPATH;
132
+ try {
133
+ const dumpRouterFile = path.join(rundir, "router.json");
134
+ const routers = [];
135
+ for (const layer of this.router.stack) routers.push({
136
+ name: layer.name,
137
+ methods: layer.methods,
138
+ paramNames: layer.paramNames,
139
+ path: layer.path,
140
+ regexp: layer.regexp.toString(),
141
+ stack: layer.stack.map((stack) => stack[FULLPATH] || stack._name || stack.name || "anonymous")
142
+ });
143
+ fs.writeFileSync(dumpRouterFile, JSON.stringify(routers, null, 2));
144
+ } catch (err) {
145
+ this.coreLogger.warn(`dumpConfig router.json error: ${err.message}`);
146
+ }
147
+ }
148
+ /**
149
+ * Run async function in the background
150
+ * @see Context#runInBackground
151
+ * @param {Function} scope - the first args is an anonymous ctx
152
+ */
153
+ runInBackground(scope, req) {
154
+ const ctx = this.createAnonymousContext(req);
155
+ if (!scope.name) Reflect.set(scope, "_name", utils.getCalleeFromStack(true));
156
+ this.ctxStorage.run(ctx, () => {
157
+ return ctx.runInBackground(scope);
158
+ });
159
+ }
160
+ /**
161
+ * secret key for Application
162
+ * @member {String} Application#keys
163
+ */
164
+ get keys() {
165
+ if (!this._keys) {
166
+ if (!this.config.keys) {
167
+ if (this.config.env === "local" || this.config.env === "unittest") {
168
+ const configPath = path.join(this.config.baseDir, "config/config.default.js");
169
+ console.error("Cookie need secret key to sign and encrypt.");
170
+ console.error("Please add `config.keys` in %s", configPath);
171
+ }
172
+ throw new Error("Please set config.keys first");
173
+ }
174
+ this._keys = this.config.keys.split(",").map((s) => s.trim());
175
+ }
176
+ return this._keys;
177
+ }
178
+ /**
179
+ * @deprecated keep compatible with egg 3.x
180
+ */
181
+ toAsyncFunction(fn) {
182
+ if (isGeneratorFunction(fn)) throw new Error("Generator function is not supported");
183
+ return fn;
184
+ }
185
+ /**
186
+ * bind app's events
187
+ *
188
+ * @private
189
+ */
190
+ #bindEvents() {
191
+ this.on("cookieLimitExceed", ({ name, value, ctx }) => {
192
+ const err = new CookieLimitExceedError(name, value);
193
+ ctx.coreLogger.error(err);
194
+ });
195
+ this.once("server", (server) => this.onServer(server));
196
+ }
197
+ /**
198
+ * warn when confused configurations are present
199
+ *
200
+ * @private
201
+ */
202
+ #warnConfusedConfig() {
203
+ const confusedConfigurations = this.config.confusedConfigurations;
204
+ Object.keys(confusedConfigurations).forEach((key) => {
205
+ if (this.config[key] !== void 0) this.logger.warn("[egg:application] Unexpected config key `%o` exists, Please use `%o` instead.", key, confusedConfigurations[key]);
206
+ });
207
+ }
208
+ };
209
+
210
+ //#endregion
211
+ export { Application };
@@ -1,19 +1,25 @@
1
- import { BaseContextClass as EggCoreBaseContextClass } from '@eggjs/core';
2
- import type { Context } from '../egg.ts';
3
- import type { Application } from '../application.ts';
4
- import { BaseContextLogger } from './base_context_logger.ts';
5
- import type { IService } from '../types.ts';
1
+ import { IService } from "../types.js";
2
+ import Context$1 from "../../app/extend/context.js";
3
+ import "../egg.js";
4
+ import { Application } from "../application.js";
5
+ import { BaseContextLogger } from "./base_context_logger.js";
6
+ import { BaseContextClass as BaseContextClass$1 } from "@eggjs/core";
7
+
8
+ //#region src/lib/core/base_context_class.d.ts
9
+
6
10
  /**
7
- * BaseContextClass is a base class that can be extended,
8
- * it's instantiated in context level,
9
- * {@link Helper}, {@link Service} is extending it.
10
- */
11
- export declare class BaseContextClass extends EggCoreBaseContextClass {
12
- #private;
13
- [key: string | symbol]: any;
14
- ctx: Context;
15
- pathName?: string;
16
- app: Application;
17
- service: IService;
18
- get logger(): BaseContextLogger;
11
+ * BaseContextClass is a base class that can be extended,
12
+ * it's instantiated in context level,
13
+ * {@link Helper}, {@link Service} is extending it.
14
+ */
15
+ declare class BaseContextClass extends BaseContextClass$1 {
16
+ #private;
17
+ [key: string | symbol]: any;
18
+ ctx: Context$1;
19
+ pathName?: string;
20
+ app: Application;
21
+ service: IService;
22
+ get logger(): BaseContextLogger;
19
23
  }
24
+ //#endregion
25
+ export { BaseContextClass };
@@ -1,17 +1,19 @@
1
- import { BaseContextClass as EggCoreBaseContextClass } from '@eggjs/core';
2
1
  import { BaseContextLogger } from "./base_context_logger.js";
2
+ import { BaseContextClass as BaseContextClass$1 } from "@eggjs/core";
3
+
4
+ //#region src/lib/core/base_context_class.ts
3
5
  /**
4
- * BaseContextClass is a base class that can be extended,
5
- * it's instantiated in context level,
6
- * {@link Helper}, {@link Service} is extending it.
7
- */
8
- export class BaseContextClass extends EggCoreBaseContextClass {
9
- #logger;
10
- get logger() {
11
- if (!this.#logger) {
12
- this.#logger = new BaseContextLogger(this.ctx, this.pathName);
13
- }
14
- return this.#logger;
15
- }
16
- }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9jb250ZXh0X2NsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb3JlL2Jhc2VfY29udGV4dF9jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLElBQUksdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHN0Q7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSx1QkFBdUI7SUFNM0QsT0FBTyxDQUFxQjtJQUU1QixJQUFJLE1BQU07UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7Q0FDRiJ9
6
+ * BaseContextClass is a base class that can be extended,
7
+ * it's instantiated in context level,
8
+ * {@link Helper}, {@link Service} is extending it.
9
+ */
10
+ var BaseContextClass = class extends BaseContextClass$1 {
11
+ #logger;
12
+ get logger() {
13
+ if (!this.#logger) this.#logger = new BaseContextLogger(this.ctx, this.pathName);
14
+ return this.#logger;
15
+ }
16
+ };
17
+
18
+ //#endregion
19
+ export { BaseContextClass };
@@ -1,36 +1,40 @@
1
- import type { EggContext } from '../egg.ts';
2
- export declare class BaseContextLogger {
3
- #private;
4
- /**
5
- * @class
6
- * @param {Context} ctx - context instance
7
- * @param {String} pathName - class path name
8
- * @since 1.0.0
9
- */
10
- constructor(ctx: EggContext, pathName?: string);
11
- protected _log(method: 'info' | 'warn' | 'error' | 'debug', args: any[]): void;
12
- /**
13
- * @member {Function} BaseContextLogger#debug
14
- * @param {...any} args - log msg
15
- * @since 1.2.0
16
- */
17
- debug(...args: any[]): void;
18
- /**
19
- * @member {Function} BaseContextLogger#info
20
- * @param {...any} args - log msg
21
- * @since 1.2.0
22
- */
23
- info(...args: any[]): void;
24
- /**
25
- * @member {Function} BaseContextLogger#warn
26
- * @param {...any} args - log msg
27
- * @since 1.2.0
28
- */
29
- warn(...args: any[]): void;
30
- /**
31
- * @member {Function} BaseContextLogger#error
32
- * @param {...any} args - log msg
33
- * @since 1.2.0
34
- */
35
- error(...args: any[]): void;
1
+ import { EggContext } from "../egg.js";
2
+
3
+ //#region src/lib/core/base_context_logger.d.ts
4
+ declare class BaseContextLogger {
5
+ #private;
6
+ /**
7
+ * @class
8
+ * @param {Context} ctx - context instance
9
+ * @param {String} pathName - class path name
10
+ * @since 1.0.0
11
+ */
12
+ constructor(ctx: EggContext, pathName?: string);
13
+ protected _log(method: "info" | "warn" | "error" | "debug", args: any[]): void;
14
+ /**
15
+ * @member {Function} BaseContextLogger#debug
16
+ * @param {...any} args - log msg
17
+ * @since 1.2.0
18
+ */
19
+ debug(...args: any[]): void;
20
+ /**
21
+ * @member {Function} BaseContextLogger#info
22
+ * @param {...any} args - log msg
23
+ * @since 1.2.0
24
+ */
25
+ info(...args: any[]): void;
26
+ /**
27
+ * @member {Function} BaseContextLogger#warn
28
+ * @param {...any} args - log msg
29
+ * @since 1.2.0
30
+ */
31
+ warn(...args: any[]): void;
32
+ /**
33
+ * @member {Function} BaseContextLogger#error
34
+ * @param {...any} args - log msg
35
+ * @since 1.2.0
36
+ */
37
+ error(...args: any[]): void;
36
38
  }
39
+ //#endregion
40
+ export { BaseContextLogger };