egg 3.26.0 → 4.0.0-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 (196) hide show
  1. package/README.md +1 -1
  2. package/README.zh-CN.md +6 -5
  3. package/dist/commonjs/agent.d.ts +4 -0
  4. package/dist/commonjs/agent.js +10 -0
  5. package/dist/commonjs/app/middleware/body_parser.d.ts +2 -0
  6. package/dist/commonjs/app/middleware/body_parser.js +8 -0
  7. package/dist/commonjs/app/middleware/meta.d.ts +11 -0
  8. package/dist/commonjs/app/middleware/meta.js +22 -0
  9. package/dist/commonjs/app/middleware/notfound.d.ts +8 -0
  10. package/dist/commonjs/app/middleware/notfound.js +31 -0
  11. package/dist/commonjs/app/middleware/override_method.d.ts +2 -0
  12. package/dist/commonjs/app/middleware/override_method.js +8 -0
  13. package/dist/commonjs/app/middleware/site_file.d.ts +7 -0
  14. package/dist/commonjs/app/middleware/site_file.js +40 -0
  15. package/dist/commonjs/config/config.default.d.ts +9 -0
  16. package/dist/commonjs/config/config.default.js +378 -0
  17. package/dist/commonjs/config/config.local.d.ts +8 -0
  18. package/dist/commonjs/config/config.local.js +12 -0
  19. package/dist/commonjs/config/config.unittest.d.ts +7 -0
  20. package/dist/commonjs/config/config.unittest.js +11 -0
  21. package/dist/commonjs/config/plugin.d.ts +122 -0
  22. package/dist/commonjs/config/plugin.js +125 -0
  23. package/dist/commonjs/index.d.ts +61 -0
  24. package/dist/commonjs/index.js +89 -0
  25. package/dist/commonjs/lib/agent.d.ts +19 -0
  26. package/dist/commonjs/lib/agent.js +58 -0
  27. package/dist/commonjs/lib/application.d.ts +66 -0
  28. package/dist/commonjs/lib/application.js +281 -0
  29. package/dist/commonjs/lib/core/base_context_class.d.ts +14 -0
  30. package/dist/commonjs/lib/core/base_context_class.js +22 -0
  31. package/dist/commonjs/lib/core/base_context_logger.d.ts +36 -0
  32. package/dist/commonjs/lib/core/base_context_logger.js +64 -0
  33. package/dist/commonjs/lib/core/base_hook_class.d.ts +11 -0
  34. package/dist/commonjs/lib/core/base_hook_class.js +30 -0
  35. package/dist/commonjs/lib/core/context_httpclient.d.ts +16 -0
  36. package/dist/commonjs/lib/core/context_httpclient.js +30 -0
  37. package/dist/commonjs/lib/core/httpclient.d.ts +14 -0
  38. package/dist/commonjs/lib/core/httpclient.js +40 -0
  39. package/dist/commonjs/lib/core/logger.d.ts +3 -0
  40. package/dist/commonjs/lib/core/logger.js +40 -0
  41. package/dist/commonjs/lib/core/messenger/IMessenger.d.ts +50 -0
  42. package/dist/commonjs/lib/core/messenger/IMessenger.js +3 -0
  43. package/dist/commonjs/lib/core/messenger/index.d.ts +7 -0
  44. package/dist/commonjs/lib/core/messenger/index.js +14 -0
  45. package/dist/commonjs/lib/core/messenger/ipc.d.ts +57 -0
  46. package/dist/commonjs/lib/core/messenger/ipc.js +126 -0
  47. package/dist/commonjs/lib/core/messenger/local.d.ts +61 -0
  48. package/dist/commonjs/lib/core/messenger/local.js +134 -0
  49. package/dist/commonjs/lib/core/singleton.d.ts +23 -0
  50. package/dist/commonjs/lib/core/singleton.js +120 -0
  51. package/dist/commonjs/lib/core/utils.d.ts +2 -0
  52. package/dist/commonjs/lib/core/utils.js +77 -0
  53. package/dist/commonjs/lib/egg.d.ts +267 -0
  54. package/dist/commonjs/lib/egg.js +595 -0
  55. package/dist/commonjs/lib/loader/AgentWorkerLoader.d.ts +12 -0
  56. package/dist/commonjs/lib/loader/AgentWorkerLoader.js +24 -0
  57. package/dist/commonjs/lib/loader/AppWorkerLoader.d.ts +17 -0
  58. package/dist/commonjs/lib/loader/AppWorkerLoader.js +43 -0
  59. package/dist/commonjs/lib/loader/EggApplicationLoader.d.ts +4 -0
  60. package/dist/commonjs/lib/loader/EggApplicationLoader.js +8 -0
  61. package/dist/commonjs/lib/loader/index.d.ts +3 -0
  62. package/dist/commonjs/lib/loader/index.js +22 -0
  63. package/dist/commonjs/lib/start.d.ts +15 -0
  64. package/dist/commonjs/lib/start.js +49 -0
  65. package/dist/commonjs/lib/type.d.ts +295 -0
  66. package/dist/commonjs/lib/type.js +3 -0
  67. package/dist/commonjs/package.json +3 -0
  68. package/dist/esm/agent.d.ts +4 -0
  69. package/dist/esm/agent.js +7 -0
  70. package/dist/esm/app/middleware/body_parser.d.ts +2 -0
  71. package/dist/esm/app/middleware/body_parser.js +3 -0
  72. package/dist/esm/app/middleware/meta.d.ts +11 -0
  73. package/dist/esm/app/middleware/meta.js +20 -0
  74. package/dist/esm/app/middleware/notfound.d.ts +8 -0
  75. package/dist/esm/app/middleware/notfound.js +29 -0
  76. package/dist/esm/app/middleware/override_method.d.ts +2 -0
  77. package/dist/esm/app/middleware/override_method.js +3 -0
  78. package/dist/esm/app/middleware/site_file.d.ts +7 -0
  79. package/dist/esm/app/middleware/site_file.js +35 -0
  80. package/dist/esm/config/config.default.d.ts +9 -0
  81. package/dist/esm/config/config.default.js +373 -0
  82. package/dist/esm/config/config.local.d.ts +8 -0
  83. package/dist/esm/config/config.local.js +10 -0
  84. package/dist/esm/config/config.unittest.d.ts +7 -0
  85. package/dist/esm/config/config.unittest.js +9 -0
  86. package/dist/esm/config/favicon.png +0 -0
  87. package/dist/esm/config/plugin.d.ts +122 -0
  88. package/dist/esm/config/plugin.js +123 -0
  89. package/dist/esm/index.d.ts +61 -0
  90. package/dist/esm/index.js +65 -0
  91. package/dist/esm/lib/agent.d.ts +19 -0
  92. package/dist/esm/lib/agent.js +54 -0
  93. package/dist/esm/lib/application.d.ts +66 -0
  94. package/dist/esm/lib/application.js +274 -0
  95. package/dist/esm/lib/core/base_context_class.d.ts +14 -0
  96. package/dist/esm/lib/core/base_context_class.js +18 -0
  97. package/dist/esm/lib/core/base_context_logger.d.ts +36 -0
  98. package/dist/esm/lib/core/base_context_logger.js +60 -0
  99. package/dist/esm/lib/core/base_hook_class.d.ts +11 -0
  100. package/dist/esm/lib/core/base_hook_class.js +23 -0
  101. package/dist/esm/lib/core/context_httpclient.d.ts +16 -0
  102. package/dist/esm/lib/core/context_httpclient.js +26 -0
  103. package/dist/esm/lib/core/httpclient.d.ts +14 -0
  104. package/dist/esm/lib/core/httpclient.js +33 -0
  105. package/dist/esm/lib/core/logger.d.ts +3 -0
  106. package/dist/esm/lib/core/logger.js +37 -0
  107. package/dist/esm/lib/core/messenger/IMessenger.d.ts +50 -0
  108. package/dist/esm/lib/core/messenger/IMessenger.js +2 -0
  109. package/dist/esm/lib/core/messenger/index.d.ts +7 -0
  110. package/dist/esm/lib/core/messenger/index.js +11 -0
  111. package/dist/esm/lib/core/messenger/ipc.d.ts +57 -0
  112. package/dist/esm/lib/core/messenger/ipc.js +119 -0
  113. package/dist/esm/lib/core/messenger/local.d.ts +61 -0
  114. package/dist/esm/lib/core/messenger/local.js +127 -0
  115. package/dist/esm/lib/core/singleton.d.ts +23 -0
  116. package/dist/esm/lib/core/singleton.js +113 -0
  117. package/dist/esm/lib/core/utils.d.ts +2 -0
  118. package/dist/esm/lib/core/utils.js +70 -0
  119. package/dist/esm/lib/egg.d.ts +267 -0
  120. package/dist/esm/lib/egg.js +565 -0
  121. package/dist/esm/lib/loader/AgentWorkerLoader.d.ts +12 -0
  122. package/dist/esm/lib/loader/AgentWorkerLoader.js +20 -0
  123. package/dist/esm/lib/loader/AppWorkerLoader.d.ts +17 -0
  124. package/dist/esm/lib/loader/AppWorkerLoader.js +39 -0
  125. package/dist/esm/lib/loader/EggApplicationLoader.d.ts +4 -0
  126. package/dist/esm/lib/loader/EggApplicationLoader.js +4 -0
  127. package/dist/esm/lib/loader/index.d.ts +3 -0
  128. package/dist/esm/lib/loader/index.js +4 -0
  129. package/dist/esm/lib/start.d.ts +15 -0
  130. package/dist/esm/lib/start.js +43 -0
  131. package/dist/esm/lib/type.d.ts +295 -0
  132. package/dist/esm/lib/type.js +2 -0
  133. package/dist/esm/package.json +3 -0
  134. package/dist/package.json +4 -0
  135. package/package.json +83 -70
  136. package/src/agent.ts +7 -0
  137. package/src/app/middleware/body_parser.ts +3 -0
  138. package/{app/middleware/meta.js → src/app/middleware/meta.ts} +12 -4
  139. package/{app/middleware/notfound.js → src/app/middleware/notfound.ts} +9 -3
  140. package/src/app/middleware/override_method.ts +3 -0
  141. package/src/app/middleware/site_file.ts +49 -0
  142. package/{config/config.default.js → src/config/config.default.ts} +21 -42
  143. package/src/config/config.local.ts +11 -0
  144. package/src/config/config.unittest.ts +10 -0
  145. package/src/config/favicon.png +0 -0
  146. package/{config/plugin.js → src/config/plugin.ts} +1 -3
  147. package/src/index.ts +78 -0
  148. package/src/lib/agent.ts +66 -0
  149. package/{lib/application.js → src/lib/application.ts} +79 -120
  150. package/src/lib/core/base_context_class.ts +21 -0
  151. package/src/lib/core/base_context_logger.ts +67 -0
  152. package/src/lib/core/base_hook_class.ts +30 -0
  153. package/src/lib/core/context_httpclient.ts +33 -0
  154. package/src/lib/core/httpclient.ts +52 -0
  155. package/src/lib/core/logger.ts +42 -0
  156. package/src/lib/core/messenger/IMessenger.ts +58 -0
  157. package/src/lib/core/messenger/index.ts +15 -0
  158. package/{lib/core/messenger/ipc.js → src/lib/core/messenger/ipc.ts} +25 -29
  159. package/{lib/core/messenger/local.js → src/lib/core/messenger/local.ts} +27 -21
  160. package/{lib/core/singleton.js → src/lib/core/singleton.ts} +56 -33
  161. package/src/lib/core/utils.ts +77 -0
  162. package/{lib/egg.js → src/lib/egg.ts} +252 -218
  163. package/src/lib/loader/AgentWorkerLoader.ts +21 -0
  164. package/src/lib/loader/AppWorkerLoader.ts +42 -0
  165. package/src/lib/loader/EggApplicationLoader.ts +5 -0
  166. package/src/lib/loader/index.ts +3 -0
  167. package/src/lib/start.ts +56 -0
  168. package/src/lib/type.ts +329 -0
  169. package/agent.js +0 -11
  170. package/app/middleware/body_parser.js +0 -3
  171. package/app/middleware/override_method.js +0 -3
  172. package/app/middleware/site_file.js +0 -31
  173. package/config/config.local.js +0 -7
  174. package/config/config.unittest.js +0 -8
  175. package/index.d.ts +0 -1285
  176. package/index.js +0 -68
  177. package/lib/agent.js +0 -95
  178. package/lib/core/base_context_class.js +0 -20
  179. package/lib/core/base_context_logger.js +0 -64
  180. package/lib/core/base_hook_class.js +0 -31
  181. package/lib/core/context_httpclient.js +0 -26
  182. package/lib/core/dnscache_httpclient.js +0 -93
  183. package/lib/core/httpclient.js +0 -108
  184. package/lib/core/httpclient_next.js +0 -45
  185. package/lib/core/logger.js +0 -35
  186. package/lib/core/messenger/index.js +0 -14
  187. package/lib/core/utils.js +0 -73
  188. package/lib/loader/agent_worker_loader.js +0 -27
  189. package/lib/loader/app_worker_loader.js +0 -48
  190. package/lib/loader/index.js +0 -5
  191. package/lib/start.js +0 -39
  192. /package/{config → dist/commonjs/config}/favicon.png +0 -0
  193. /package/{app → src/app}/extend/context.js +0 -0
  194. /package/{app → src/app}/extend/helper.js +0 -0
  195. /package/{app → src/app}/extend/request.js +0 -0
  196. /package/{app → src/app}/extend/response.js +0 -0
