egg 3.29.0 → 4.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/README.zh-CN.md +7 -5
- package/dist/commonjs/agent.d.ts +4 -0
- package/dist/commonjs/agent.js +10 -0
- package/dist/commonjs/app/extend/context.d.ts +2 -0
- package/dist/commonjs/app/extend/context.js +263 -0
- package/dist/commonjs/app/middleware/body_parser.d.ts +2 -0
- package/dist/commonjs/app/middleware/body_parser.js +8 -0
- package/dist/commonjs/app/middleware/meta.d.ts +11 -0
- package/dist/commonjs/app/middleware/meta.js +22 -0
- package/dist/commonjs/app/middleware/notfound.d.ts +8 -0
- package/dist/commonjs/app/middleware/notfound.js +31 -0
- package/dist/commonjs/app/middleware/override_method.d.ts +2 -0
- package/dist/commonjs/app/middleware/override_method.js +8 -0
- package/dist/commonjs/app/middleware/site_file.d.ts +7 -0
- package/dist/commonjs/app/middleware/site_file.js +59 -0
- package/dist/commonjs/config/config.default.d.ts +9 -0
- package/dist/commonjs/config/config.default.js +378 -0
- package/dist/commonjs/config/config.local.d.ts +8 -0
- package/dist/commonjs/config/config.local.js +12 -0
- package/dist/commonjs/config/config.unittest.d.ts +7 -0
- package/dist/commonjs/config/config.unittest.js +11 -0
- package/dist/commonjs/config/plugin.d.ts +122 -0
- package/dist/commonjs/config/plugin.js +125 -0
- package/dist/commonjs/index.d.ts +61 -0
- package/dist/commonjs/index.js +89 -0
- package/dist/commonjs/lib/agent.d.ts +19 -0
- package/dist/commonjs/lib/agent.js +58 -0
- package/dist/commonjs/lib/application.d.ts +66 -0
- package/dist/commonjs/lib/application.js +281 -0
- package/dist/commonjs/lib/core/base_context_class.d.ts +14 -0
- package/dist/commonjs/lib/core/base_context_class.js +22 -0
- package/dist/commonjs/lib/core/base_context_logger.d.ts +36 -0
- package/dist/commonjs/lib/core/base_context_logger.js +64 -0
- package/dist/commonjs/lib/core/base_hook_class.d.ts +11 -0
- package/dist/commonjs/lib/core/base_hook_class.js +30 -0
- package/dist/commonjs/lib/core/context_httpclient.d.ts +16 -0
- package/dist/commonjs/lib/core/context_httpclient.js +30 -0
- package/dist/commonjs/lib/core/httpclient.d.ts +14 -0
- package/dist/commonjs/lib/core/httpclient.js +40 -0
- package/dist/commonjs/lib/core/logger.d.ts +3 -0
- package/dist/commonjs/lib/core/logger.js +40 -0
- package/dist/commonjs/lib/core/messenger/IMessenger.d.ts +50 -0
- package/dist/commonjs/lib/core/messenger/IMessenger.js +3 -0
- package/dist/commonjs/lib/core/messenger/index.d.ts +7 -0
- package/dist/commonjs/lib/core/messenger/index.js +14 -0
- package/dist/commonjs/lib/core/messenger/ipc.d.ts +57 -0
- package/dist/commonjs/lib/core/messenger/ipc.js +126 -0
- package/dist/commonjs/lib/core/messenger/local.d.ts +61 -0
- package/dist/commonjs/lib/core/messenger/local.js +134 -0
- package/dist/commonjs/lib/core/singleton.d.ts +23 -0
- package/dist/commonjs/lib/core/singleton.js +120 -0
- package/dist/commonjs/lib/core/utils.d.ts +2 -0
- package/dist/commonjs/lib/core/utils.js +77 -0
- package/dist/commonjs/lib/egg.d.ts +271 -0
- package/dist/commonjs/lib/egg.js +613 -0
- package/dist/commonjs/lib/loader/AgentWorkerLoader.d.ts +12 -0
- package/dist/commonjs/lib/loader/AgentWorkerLoader.js +24 -0
- package/dist/commonjs/lib/loader/AppWorkerLoader.d.ts +17 -0
- package/dist/commonjs/lib/loader/AppWorkerLoader.js +43 -0
- package/dist/commonjs/lib/loader/EggApplicationLoader.d.ts +4 -0
- package/dist/commonjs/lib/loader/EggApplicationLoader.js +8 -0
- package/dist/commonjs/lib/loader/index.d.ts +3 -0
- package/dist/commonjs/lib/loader/index.js +22 -0
- package/dist/commonjs/lib/start.d.ts +15 -0
- package/dist/commonjs/lib/start.js +49 -0
- package/dist/commonjs/lib/type.d.ts +296 -0
- package/dist/commonjs/lib/type.js +3 -0
- package/dist/commonjs/package.json +3 -0
- package/dist/esm/agent.d.ts +4 -0
- package/dist/esm/agent.js +7 -0
- package/dist/esm/app/extend/context.d.ts +2 -0
- package/dist/esm/app/extend/context.js +258 -0
- package/dist/esm/app/middleware/body_parser.d.ts +2 -0
- package/dist/esm/app/middleware/body_parser.js +3 -0
- package/dist/esm/app/middleware/meta.d.ts +11 -0
- package/dist/esm/app/middleware/meta.js +20 -0
- package/dist/esm/app/middleware/notfound.d.ts +8 -0
- package/dist/esm/app/middleware/notfound.js +29 -0
- package/dist/esm/app/middleware/override_method.d.ts +2 -0
- package/dist/esm/app/middleware/override_method.js +3 -0
- package/dist/esm/app/middleware/site_file.d.ts +7 -0
- package/dist/esm/app/middleware/site_file.js +54 -0
- package/dist/esm/config/config.default.d.ts +9 -0
- package/dist/esm/config/config.default.js +373 -0
- package/dist/esm/config/config.local.d.ts +8 -0
- package/dist/esm/config/config.local.js +10 -0
- package/dist/esm/config/config.unittest.d.ts +7 -0
- package/dist/esm/config/config.unittest.js +9 -0
- package/dist/esm/config/favicon.png +0 -0
- package/dist/esm/config/plugin.d.ts +122 -0
- package/dist/esm/config/plugin.js +123 -0
- package/dist/esm/index.d.ts +61 -0
- package/dist/esm/index.js +65 -0
- package/dist/esm/lib/agent.d.ts +19 -0
- package/dist/esm/lib/agent.js +54 -0
- package/dist/esm/lib/application.d.ts +66 -0
- package/dist/esm/lib/application.js +274 -0
- package/dist/esm/lib/core/base_context_class.d.ts +14 -0
- package/dist/esm/lib/core/base_context_class.js +18 -0
- package/dist/esm/lib/core/base_context_logger.d.ts +36 -0
- package/dist/esm/lib/core/base_context_logger.js +60 -0
- package/dist/esm/lib/core/base_hook_class.d.ts +11 -0
- package/dist/esm/lib/core/base_hook_class.js +23 -0
- package/dist/esm/lib/core/context_httpclient.d.ts +16 -0
- package/dist/esm/lib/core/context_httpclient.js +26 -0
- package/dist/esm/lib/core/httpclient.d.ts +14 -0
- package/dist/esm/lib/core/httpclient.js +33 -0
- package/dist/esm/lib/core/logger.d.ts +3 -0
- package/dist/esm/lib/core/logger.js +37 -0
- package/dist/esm/lib/core/messenger/IMessenger.d.ts +50 -0
- package/dist/esm/lib/core/messenger/IMessenger.js +2 -0
- package/dist/esm/lib/core/messenger/index.d.ts +7 -0
- package/dist/esm/lib/core/messenger/index.js +11 -0
- package/dist/esm/lib/core/messenger/ipc.d.ts +57 -0
- package/dist/esm/lib/core/messenger/ipc.js +119 -0
- package/dist/esm/lib/core/messenger/local.d.ts +61 -0
- package/dist/esm/lib/core/messenger/local.js +127 -0
- package/dist/esm/lib/core/singleton.d.ts +23 -0
- package/dist/esm/lib/core/singleton.js +113 -0
- package/dist/esm/lib/core/utils.d.ts +2 -0
- package/dist/esm/lib/core/utils.js +70 -0
- package/dist/esm/lib/egg.d.ts +271 -0
- package/dist/esm/lib/egg.js +573 -0
- package/dist/esm/lib/loader/AgentWorkerLoader.d.ts +12 -0
- package/dist/esm/lib/loader/AgentWorkerLoader.js +20 -0
- package/dist/esm/lib/loader/AppWorkerLoader.d.ts +17 -0
- package/dist/esm/lib/loader/AppWorkerLoader.js +39 -0
- package/dist/esm/lib/loader/EggApplicationLoader.d.ts +4 -0
- package/dist/esm/lib/loader/EggApplicationLoader.js +4 -0
- package/dist/esm/lib/loader/index.d.ts +3 -0
- package/dist/esm/lib/loader/index.js +4 -0
- package/dist/esm/lib/start.d.ts +15 -0
- package/dist/esm/lib/start.js +43 -0
- package/dist/esm/lib/type.d.ts +296 -0
- package/dist/esm/lib/type.js +2 -0
- package/dist/esm/package.json +3 -0
- package/dist/package.json +4 -0
- package/package.json +87 -72
- package/src/agent.ts +7 -0
- package/{app/extend/context.js → src/app/extend/context.ts} +19 -23
- package/src/app/middleware/body_parser.ts +3 -0
- package/{app/middleware/meta.js → src/app/middleware/meta.ts} +12 -4
- package/{app/middleware/notfound.js → src/app/middleware/notfound.ts} +9 -3
- package/src/app/middleware/override_method.ts +3 -0
- package/src/app/middleware/site_file.ts +70 -0
- package/{config/config.default.js → src/config/config.default.ts} +24 -45
- package/src/config/config.local.ts +11 -0
- package/src/config/config.unittest.ts +10 -0
- package/src/config/favicon.png +0 -0
- package/{config/plugin.js → src/config/plugin.ts} +1 -3
- package/src/index.ts +78 -0
- package/src/lib/agent.ts +66 -0
- package/{lib/application.js → src/lib/application.ts} +79 -120
- package/src/lib/core/base_context_class.ts +21 -0
- package/src/lib/core/base_context_logger.ts +67 -0
- package/src/lib/core/base_hook_class.ts +30 -0
- package/src/lib/core/context_httpclient.ts +33 -0
- package/src/lib/core/httpclient.ts +52 -0
- package/src/lib/core/logger.ts +42 -0
- package/src/lib/core/messenger/IMessenger.ts +58 -0
- package/src/lib/core/messenger/index.ts +15 -0
- package/{lib/core/messenger/ipc.js → src/lib/core/messenger/ipc.ts} +24 -29
- package/{lib/core/messenger/local.js → src/lib/core/messenger/local.ts} +27 -21
- package/{lib/core/singleton.js → src/lib/core/singleton.ts} +56 -33
- package/src/lib/core/utils.ts +77 -0
- package/{lib/egg.js → src/lib/egg.ts} +262 -219
- package/src/lib/loader/AgentWorkerLoader.ts +21 -0
- package/src/lib/loader/AppWorkerLoader.ts +42 -0
- package/src/lib/loader/EggApplicationLoader.ts +5 -0
- package/src/lib/loader/index.ts +3 -0
- package/src/lib/start.ts +56 -0
- package/src/lib/type.ts +336 -0
- package/CHANGELOG.md +0 -2395
- package/History.md +0 -52
- package/agent.js +0 -11
- package/app/middleware/body_parser.js +0 -3
- package/app/middleware/override_method.js +0 -3
- package/app/middleware/site_file.js +0 -31
- package/config/config.local.js +0 -7
- package/config/config.unittest.js +0 -8
- package/index.d.ts +0 -1288
- package/index.js +0 -68
- package/lib/agent.js +0 -95
- package/lib/core/base_context_class.js +0 -20
- package/lib/core/base_context_logger.js +0 -64
- package/lib/core/base_hook_class.js +0 -31
- package/lib/core/context_httpclient.js +0 -26
- package/lib/core/dnscache_httpclient.js +0 -93
- package/lib/core/httpclient.js +0 -119
- package/lib/core/httpclient_next.js +0 -80
- package/lib/core/logger.js +0 -35
- package/lib/core/messenger/index.js +0 -14
- package/lib/core/utils.js +0 -73
- package/lib/loader/agent_worker_loader.js +0 -27
- package/lib/loader/app_worker_loader.js +0 -48
- package/lib/loader/index.js +0 -5
- package/lib/start.js +0 -39
- /package/{config → dist/commonjs/config}/favicon.png +0 -0
- /package/{app → src/app}/extend/helper.js +0 -0
- /package/{app → src/app}/extend/request.js +0 -0
- /package/{app → src/app}/extend/response.js +0 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @namespace Egg
|
|
3
|
+
*/
|
|
4
|
+
import { BaseContextClass } from './lib/core/base_context_class.js';
|
|
5
|
+
import { startEgg } from './lib/start.js';
|
|
6
|
+
export * from './lib/egg.js';
|
|
7
|
+
export * from './lib/type.js';
|
|
8
|
+
export * from './lib/start.js';
|
|
9
|
+
/**
|
|
10
|
+
* Start egg application with cluster mode
|
|
11
|
+
* @since 1.0.0
|
|
12
|
+
*/
|
|
13
|
+
export { startCluster } from 'egg-cluster';
|
|
14
|
+
/**
|
|
15
|
+
* Start egg application with single process mode
|
|
16
|
+
* @since 1.0.0
|
|
17
|
+
*/
|
|
18
|
+
export declare const start: typeof startEgg;
|
|
19
|
+
/**
|
|
20
|
+
* @member {Application} Egg#Application
|
|
21
|
+
* @since 1.0.0
|
|
22
|
+
*/
|
|
23
|
+
export { Application } from './lib/application.js';
|
|
24
|
+
/**
|
|
25
|
+
* @member {Agent} Egg#Agent
|
|
26
|
+
* @since 1.0.0
|
|
27
|
+
*/
|
|
28
|
+
export { Agent } from './lib/agent.js';
|
|
29
|
+
/**
|
|
30
|
+
* @member {AppWorkerLoader} Egg#AppWorkerLoader
|
|
31
|
+
* @since 1.0.0
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* @member {AgentWorkerLoader} Egg#AgentWorkerLoader
|
|
35
|
+
* @since 1.0.0
|
|
36
|
+
*/
|
|
37
|
+
export { AppWorkerLoader, AgentWorkerLoader } from './lib/loader/index.js';
|
|
38
|
+
/**
|
|
39
|
+
* @member {Controller} Egg#Controller
|
|
40
|
+
* @since 1.1.0
|
|
41
|
+
*/
|
|
42
|
+
export declare const Controller: typeof BaseContextClass;
|
|
43
|
+
/**
|
|
44
|
+
* @member {Service} Egg#Service
|
|
45
|
+
* @since 1.1.0
|
|
46
|
+
*/
|
|
47
|
+
export declare const Service: typeof BaseContextClass;
|
|
48
|
+
/**
|
|
49
|
+
* @member {Subscription} Egg#Subscription
|
|
50
|
+
* @since 1.10.0
|
|
51
|
+
*/
|
|
52
|
+
export declare const Subscription: typeof BaseContextClass;
|
|
53
|
+
/**
|
|
54
|
+
* @member {BaseContextClass} Egg#BaseContextClass
|
|
55
|
+
* @since 1.2.0
|
|
56
|
+
*/
|
|
57
|
+
export { BaseContextClass } from './lib/core/base_context_class.js';
|
|
58
|
+
/**
|
|
59
|
+
* @member {Boot} Egg#Boot
|
|
60
|
+
*/
|
|
61
|
+
export { BaseHookClass as Boot } from './lib/core/base_hook_class.js';
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @namespace Egg
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.Boot = exports.BaseContextClass = exports.Subscription = exports.Service = exports.Controller = exports.AgentWorkerLoader = exports.AppWorkerLoader = exports.Agent = exports.Application = exports.start = exports.startCluster = void 0;
|
|
21
|
+
const base_context_class_js_1 = require("./lib/core/base_context_class.js");
|
|
22
|
+
const start_js_1 = require("./lib/start.js");
|
|
23
|
+
// export types
|
|
24
|
+
__exportStar(require("./lib/egg.js"), exports);
|
|
25
|
+
__exportStar(require("./lib/type.js"), exports);
|
|
26
|
+
__exportStar(require("./lib/start.js"), exports);
|
|
27
|
+
/**
|
|
28
|
+
* Start egg application with cluster mode
|
|
29
|
+
* @since 1.0.0
|
|
30
|
+
*/
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
32
|
+
// @ts-ignore
|
|
33
|
+
var egg_cluster_1 = require("egg-cluster");
|
|
34
|
+
Object.defineProperty(exports, "startCluster", { enumerable: true, get: function () { return egg_cluster_1.startCluster; } });
|
|
35
|
+
/**
|
|
36
|
+
* Start egg application with single process mode
|
|
37
|
+
* @since 1.0.0
|
|
38
|
+
*/
|
|
39
|
+
exports.start = start_js_1.startEgg;
|
|
40
|
+
/**
|
|
41
|
+
* @member {Application} Egg#Application
|
|
42
|
+
* @since 1.0.0
|
|
43
|
+
*/
|
|
44
|
+
var application_js_1 = require("./lib/application.js");
|
|
45
|
+
Object.defineProperty(exports, "Application", { enumerable: true, get: function () { return application_js_1.Application; } });
|
|
46
|
+
/**
|
|
47
|
+
* @member {Agent} Egg#Agent
|
|
48
|
+
* @since 1.0.0
|
|
49
|
+
*/
|
|
50
|
+
var agent_js_1 = require("./lib/agent.js");
|
|
51
|
+
Object.defineProperty(exports, "Agent", { enumerable: true, get: function () { return agent_js_1.Agent; } });
|
|
52
|
+
/**
|
|
53
|
+
* @member {AppWorkerLoader} Egg#AppWorkerLoader
|
|
54
|
+
* @since 1.0.0
|
|
55
|
+
*/
|
|
56
|
+
/**
|
|
57
|
+
* @member {AgentWorkerLoader} Egg#AgentWorkerLoader
|
|
58
|
+
* @since 1.0.0
|
|
59
|
+
*/
|
|
60
|
+
var index_js_1 = require("./lib/loader/index.js");
|
|
61
|
+
Object.defineProperty(exports, "AppWorkerLoader", { enumerable: true, get: function () { return index_js_1.AppWorkerLoader; } });
|
|
62
|
+
Object.defineProperty(exports, "AgentWorkerLoader", { enumerable: true, get: function () { return index_js_1.AgentWorkerLoader; } });
|
|
63
|
+
/**
|
|
64
|
+
* @member {Controller} Egg#Controller
|
|
65
|
+
* @since 1.1.0
|
|
66
|
+
*/
|
|
67
|
+
exports.Controller = base_context_class_js_1.BaseContextClass;
|
|
68
|
+
/**
|
|
69
|
+
* @member {Service} Egg#Service
|
|
70
|
+
* @since 1.1.0
|
|
71
|
+
*/
|
|
72
|
+
exports.Service = base_context_class_js_1.BaseContextClass;
|
|
73
|
+
/**
|
|
74
|
+
* @member {Subscription} Egg#Subscription
|
|
75
|
+
* @since 1.10.0
|
|
76
|
+
*/
|
|
77
|
+
exports.Subscription = base_context_class_js_1.BaseContextClass;
|
|
78
|
+
/**
|
|
79
|
+
* @member {BaseContextClass} Egg#BaseContextClass
|
|
80
|
+
* @since 1.2.0
|
|
81
|
+
*/
|
|
82
|
+
var base_context_class_js_2 = require("./lib/core/base_context_class.js");
|
|
83
|
+
Object.defineProperty(exports, "BaseContextClass", { enumerable: true, get: function () { return base_context_class_js_2.BaseContextClass; } });
|
|
84
|
+
/**
|
|
85
|
+
* @member {Boot} Egg#Boot
|
|
86
|
+
*/
|
|
87
|
+
var base_hook_class_js_1 = require("./lib/core/base_hook_class.js");
|
|
88
|
+
Object.defineProperty(exports, "Boot", { enumerable: true, get: function () { return base_hook_class_js_1.BaseHookClass; } });
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7Ozs7Ozs7Ozs7Ozs7OztBQUVILDRFQUFvRTtBQUNwRSw2Q0FBMEM7QUFFMUMsZUFBZTtBQUNmLCtDQUE2QjtBQUM3QixnREFBOEI7QUFDOUIsaURBQStCO0FBRS9COzs7R0FHRztBQUNILDZEQUE2RDtBQUM3RCxhQUFhO0FBQ2IsMkNBQTJDO0FBQWxDLDJHQUFBLFlBQVksT0FBQTtBQUVyQjs7O0dBR0c7QUFDVSxRQUFBLEtBQUssR0FBRyxtQkFBUSxDQUFDO0FBRTlCOzs7R0FHRztBQUNILHVEQUFtRDtBQUExQyw2R0FBQSxXQUFXLE9BQUE7QUFFcEI7OztHQUdHO0FBQ0gsMkNBQXVDO0FBQTlCLGlHQUFBLEtBQUssT0FBQTtBQUVkOzs7R0FHRztBQUVIOzs7R0FHRztBQUVILGtEQUEyRTtBQUFsRSwyR0FBQSxlQUFlLE9BQUE7QUFBRSw2R0FBQSxpQkFBaUIsT0FBQTtBQUUzQzs7O0dBR0c7QUFDVSxRQUFBLFVBQVUsR0FBRyx3Q0FBZ0IsQ0FBQztBQUUzQzs7O0dBR0c7QUFDVSxRQUFBLE9BQU8sR0FBRyx3Q0FBZ0IsQ0FBQztBQUV4Qzs7O0dBR0c7QUFDVSxRQUFBLFlBQVksR0FBRyx3Q0FBZ0IsQ0FBQztBQUU3Qzs7O0dBR0c7QUFDSCwwRUFBb0U7QUFBM0QseUhBQUEsZ0JBQWdCLE9BQUE7QUFFekI7O0dBRUc7QUFDSCxvRUFBc0U7QUFBN0QsMEdBQUEsYUFBYSxPQUFRIn0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { EggApplicationCore, EggApplicationCoreOptions } from './egg.js';
|
|
2
|
+
import { AgentWorkerLoader } from './loader/index.js';
|
|
3
|
+
declare const EGG_LOADER: unique symbol;
|
|
4
|
+
/**
|
|
5
|
+
* Singleton instance in Agent Worker, extend {@link EggApplicationCore}
|
|
6
|
+
* @augments EggApplicationCore
|
|
7
|
+
*/
|
|
8
|
+
export declare class Agent extends EggApplicationCore {
|
|
9
|
+
#private;
|
|
10
|
+
/**
|
|
11
|
+
* @class
|
|
12
|
+
* @param {Object} options - see {@link EggApplicationCore}
|
|
13
|
+
*/
|
|
14
|
+
constructor(options?: Omit<EggApplicationCoreOptions, 'type'>);
|
|
15
|
+
get [EGG_LOADER](): typeof AgentWorkerLoader;
|
|
16
|
+
_wrapMessenger(): void;
|
|
17
|
+
close(): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Agent = void 0;
|
|
4
|
+
const egg_js_1 = require("./egg.js");
|
|
5
|
+
const index_js_1 = require("./loader/index.js");
|
|
6
|
+
const EGG_LOADER = Symbol.for('egg#loader');
|
|
7
|
+
/**
|
|
8
|
+
* Singleton instance in Agent Worker, extend {@link EggApplicationCore}
|
|
9
|
+
* @augments EggApplicationCore
|
|
10
|
+
*/
|
|
11
|
+
class Agent extends egg_js_1.EggApplicationCore {
|
|
12
|
+
#agentAliveHandler;
|
|
13
|
+
/**
|
|
14
|
+
* @class
|
|
15
|
+
* @param {Object} options - see {@link EggApplicationCore}
|
|
16
|
+
*/
|
|
17
|
+
constructor(options) {
|
|
18
|
+
super({
|
|
19
|
+
...options,
|
|
20
|
+
type: 'agent',
|
|
21
|
+
});
|
|
22
|
+
// keep agent alive even it doesn't have any io tasks
|
|
23
|
+
this.#agentAliveHandler = setInterval(() => {
|
|
24
|
+
this.coreLogger.info('[]');
|
|
25
|
+
}, 24 * 60 * 60 * 1000);
|
|
26
|
+
}
|
|
27
|
+
get [EGG_LOADER]() {
|
|
28
|
+
return index_js_1.AgentWorkerLoader;
|
|
29
|
+
}
|
|
30
|
+
_wrapMessenger() {
|
|
31
|
+
for (const methodName of [
|
|
32
|
+
'broadcast',
|
|
33
|
+
'sendTo',
|
|
34
|
+
'sendToApp',
|
|
35
|
+
'sendToAgent',
|
|
36
|
+
'sendRandom',
|
|
37
|
+
]) {
|
|
38
|
+
wrapMethod(methodName, this.messenger, this.coreLogger);
|
|
39
|
+
}
|
|
40
|
+
function wrapMethod(methodName, messenger, logger) {
|
|
41
|
+
const originMethod = messenger[methodName];
|
|
42
|
+
messenger[methodName] = function (...args) {
|
|
43
|
+
const stack = new Error().stack.split('\n').slice(1).join('\n');
|
|
44
|
+
logger.warn("agent can't call %s before server started\n%s", methodName, stack);
|
|
45
|
+
originMethod.apply(this, args);
|
|
46
|
+
};
|
|
47
|
+
messenger.prependOnceListener('egg-ready', () => {
|
|
48
|
+
messenger[methodName] = originMethod;
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
async close() {
|
|
53
|
+
clearInterval(this.#agentAliveHandler);
|
|
54
|
+
await super.close();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.Agent = Agent;
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2FnZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFDQUF5RTtBQUN6RSxnREFBc0Q7QUFFdEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUU1Qzs7O0dBR0c7QUFDSCxNQUFhLEtBQU0sU0FBUSwyQkFBa0I7SUFDbEMsa0JBQWtCLENBQWlCO0lBRTVDOzs7T0FHRztJQUNILFlBQVksT0FBaUQ7UUFDM0QsS0FBSyxDQUFDO1lBQ0osR0FBRyxPQUFPO1lBQ1YsSUFBSSxFQUFFLE9BQU87U0FDZCxDQUFDLENBQUM7UUFFSCxxREFBcUQ7UUFDckQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2QsT0FBTyw0QkFBaUIsQ0FBQztJQUMzQixDQUFDO0lBRUQsY0FBYztRQUNaLEtBQUssTUFBTSxVQUFVLElBQUk7WUFDdkIsV0FBVztZQUNYLFFBQVE7WUFDUixXQUFXO1lBQ1gsYUFBYTtZQUNiLFlBQVk7U0FDYixFQUFFLENBQUM7WUFDRixVQUFVLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFFRCxTQUFTLFVBQVUsQ0FBQyxVQUFrQixFQUFFLFNBQWMsRUFBRSxNQUFpQjtZQUN2RSxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDM0MsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLFVBQVMsR0FBRyxJQUFXO2dCQUM3QyxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDLEtBQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDakUsTUFBTSxDQUFDLElBQUksQ0FDVCwrQ0FBK0MsRUFDL0MsVUFBVSxFQUNWLEtBQUssQ0FDTixDQUFDO2dCQUNGLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQztZQUNGLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFO2dCQUM5QyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsWUFBWSxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNULGFBQWEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN2QyxNQUFNLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN0QixDQUFDO0NBQ0Y7QUF2REQsc0JBdURDIn0=
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import http from 'node:http';
|
|
2
|
+
import { Socket } from 'node:net';
|
|
3
|
+
import { EggApplicationCore, EggContext, EggApplicationCoreOptions } from './egg.js';
|
|
4
|
+
import { AppWorkerLoader } from './loader/index.js';
|
|
5
|
+
import { BaseContextClass } from './core/base_context_class.js';
|
|
6
|
+
declare const EGG_LOADER: unique symbol;
|
|
7
|
+
/**
|
|
8
|
+
* The Helper class which can be used as utility function.
|
|
9
|
+
* We support developers to extend Helper through ${baseDir}/app/extend/helper.js ,
|
|
10
|
+
* then you can use all method on `ctx.helper` that is a instance of Helper.
|
|
11
|
+
*/
|
|
12
|
+
declare class HelperClass extends BaseContextClass {
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Singleton instance in App Worker, extend {@link EggApplicationCore}
|
|
16
|
+
* @augments EggApplicationCore
|
|
17
|
+
*/
|
|
18
|
+
export declare class Application extends EggApplicationCore {
|
|
19
|
+
#private;
|
|
20
|
+
server?: http.Server;
|
|
21
|
+
/**
|
|
22
|
+
* reference to {@link Helper}
|
|
23
|
+
* @member {Helper} Application#Helper
|
|
24
|
+
*/
|
|
25
|
+
Helper: typeof HelperClass;
|
|
26
|
+
/**
|
|
27
|
+
* @class
|
|
28
|
+
* @param {Object} options - see {@link EggApplicationCore}
|
|
29
|
+
*/
|
|
30
|
+
constructor(options?: Omit<EggApplicationCoreOptions, 'type'>);
|
|
31
|
+
protected load(): Promise<void>;
|
|
32
|
+
get [EGG_LOADER](): typeof AppWorkerLoader;
|
|
33
|
+
onClientError(err: any, socket: Socket): void;
|
|
34
|
+
onServer(server: http.Server): void;
|
|
35
|
+
/**
|
|
36
|
+
* global locals for view
|
|
37
|
+
* @member {Object} Application#locals
|
|
38
|
+
* @see Context#locals
|
|
39
|
+
*/
|
|
40
|
+
get locals(): Record<string, any>;
|
|
41
|
+
set locals(val: Record<string, any>);
|
|
42
|
+
/**
|
|
43
|
+
* save routers to `run/router.json`
|
|
44
|
+
* @private
|
|
45
|
+
*/
|
|
46
|
+
dumpConfig(): void;
|
|
47
|
+
/**
|
|
48
|
+
* Run async function in the background
|
|
49
|
+
* @see Context#runInBackground
|
|
50
|
+
* @param {Function} scope - the first args is an anonymous ctx
|
|
51
|
+
*/
|
|
52
|
+
runInBackground(scope: (ctx: EggContext) => void): void;
|
|
53
|
+
/**
|
|
54
|
+
* Run async function in the anonymous context scope
|
|
55
|
+
* @see Context#runInAnonymousContextScope
|
|
56
|
+
* @param {Function} scope - the first args is an anonymous ctx, scope should be async function
|
|
57
|
+
* @param {Request} [req] - if you want to mock request like querystring, you can pass an object to this function.
|
|
58
|
+
*/
|
|
59
|
+
runInAnonymousContextScope(scope: (ctx: EggContext) => Promise<void>, req?: unknown): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* secret key for Application
|
|
62
|
+
* @member {String} Application#keys
|
|
63
|
+
*/
|
|
64
|
+
get keys(): string[];
|
|
65
|
+
}
|
|
66
|
+
export {};
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2FwcGxpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDBEQUE2QjtBQUM3QixzREFBeUI7QUFDekIsMERBQTZCO0FBRTdCLDZEQUE2RDtBQUM3RCxhQUFhO0FBQ2Isd0RBQWdDO0FBQ2hDLHFDQUFpQztBQUNqQyxzQ0FBZ0Q7QUFDaEQscUNBQXFGO0FBQ3JGLGdEQUFvRDtBQUNwRCx3RUFBZ0U7QUFFaEUsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUU1QyxrQ0FBa0M7QUFDbEMsc0ZBQXNGO0FBQ3RGLE1BQU0sd0JBQXdCLEdBQUc7Ozs7OztVQU12QixDQUFDO0FBQ1gsTUFBTSwrQkFBK0IsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFDcEYsTUFBTSw0QkFBNEIsR0FDaEMsK0NBQStDLCtCQUErQixFQUFFO0lBQ2hGLFdBQVcsd0JBQXdCLEVBQUUsQ0FBQztBQUV4QyxtRkFBbUY7QUFDbkYsU0FBUyxpQkFBaUIsQ0FBQyxLQUFhO0lBQ3RDLGlFQUFpRTtJQUNqRSxzREFBc0Q7SUFDdEQsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDNUUsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFdBQVksU0FBUSx3Q0FBZ0I7Q0FBRztBQUU3Qzs7O0dBR0c7QUFDSCxNQUFhLFdBQVksU0FBUSwyQkFBa0I7SUFDakQsMENBQTBDO0lBQzFDLE1BQU0sQ0FBZTtJQUNyQixPQUFPLEdBQXdCLEVBQUUsQ0FBQztJQUNsQzs7O09BR0c7SUFDSCxNQUFNLEdBQUcsV0FBVyxDQUFDO0lB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
|
|
@@ -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
|
+
}
|