@@ -0,0 +1,281 @@
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.Application = void 0;
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const node_fs_1 = __importDefault(require("node:fs"));
9
+ const node_http_1 = __importDefault(require("node:http"));
10
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
11
+ // @ts-ignore
12
+ const graceful_1 = __importDefault(require("graceful"));
13
+ const utility_1 = require("utility");
14
+ const core_1 = require("@eggjs/core");
15
+ const egg_js_1 = require("./egg.js");
16
+ const index_js_1 = require("./loader/index.js");
17
+ const base_context_class_js_1 = require("./core/base_context_class.js");
18
+ const EGG_LOADER = Symbol.for('egg#loader');
19
+ // client error => 400 Bad Request
20
+ // Refs: https://nodejs.org/dist/latest-v8.x/docs/api/http.html#http_event_clienterror
21
+ const DEFAULT_BAD_REQUEST_HTML = `<html>
22
+ <head><title>400 Bad Request</title></head>
23
+ <body bgcolor="white">
24
+ <center><h1>400 Bad Request</h1></center>
25
+ <hr><center>❤</center>
26
+ </body>
27
+ </html>`;
28
+ const DEFAULT_BAD_REQUEST_HTML_LENGTH = Buffer.byteLength(DEFAULT_BAD_REQUEST_HTML);
29
+ const DEFAULT_BAD_REQUEST_RESPONSE = `HTTP/1.1 400 Bad Request\r\nContent-Length: ${DEFAULT_BAD_REQUEST_HTML_LENGTH}` +
30
+ `\r\n\r\n${DEFAULT_BAD_REQUEST_HTML}`;
31
+ // Refs: https://github.com/nodejs/node/blob/b38c81/lib/_http_outgoing.js#L706-L710
32
+ function escapeHeaderValue(value) {
33
+ // Protect against response splitting. The regex test is there to
34
+ // minimize the performance impact in the common case.
35
+ return /[\r\n]/.test(value) ? value.replace(/[\r\n]+[ \t]*/g, '') : value;
36
+ }
37
+ /**
38
+ * The Helper class which can be used as utility function.
39
+ * We support developers to extend Helper through ${baseDir}/app/extend/helper.js ,
40
+ * then you can use all method on `ctx.helper` that is a instance of Helper.
41
+ */
42
+ class HelperClass extends base_context_class_js_1.BaseContextClass {
43
+ }
44
+ /**
45
+ * Singleton instance in App Worker, extend {@link EggApplicationCore}
46
+ * @augments EggApplicationCore
47
+ */
48
+ class Application extends egg_js_1.EggApplicationCore {
49
+ // will auto set after 'server' event emit
50
+ server;
51
+ #locals = {};
52
+ /**
53
+ * reference to {@link Helper}
54
+ * @member {Helper} Application#Helper
55
+ */
56
+ Helper = HelperClass;
57
+ /**
58
+ * @class
59
+ * @param {Object} options - see {@link EggApplicationCore}
60
+ */
61
+ constructor(options) {
62
+ super({
63
+ ...options,
64
+ type: 'application',
65
+ });
66
+ }
67
+ async load() {
68
+ await super.load();
69
+ this.#warnConfusedConfig();
70
+ this.#bindEvents();
71
+ }
72
+ get [EGG_LOADER]() {
73
+ return index_js_1.AppWorkerLoader;
74
+ }
75
+ #responseRaw(socket, raw) {
76
+ /* istanbul ignore next */
77
+ if (!socket.writable)
78
+ return;
79
+ if (!raw) {
80
+ return socket.end(DEFAULT_BAD_REQUEST_RESPONSE);
81
+ }
82
+ const body = (raw.body == null) ? DEFAULT_BAD_REQUEST_HTML : raw.body;
83
+ const headers = raw.headers || {};
84
+ const status = raw.status || 400;
85
+ let responseHeaderLines = '';
86
+ const firstLine = `HTTP/1.1 ${status} ${node_http_1.default.STATUS_CODES[status] || 'Unknown'}`;
87
+ // Not that safe because no validation for header keys.
88
+ // Refs: https://github.com/nodejs/node/blob/b38c81/lib/_http_outgoing.js#L451
89
+ for (const key of Object.keys(headers)) {
90
+ if (key.toLowerCase() === 'content-length') {
91
+ delete headers[key];
92
+ continue;
93
+ }
94
+ responseHeaderLines += `${key}: ${escapeHeaderValue(headers[key])}\r\n`;
95
+ }
96
+ responseHeaderLines += `Content-Length: ${Buffer.byteLength(body)}\r\n`;
97
+ socket.end(`${firstLine}\r\n${responseHeaderLines}\r\n${body.toString()}`);
98
+ }
99
+ onClientError(err, socket) {
100
+ // ignore when there is no http body, it almost like an ECONNRESET
101
+ if (err.rawPacket) {
102
+ this.logger.warn('[egg:application] A client (%s:%d) error [%s] occurred: %s', socket.remoteAddress, socket.remotePort, err.code, err.message);
103
+ }
104
+ if (typeof this.config.onClientError === 'function') {
105
+ const p = core_1.utils.callFn(this.config.onClientError, [err, socket, this]);
106
+ // the returned object should be something like:
107
+ //
108
+ // {
109
+ // body: '...',
110
+ // headers: {
111
+ // ...
112
+ // },
113
+ // status: 400
114
+ // }
115
+ //
116
+ // default values:
117
+ //
118
+ // + body: ''
119
+ // + headers: {}
120
+ // + status: 400
121
+ p.then(ret => {
122
+ this.#responseRaw(socket, ret || {});
123
+ }).catch(err => {
124
+ this.logger.error(err);
125
+ this.#responseRaw(socket);
126
+ });
127
+ }
128
+ else {
129
+ // because it's a raw socket object, we should return the raw HTTP response
130
+ // packet.
131
+ this.#responseRaw(socket);
132
+ }
133
+ }
134
+ onServer(server) {
135
+ // expose app.server
136
+ this.server = server;
137
+ // set ignore code
138
+ const serverGracefulIgnoreCode = this.config.serverGracefulIgnoreCode || [];
139
+ /* istanbul ignore next */
140
+ (0, graceful_1.default)({
141
+ server: [server],
142
+ error: (err, throwErrorCount) => {
143
+ const originMessage = err.message;
144
+ if (originMessage) {
145
+ // shouldjs will override error property but only getter
146
+ // https://github.com/shouldjs/should.js/blob/889e22ebf19a06bc2747d24cf34b25cc00b37464/lib/assertion-error.js#L26
147
+ Object.defineProperty(err, 'message', {
148
+ get() {
149
+ return `${originMessage} (uncaughtException throw ${throwErrorCount} times on pid: ${process.pid})`;
150
+ },
151
+ configurable: true,
152
+ enumerable: false,
153
+ });
154
+ }
155
+ this.coreLogger.error(err);
156
+ },
157
+ ignoreCode: serverGracefulIgnoreCode,
158
+ });
159
+ server.on('clientError', (err, socket) => this.onClientError(err, socket));
160
+ // server timeout
161
+ if (typeof this.config.serverTimeout === 'number') {
162
+ server.setTimeout(this.config.serverTimeout);
163
+ }
164
+ }
165
+ /**
166
+ * global locals for view
167
+ * @member {Object} Application#locals
168
+ * @see Context#locals
169
+ */
170
+ get locals() {
171
+ return this.#locals;
172
+ }
173
+ set locals(val) {
174
+ (0, utility_1.assign)(this.#locals, val);
175
+ }
176
+ /**
177
+ * save routers to `run/router.json`
178
+ * @private
179
+ */
180
+ dumpConfig() {
181
+ super.dumpConfig();
182
+ // dump routers to router.json
183
+ const rundir = this.config.rundir;
184
+ const FULLPATH = this.loader.FileLoader.FULLPATH;
185
+ try {
186
+ const dumpRouterFile = node_path_1.default.join(rundir, 'router.json');
187
+ const routers = [];
188
+ for (const layer of this.router.stack) {
189
+ routers.push({
190
+ name: layer.name,
191
+ methods: layer.methods,
192
+ paramNames: layer.paramNames,
193
+ path: layer.path,
194
+ regexp: layer.regexp.toString(),
195
+ stack: layer.stack.map((stack) => stack[FULLPATH] || stack._name || stack.name || 'anonymous'),
196
+ });
197
+ }
198
+ node_fs_1.default.writeFileSync(dumpRouterFile, JSON.stringify(routers, null, 2));
199
+ }
200
+ catch (err) {
201
+ this.coreLogger.warn(`dumpConfig router.json error: ${err.message}`);
202
+ }
203
+ }
204
+ /**
205
+ * Run async function in the background
206
+ * @see Context#runInBackground
207
+ * @param {Function} scope - the first args is an anonymous ctx
208
+ */
209
+ runInBackground(scope) {
210
+ const ctx = this.createAnonymousContext();
211
+ if (!scope.name) {
212
+ Reflect.set(scope, '_name', core_1.utils.getCalleeFromStack(true));
213
+ }
214
+ this.ctxStorage.run(ctx, () => {
215
+ ctx.runInBackground(scope);
216
+ });
217
+ }
218
+ /**
219
+ * Run async function in the anonymous context scope
220
+ * @see Context#runInAnonymousContextScope
221
+ * @param {Function} scope - the first args is an anonymous ctx, scope should be async function
222
+ * @param {Request} [req] - if you want to mock request like querystring, you can pass an object to this function.
223
+ */
224
+ async runInAnonymousContextScope(scope, req) {
225
+ const ctx = this.createAnonymousContext(req);
226
+ if (!scope.name) {
227
+ Reflect.set(scope, '_name', core_1.utils.getCalleeFromStack(true));
228
+ }
229
+ return await this.ctxStorage.run(ctx, async () => {
230
+ return await scope(ctx);
231
+ });
232
+ }
233
+ /**
234
+ * secret key for Application
235
+ * @member {String} Application#keys
236
+ */
237
+ get keys() {
238
+ if (!this._keys) {
239
+ if (!this.config.keys) {
240
+ if (this.config.env === 'local' || this.config.env === 'unittest') {
241
+ const configPath = node_path_1.default.join(this.config.baseDir, 'config/config.default.js');
242
+ console.error('Cookie need secret key to sign and encrypt.');
243
+ console.error('Please add `config.keys` in %s', configPath);
244
+ }
245
+ throw new Error('Please set config.keys first');
246
+ }
247
+ this._keys = this.config.keys.split(',').map(s => s.trim());
248
+ }
249
+ return this._keys;
250
+ }
251
+ /**
252
+ * bind app's events
253
+ *
254
+ * @private
255
+ */
256
+ #bindEvents() {
257
+ // Browser Cookie Limits: http://browsercookielimits.squawky.net/
258
+ this.on('cookieLimitExceed', ({ name, value, ctx }) => {
259
+ const err = new Error(`cookie ${name}'s length(${value.length}) exceed the limit(4093)`);
260
+ err.name = 'CookieLimitExceedError';
261
+ ctx.coreLogger.error(err);
262
+ });
263
+ // expose server to support websocket
264
+ this.once('server', (server) => this.onServer(server));
265
+ }
266
+ /**
267
+ * warn when confused configurations are present
268
+ *
269
+ * @private
270
+ */
271
+ #warnConfusedConfig() {
272
+ const confusedConfigurations = this.config.confusedConfigurations;
273
+ Object.keys(confusedConfigurations).forEach(key => {
274
+ if (this.config[key] !== undefined) {
275
+ this.logger.warn('[egg:application] Unexpected config key `%o` exists, Please use `%o` instead.', key, confusedConfigurations[key]);
276
+ }
277
+ });
278
+ }
279
+ }
280
+ exports.Application = Application;
281
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2FwcGxpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDBEQUE2QjtBQUM3QixzREFBeUI7QUFDekIsMERBQTZCO0FBRTdCLDZEQUE2RDtBQUM3RCxhQUFhO0FBQ2Isd0RBQWdDO0FBQ2hDLHFDQUFpQztBQUNqQyxzQ0FBZ0Q7QUFDaEQscUNBQXFGO0FBQ3JGLGdEQUFvRDtBQUNwRCx3RUFBZ0U7QUFFaEUsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUU1QyxrQ0FBa0M7QUFDbEMsc0ZBQXNGO0FBQ3RGLE1BQU0sd0JBQXdCLEdBQUc7Ozs7OztVQU12QixDQUFDO0FBQ1gsTUFBTSwrQkFBK0IsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFDcEYsTUFBTSw0QkFBNEIsR0FDaEMsK0NBQStDLCtCQUErQixFQUFFO0lBQ2hGLFdBQVcsd0JBQXdCLEVBQUUsQ0FBQztBQUV4QyxtRkFBbUY7QUFDbkYsU0FBUyxpQkFBaUIsQ0FBQyxLQUFhO0lBQ3RDLGlFQUFpRTtJQUNqRSxzREFBc0Q7SUFDdEQsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDNUUsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFdBQVksU0FBUSx3Q0FBZ0I7Q0FBRztBQUU3Qzs7O0dBR0c7QUFDSCxNQUFhLFdBQVksU0FBUSwyQkFBa0I7SUFDakQsMENBQTBDO0lBQzFDLE1BQU0sQ0FBZTtJQUNyQixPQUFPLEdBQXdCLEVBQUUsQ0FBQztJQUNsQzs7O09BR0c7SUFDSCxNQUFNLEdBQUcsV0FBVyxDQUFDO0lBRXJCOzs7T0FHRztJQUNILFlBQVksT0FBaUQ7UUFDM0QsS0FBSyxDQUFDO1lBQ0osR0FBRyxPQUFPO1lBQ1YsSUFBSSxFQUFFLGFBQWE7U0FDcEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLEtBQUssQ0FBQyxJQUFJO1FBQ2xCLE1BQU0sS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNkLE9BQU8sMEJBQWUsQ0FBQztJQUN6QixDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQWMsRUFBRSxHQUFTO1FBQ3BDLDBCQUEwQjtRQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQzdCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNULE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ3RFLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ2xDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDO1FBRWpDLElBQUksbUJBQW1CLEdBQUcsRUFBRSxDQUFDO1FBQzdCLE1BQU0sU0FBUyxHQUFHLFlBQVksTUFBTSxJQUFJLG1CQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBRWpGLHVEQUF1RDtRQUN2RCw4RUFBOEU7UUFDOUUsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDdkMsSUFBSSxHQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztnQkFDM0MsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3BCLFNBQVM7WUFDWCxDQUFDO1lBQ0QsbUJBQW1CLElBQUksR0FBRyxHQUFHLEtBQUssaUJBQWlCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUMxRSxDQUFDO1FBRUQsbUJBQW1CLElBQUksbUJBQW1CLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUV4RSxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxPQUFPLG1CQUFtQixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELGFBQWEsQ0FBQyxHQUFRLEVBQUUsTUFBYztRQUNwQyxrRUFBa0U7UUFDbEUsSUFBSSxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNERBQTRELEVBQzNFLE1BQU0sQ0FBQyxhQUFhLEVBQ3BCLE1BQU0sQ0FBQyxVQUFVLEVBQ2pCLEdBQUcsQ0FBQyxJQUFJLEVBQ1IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxJQUFJLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDcEQsTUFBTSxDQUFDLEdBQUcsWUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFFLENBQUMsQ0FBQztZQUU1RSxnREFBZ0Q7WUFDaEQsRUFBRTtZQUNGLE1BQU07WUFDTixtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLFlBQVk7WUFDWixTQUFTO1lBQ1Qsa0JBQWtCO1lBQ2xCLE1BQU07WUFDTixFQUFFO1lBQ0Ysa0JBQWtCO1lBQ2xCLEVBQUU7WUFDRixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNYLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN2QyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLDJFQUEyRTtZQUMzRSxVQUFVO1lBQ1YsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFtQjtRQUMxQixvQkFBb0I7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsa0JBQWtCO1FBQ2xCLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsSUFBSSxFQUFFLENBQUM7UUFFNUUsMEJBQTBCO1FBQzFCLElBQUEsa0JBQVEsRUFBQztZQUNQLE1BQU0sRUFBRSxDQUFFLE1BQU0sQ0FBRTtZQUNsQixLQUFLLEVBQUUsQ0FBQyxHQUFVLEVBQUUsZUFBdUIsRUFBRSxFQUFFO2dCQUM3QyxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO2dCQUNsQyxJQUFJLGFBQWEsRUFBRSxDQUFDO29CQUNsQix3REFBd0Q7b0JBQ3hELGlIQUFpSDtvQkFDakgsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFO3dCQUNwQyxHQUFHOzRCQUNELE9BQU8sR0FBRyxhQUFhLDZCQUE2QixlQUFlLGtCQUFrQixPQUFPLENBQUMsR0FBRyxHQUFHLENBQUM7d0JBQ3RHLENBQUM7d0JBQ0QsWUFBWSxFQUFFLElBQUk7d0JBQ2xCLFVBQVUsRUFBRSxLQUFLO3FCQUNsQixDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QixDQUFDO1lBQ0QsVUFBVSxFQUFFLHdCQUF3QjtTQUNyQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLE1BQWdCLENBQUMsQ0FBQyxDQUFDO1FBRXJGLGlCQUFpQjtRQUNqQixJQUFJLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbEQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQy9DLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsR0FBd0I7UUFDakMsSUFBQSxnQkFBTSxFQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVU7UUFDUixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbkIsOEJBQThCO1FBQzlCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUNqRCxJQUFJLENBQUM7WUFDSCxNQUFNLGNBQWMsR0FBRyxtQkFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDeEQsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ25CLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDdEMsT0FBTyxDQUFDLElBQUksQ0FBQztvQkFDWCxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztvQkFDdEIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO29CQUM1QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7b0JBQ2hCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtvQkFDL0IsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQztpQkFDcEcsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELGlCQUFFLENBQUMsYUFBYSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyRSxDQUFDO1FBQUMsT0FBTyxHQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxpQ0FBaUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDdkUsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsZUFBZSxDQUFDLEtBQWdDO1FBQzlDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFlBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFO1lBQzVCLEdBQUcsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsMEJBQTBCLENBQUMsS0FBeUMsRUFBRSxHQUFhO1FBQ3ZGLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxZQUFRLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRTtZQUMvQyxPQUFPLE1BQU0sS0FBSyxDQUFDLEdBQWlCLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLElBQUk7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN0QixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxVQUFVLEVBQUUsQ0FBQztvQkFDbEUsTUFBTSxVQUFVLEdBQUcsbUJBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztvQkFDOUUsT0FBTyxDQUFDLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO29CQUM3RCxPQUFPLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUM5RCxDQUFDO2dCQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztZQUNsRCxDQUFDO1lBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVc7UUFDVCxpRUFBaUU7UUFDakUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFO1lBQ3BELE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLFVBQVUsSUFBSSxhQUFhLEtBQUssQ0FBQyxNQUFNLDBCQUEwQixDQUFDLENBQUM7WUFDekYsR0FBRyxDQUFDLElBQUksR0FBRyx3QkFBd0IsQ0FBQztZQUNwQyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUNILHFDQUFxQztRQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQW1CLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILG1CQUFtQjtRQUNqQixNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUM7UUFDbEUsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNoRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLCtFQUErRSxFQUM5RixHQUFHLEVBQUUsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN0QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFsUUQsa0NBa1FDIn0=
@@ -0,0 +1,14 @@
1
+ import { BaseContextClass as EggCoreBaseContextClass } from '@eggjs/core';
2
+ import type { EggContext } from '../egg.js';
3
+ import { BaseContextLogger } from './base_context_logger.js';
4
+ /**
5
+ * BaseContextClass is a base class that can be extended,
6
+ * it's instantiated in context level,
7
+ * {@link Helper}, {@link Service} is extending it.
8
+ */
9
+ export declare class BaseContextClass extends EggCoreBaseContextClass {
10
+ #private;
11
+ ctx: EggContext;
12
+ protected pathName?: string;
13
+ get logger(): BaseContextLogger;
14
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseContextClass = void 0;
4
+ const core_1 = require("@eggjs/core");
5
+ const base_context_logger_js_1 = require("./base_context_logger.js");
6
+ /**
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
+ class BaseContextClass extends core_1.BaseContextClass {
12
+ pathName;
13
+ #logger;
14
+ get logger() {
15
+ if (!this.#logger) {
16
+ this.#logger = new base_context_logger_js_1.BaseContextLogger(this.ctx, this.pathName);
17
+ }
18
+ return this.#logger;
19
+ }
20
+ }
21
+ exports.BaseContextClass = BaseContextClass;
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9jb250ZXh0X2NsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL2Jhc2VfY29udGV4dF9jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzQ0FBMEU7QUFFMUUscUVBQTZEO0FBRTdEOzs7O0dBSUc7QUFDSCxNQUFhLGdCQUFpQixTQUFRLHVCQUF1QjtJQUVqRCxRQUFRLENBQVU7SUFDNUIsT0FBTyxDQUFxQjtJQUU1QixJQUFJLE1BQU07UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSwwQ0FBaUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQVhELDRDQVdDIn0=
@@ -0,0 +1,36 @@
1
+ import type { EggContext } from '../egg.js';
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;
36
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseContextLogger = void 0;
4
+ class BaseContextLogger {
5
+ #ctx;
6
+ #pathName;
7
+ /**
8
+ * @class
9
+ * @param {Context} ctx - context instance
10
+ * @param {String} pathName - class path name
11
+ * @since 1.0.0
12
+ */
13
+ constructor(ctx, pathName) {
14
+ /**
15
+ * @member {Context} BaseContextLogger#ctx
16
+ * @since 1.2.0
17
+ */
18
+ this.#ctx = ctx;
19
+ this.#pathName = pathName;
20
+ }
21
+ _log(method, args) {
22
+ // add `[${pathName}]` in log
23
+ if (this.#pathName && typeof args[0] === 'string') {
24
+ args[0] = `[${this.#pathName}] ${args[0]}`;
25
+ }
26
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
27
+ // @ts-ignore
28
+ this.#ctx.app.logger[method](...args);
29
+ }
30
+ /**
31
+ * @member {Function} BaseContextLogger#debug
32
+ * @param {...any} args - log msg
33
+ * @since 1.2.0
34
+ */
35
+ debug(...args) {
36
+ this._log('debug', args);
37
+ }
38
+ /**
39
+ * @member {Function} BaseContextLogger#info
40
+ * @param {...any} args - log msg
41
+ * @since 1.2.0
42
+ */
43
+ info(...args) {
44
+ this._log('info', args);
45
+ }
46
+ /**
47
+ * @member {Function} BaseContextLogger#warn
48
+ * @param {...any} args - log msg
49
+ * @since 1.2.0
50
+ */
51
+ warn(...args) {
52
+ this._log('warn', args);
53
+ }
54
+ /**
55
+ * @member {Function} BaseContextLogger#error
56
+ * @param {...any} args - log msg
57
+ * @since 1.2.0
58
+ */
59
+ error(...args) {
60
+ this._log('error', args);
61
+ }
62
+ }
63
+ exports.BaseContextLogger = BaseContextLogger;
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9jb250ZXh0X2xvZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9iYXNlX2NvbnRleHRfbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLE1BQWEsaUJBQWlCO0lBQ25CLElBQUksQ0FBYTtJQUNqQixTQUFTLENBQVU7SUFFNUI7Ozs7O09BS0c7SUFDSCxZQUFZLEdBQWUsRUFBRSxRQUFpQjtRQUM1Qzs7O1dBR0c7UUFDSCxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNoQixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztJQUM1QixDQUFDO0lBRVMsSUFBSSxDQUFDLE1BQTJDLEVBQUUsSUFBVztRQUNyRSw2QkFBNkI7UUFDN0IsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2xELElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDN0MsQ0FBQztRQUNELDZEQUE2RDtRQUM3RCxhQUFhO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsR0FBRyxJQUFXO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxDQUFDLEdBQUcsSUFBVztRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksQ0FBQyxHQUFHLElBQVc7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsR0FBRyxJQUFXO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQWhFRCw4Q0FnRUMifQ==
@@ -0,0 +1,11 @@
1
+ import type { ILifecycleBoot } from '@eggjs/core';
2
+ import type { Application, Agent } from '../../index.js';
3
+ export declare class BaseHookClass implements ILifecycleBoot {
4
+ #private;
5
+ fullPath?: string;
6
+ constructor(instance: Application | Agent);
7
+ get logger(): import("egg-logger").EggLogger;
8
+ get config(): import("../type.js").EggAppConfig;
9
+ get app(): Application;
10
+ get agent(): Agent;
11
+ }
@@ -0,0 +1,30 @@
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.BaseHookClass = void 0;
7
+ const node_assert_1 = __importDefault(require("node:assert"));
8
+ class BaseHookClass {
9
+ fullPath;
10
+ #instance;
11
+ constructor(instance) {
12
+ this.#instance = instance;
13
+ }
14
+ get logger() {
15
+ return this.#instance.logger;
16
+ }
17
+ get config() {
18
+ return this.#instance.config;
19
+ }
20
+ get app() {
21
+ (0, node_assert_1.default)(this.#instance.type === 'application', 'agent boot should not use app instance');
22
+ return this.#instance;
23
+ }
24
+ get agent() {
25
+ (0, node_assert_1.default)(this.#instance.type === 'agent', 'app boot should not use agent instance');
26
+ return this.#instance;
27
+ }
28
+ }
29
+ exports.BaseHookClass = BaseHookClass;
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV9ob29rX2NsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL2Jhc2VfaG9va19jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw4REFBaUM7QUFJakMsTUFBYSxhQUFhO0lBQ3hCLFFBQVEsQ0FBVTtJQUNsQixTQUFTLENBQXNCO0lBRS9CLFlBQVksUUFBNkI7UUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksR0FBRztRQUNMLElBQUEscUJBQU0sRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxhQUFhLEVBQUUsd0NBQXdDLENBQUMsQ0FBQztRQUN4RixPQUFPLElBQUksQ0FBQyxTQUF3QixDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxJQUFBLHFCQUFNLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLHdDQUF3QyxDQUFDLENBQUM7UUFDbEYsT0FBTyxJQUFJLENBQUMsU0FBa0IsQ0FBQztJQUNqQyxDQUFDO0NBQ0Y7QUF6QkQsc0NBeUJDIn0=
@@ -0,0 +1,16 @@
1
+ import type { EggContext, EggApplicationCore } from '../egg.js';
2
+ import type { HttpClientRequestURL, HttpClientRequestOptions } from './httpclient.js';
3
+ export declare class ContextHttpClient {
4
+ ctx: EggContext;
5
+ app: EggApplicationCore;
6
+ constructor(ctx: EggContext);
7
+ /**
8
+ * http request helper base on {@link HttpClient}, it will auto save httpclient log.
9
+ * Keep the same api with {@link Application#curl}.
10
+ *
11
+ * @param {String|Object} url - request url address.
12
+ * @param {Object} [options] - options for request.
13
+ */
14
+ curl<T = any>(url: HttpClientRequestURL, options?: HttpClientRequestOptions): Promise<import("./httpclient.js").HttpClientResponse<T>>;
15
+ request<T = any>(url: HttpClientRequestURL, options?: HttpClientRequestOptions): Promise<import("./httpclient.js").HttpClientResponse<T>>;
16
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContextHttpClient = void 0;
4
+ class ContextHttpClient {
5
+ ctx;
6
+ app;
7
+ constructor(ctx) {
8
+ this.ctx = ctx;
9
+ this.app = ctx.app;
10
+ }
11
+ /**
12
+ * http request helper base on {@link HttpClient}, it will auto save httpclient log.
13
+ * Keep the same api with {@link Application#curl}.
14
+ *
15
+ * @param {String|Object} url - request url address.
16
+ * @param {Object} [options] - options for request.
17
+ */
18
+ async curl(url, options) {
19
+ options = {
20
+ ...options,
21
+ ctx: this.ctx,
22
+ };
23
+ return await this.app.curl(url, options);
24
+ }
25
+ async request(url, options) {
26
+ return await this.curl(url, options);
27
+ }
28
+ }
29
+ exports.ContextHttpClient = ContextHttpClient;
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dF9odHRwY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL2NvbnRleHRfaHR0cGNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSxNQUFhLGlCQUFpQjtJQUM1QixHQUFHLENBQWE7SUFDaEIsR0FBRyxDQUFxQjtJQUV4QixZQUFZLEdBQWU7UUFDekIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxJQUFJLENBQVUsR0FBeUIsRUFBRSxPQUFrQztRQUMvRSxPQUFPLEdBQUc7WUFDUixHQUFHLE9BQU87WUFDVixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7U0FDZCxDQUFDO1FBQ0YsT0FBTyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFJLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBVSxHQUF5QixFQUFFLE9BQWtDO1FBQ2xGLE9BQU8sTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFJLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUEzQkQsOENBMkJDIn0=
@@ -0,0 +1,14 @@
1
+ import { EggCoreContext } from '@eggjs/core';
2
+ import { HttpClient as RawHttpClient, RequestURL as HttpClientRequestURL, RequestOptions } from 'urllib';
3
+ import type { EggApplicationCore } from '../egg.js';
4
+ export type { HttpClientResponse, RequestURL as HttpClientRequestURL, } from 'urllib';
5
+ export interface HttpClientRequestOptions extends RequestOptions {
6
+ ctx?: EggCoreContext;
7
+ tracer?: unknown;
8
+ }
9
+ export declare class HttpClient extends RawHttpClient {
10
+ #private;
11
+ constructor(app: EggApplicationCore);
12
+ request<T = any>(url: HttpClientRequestURL, options?: HttpClientRequestOptions): Promise<import("urllib").HttpClientResponse<T>>;
13
+ curl<T = any>(url: HttpClientRequestURL, options?: HttpClientRequestOptions): Promise<import("urllib").HttpClientResponse<T>>;
14
+ }
@@ -0,0 +1,40 @@
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.HttpClient = void 0;
7
+ const urllib_1 = require("urllib");
8
+ const ms_1 = __importDefault(require("ms"));
9
+ class HttpClient extends urllib_1.HttpClient {
10
+ #app;
11
+ constructor(app) {
12
+ normalizeConfig(app);
13
+ const config = app.config.httpclient;
14
+ super({
15
+ defaultArgs: config.request,
16
+ });
17
+ this.#app = app;
18
+ }
19
+ async request(url, options) {
20
+ options = options ?? {};
21
+ if (options.ctx?.tracer) {
22
+ options.tracer = options.ctx.tracer;
23
+ }
24
+ else {
25
+ options.tracer = options.tracer ?? this.#app.tracer;
26
+ }
27
+ return await super.request(url, options);
28
+ }
29
+ async curl(url, options) {
30
+ return await this.request(url, options);
31
+ }
32
+ }
33
+ exports.HttpClient = HttpClient;
34
+ function normalizeConfig(app) {
35
+ const config = app.config.httpclient;
36
+ if (typeof config.request?.timeout === 'string') {
37
+ config.request.timeout = (0, ms_1.default)(config.request.timeout);
38
+ }
39
+ }
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cGNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9odHRwY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLG1DQUlnQjtBQUNoQiw0Q0FBb0I7QUFhcEIsTUFBYSxVQUFXLFNBQVEsbUJBQWE7SUFDbEMsSUFBSSxDQUE0QztJQUV6RCxZQUFZLEdBQXVCO1FBQ2pDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUNyQyxLQUFLLENBQUM7WUFDSixXQUFXLEVBQUUsTUFBTSxDQUFDLE9BQU87U0FDNUIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQVUsR0FBeUIsRUFBRSxPQUFrQztRQUNsRixPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUN4QixJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDeEIsT0FBTyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUN0QyxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN0RCxDQUFDO1FBQ0QsT0FBTyxNQUFNLEtBQUssQ0FBQyxPQUFPLENBQUksR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFVLEdBQXlCLEVBQUUsT0FBa0M7UUFDL0UsT0FBTyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUksR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FDRjtBQXpCRCxnQ0F5QkM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxHQUF1QjtJQUM5QyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUNyQyxJQUFJLE9BQU8sTUFBTSxDQUFDLE9BQU8sRUFBRSxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDaEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBQSxZQUFFLEVBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFpQixDQUFDLENBQUM7SUFDaEUsQ0FBQztBQUNILENBQUMifQ==
@@ -0,0 +1,3 @@
1
+ import { EggLoggers } from 'egg-logger';
2
+ import type { EggApplicationCore } from '../egg.js';
3
+ export declare function createLoggers(app: EggApplicationCore): EggLoggers;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createLoggers = createLoggers;
4
+ const egg_logger_1 = require("egg-logger");
5
+ const onelogger_1 = require("onelogger");
6
+ function createLoggers(app) {
7
+ const loggerOptions = {
8
+ ...app.config.logger,
9
+ type: app.type,
10
+ localStorage: app.ctxStorage,
11
+ };
12
+ // set DEBUG level into INFO on prod env
13
+ if (app.config.env === 'prod' && loggerOptions.level === 'DEBUG' && !app.config.logger.allowDebugAtProd) {
14
+ loggerOptions.level = 'INFO';
15
+ }
16
+ const loggers = new egg_logger_1.EggLoggers({
17
+ logger: loggerOptions,
18
+ customLogger: app.config.customLogger,
19
+ });
20
+ // won't print to console after started, except for local and unittest
21
+ app.ready(() => {
22
+ if (app.config.logger.disableConsoleAfterReady) {
23
+ loggers.disableConsole();
24
+ loggers.coreLogger.info('[egg:lib:core:logger] disable console log after app ready');
25
+ }
26
+ });
27
+ // set global logger
28
+ for (const loggerName of Object.keys(loggers)) {
29
+ (0, onelogger_1.setCustomLogger)(loggerName, loggers[loggerName]);
30
+ }
31
+ // reset global logger on beforeClose hook
32
+ app.lifecycle.registerBeforeClose(() => {
33
+ for (const loggerName of Object.keys(loggers)) {
34
+ (0, onelogger_1.setCustomLogger)(loggerName, undefined);
35
+ }
36
+ });
37
+ loggers.coreLogger.info('[egg:lib:core:logger] init all loggers with options: %j', loggerOptions);
38
+ return loggers;
39
+ }
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLHNDQXFDQztBQXpDRCwyQ0FBMkQ7QUFDM0QseUNBQTRDO0FBRzVDLFNBQWdCLGFBQWEsQ0FBQyxHQUF1QjtJQUNuRCxNQUFNLGFBQWEsR0FBRztRQUNwQixHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTTtRQUNwQixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7UUFDZCxZQUFZLEVBQUUsR0FBRyxDQUFDLFVBQVU7S0FDUixDQUFDO0lBRXZCLHdDQUF3QztJQUN4QyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLE1BQU0sSUFBSSxhQUFhLENBQUMsS0FBSyxLQUFLLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEcsYUFBYSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7SUFDL0IsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHLElBQUksdUJBQVUsQ0FBQztRQUM3QixNQUFNLEVBQUUsYUFBYTtRQUNyQixZQUFZLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZO0tBQ3RDLENBQUMsQ0FBQztJQUVILHNFQUFzRTtJQUN0RSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtRQUNiLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUMvQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekIsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsMkRBQTJELENBQUMsQ0FBQztRQUN2RixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxvQkFBb0I7SUFDcEIsS0FBSyxNQUFNLFVBQVUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDOUMsSUFBQSwyQkFBZSxFQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBQ0QsMENBQTBDO0lBQzFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFO1FBQ3JDLEtBQUssTUFBTSxVQUFVLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzlDLElBQUEsMkJBQWUsRUFBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMseURBQXlELEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDbEcsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyJ9