@eggjs/tegg-controller-plugin 4.0.0-beta.7 → 4.0.0-beta.9
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/dist/app/middleware/tegg_root_proto.d.ts +2 -5
- package/dist/app/middleware/tegg_root_proto.js +7 -11
- package/dist/app.d.ts +20 -24
- package/dist/app.js +70 -61
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -2
- package/dist/lib/AppLoadUnitControllerHook.d.ts +9 -13
- package/dist/lib/AppLoadUnitControllerHook.js +28 -28
- package/dist/lib/ControllerLoadUnit.d.ts +20 -24
- package/dist/lib/ControllerLoadUnit.js +72 -63
- package/dist/lib/ControllerLoadUnitHandler.d.ts +11 -15
- package/dist/lib/ControllerLoadUnitHandler.js +28 -28
- package/dist/lib/ControllerLoadUnitInstance.d.ts +16 -20
- package/dist/lib/ControllerLoadUnitInstance.js +36 -40
- package/dist/lib/ControllerMetadataManager.d.ts +7 -11
- package/dist/lib/ControllerMetadataManager.js +27 -23
- package/dist/lib/ControllerRegister.d.ts +4 -8
- package/dist/lib/ControllerRegister.js +3 -4
- package/dist/lib/ControllerRegisterFactory.d.ts +11 -15
- package/dist/lib/ControllerRegisterFactory.js +22 -24
- package/dist/lib/EggControllerLoader.d.ts +6 -10
- package/dist/lib/EggControllerLoader.js +31 -29
- package/dist/lib/EggControllerPrototypeHook.d.ts +4 -8
- package/dist/lib/EggControllerPrototypeHook.js +11 -13
- package/dist/lib/RootProtoManager.d.ts +7 -11
- package/dist/lib/RootProtoManager.js +34 -28
- package/dist/lib/errors.d.ts +3 -7
- package/dist/lib/errors.js +11 -15
- package/dist/lib/impl/http/Acl.d.ts +2 -6
- package/dist/lib/impl/http/Acl.js +32 -28
- package/dist/lib/impl/http/HTTPControllerRegister.d.ts +17 -21
- package/dist/lib/impl/http/HTTPControllerRegister.js +63 -59
- package/dist/lib/impl/http/HTTPMethodRegister.d.ts +18 -22
- package/dist/lib/impl/http/HTTPMethodRegister.js +162 -136
- package/dist/lib/impl/http/Req.d.ts +4 -8
- package/dist/lib/impl/http/Req.js +13 -16
- package/dist/types.d.ts +2 -1
- package/dist/types.js +2 -3
- package/package.json +12 -12
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
import { ROOT_PROTO } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
return next();
|
|
8
|
-
};
|
|
1
|
+
import { ROOT_PROTO } from '@eggjs/egg-module-common';
|
|
2
|
+
export default () => {
|
|
3
|
+
return async function teggRootProto(ctx, next) {
|
|
4
|
+
ctx[ROOT_PROTO] = ctx.app.rootProtoManager.getRootProto(ctx);
|
|
5
|
+
return next();
|
|
6
|
+
};
|
|
9
7
|
};
|
|
10
|
-
|
|
11
|
-
//#endregion
|
|
12
|
-
export { tegg_root_proto_default as default };
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVnZ19yb290X3Byb3RvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcC9taWRkbGV3YXJlL3RlZ2dfcm9vdF9wcm90by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdEQsZUFBZSxHQUFtQixFQUFFO0lBQ2xDLE9BQU8sS0FBSyxVQUFVLGFBQWEsQ0FBQyxHQUFHLEVBQUUsSUFBSTtRQUMzQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0QsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUNoQixDQUFDLENBQUM7QUFDSixDQUFDLENBQUEifQ==
|
package/dist/app.d.ts
CHANGED
|
@@ -1,27 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
didLoad(): Promise<void>;
|
|
17
|
-
beforeClose(): Promise<void>;
|
|
1
|
+
import type { Application, ILifecycleBoot } from 'egg';
|
|
2
|
+
import { ControllerMetaBuilderFactory } from '@eggjs/tegg';
|
|
3
|
+
import { ControllerRegisterFactory } from './lib/ControllerRegisterFactory.ts';
|
|
4
|
+
import { RootProtoManager } from './lib/RootProtoManager.ts';
|
|
5
|
+
export default class ControllerAppBootHook implements ILifecycleBoot {
|
|
6
|
+
private readonly app;
|
|
7
|
+
private readonly loadUnitHook;
|
|
8
|
+
private readonly controllerRegisterFactory;
|
|
9
|
+
private controllerLoadUnitHandler;
|
|
10
|
+
private readonly controllerPrototypeHook;
|
|
11
|
+
constructor(app: Application);
|
|
12
|
+
configWillLoad(): void;
|
|
13
|
+
prepareMiddleware(middlewareNames: string[]): string[];
|
|
14
|
+
didLoad(): Promise<void>;
|
|
15
|
+
beforeClose(): Promise<void>;
|
|
18
16
|
}
|
|
19
17
|
declare module 'egg' {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
interface Application {
|
|
19
|
+
rootProtoManager: RootProtoManager;
|
|
20
|
+
controllerRegisterFactory: ControllerRegisterFactory;
|
|
21
|
+
controllerMetaBuilderFactory: typeof ControllerMetaBuilderFactory;
|
|
22
|
+
}
|
|
25
23
|
}
|
|
26
|
-
//#endregion
|
|
27
|
-
export { ControllerAppBootHook as default };
|
package/dist/app.js
CHANGED
|
@@ -1,67 +1,76 @@
|
|
|
1
|
+
import {} from '@eggjs/tegg-metadata';
|
|
2
|
+
import { ControllerMetaBuilderFactory, ControllerType } from '@eggjs/tegg';
|
|
3
|
+
import { ModuleLoadUnitInstance } from '@eggjs/tegg-runtime';
|
|
1
4
|
import { CONTROLLER_LOAD_UNIT, ControllerLoadUnit } from "./lib/ControllerLoadUnit.js";
|
|
2
|
-
import { RootProtoManager } from "./lib/RootProtoManager.js";
|
|
3
|
-
import { ControllerRegisterFactory } from "./lib/ControllerRegisterFactory.js";
|
|
4
|
-
import { ControllerMetadataManager } from "./lib/ControllerMetadataManager.js";
|
|
5
5
|
import { AppLoadUnitControllerHook } from "./lib/AppLoadUnitControllerHook.js";
|
|
6
6
|
import { HTTPControllerRegister } from "./lib/impl/http/HTTPControllerRegister.js";
|
|
7
|
+
import { ControllerRegisterFactory } from "./lib/ControllerRegisterFactory.js";
|
|
7
8
|
import { ControllerLoadUnitHandler } from "./lib/ControllerLoadUnitHandler.js";
|
|
9
|
+
import { ControllerMetadataManager } from "./lib/ControllerMetadataManager.js";
|
|
8
10
|
import { EggControllerPrototypeHook } from "./lib/EggControllerPrototypeHook.js";
|
|
11
|
+
import { RootProtoManager } from "./lib/RootProtoManager.js";
|
|
9
12
|
import { EggControllerLoader } from "./lib/EggControllerLoader.js";
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
13
|
+
// Load Controller process
|
|
14
|
+
// 1. await add load unit is ready, controller may depend other load unit
|
|
15
|
+
// 2. load ${app_base_dir}app/controller file
|
|
16
|
+
// 3. ControllerRegister register controller implement
|
|
17
|
+
export default class ControllerAppBootHook {
|
|
18
|
+
app;
|
|
19
|
+
loadUnitHook;
|
|
20
|
+
controllerRegisterFactory;
|
|
21
|
+
controllerLoadUnitHandler;
|
|
22
|
+
controllerPrototypeHook;
|
|
23
|
+
constructor(app) {
|
|
24
|
+
this.app = app;
|
|
25
|
+
this.controllerRegisterFactory = new ControllerRegisterFactory(this.app);
|
|
26
|
+
this.app.rootProtoManager = new RootProtoManager();
|
|
27
|
+
this.app.controllerRegisterFactory = this.controllerRegisterFactory;
|
|
28
|
+
this.app.controllerMetaBuilderFactory = ControllerMetaBuilderFactory;
|
|
29
|
+
this.loadUnitHook = new AppLoadUnitControllerHook(this.controllerRegisterFactory, this.app.rootProtoManager);
|
|
30
|
+
this.controllerPrototypeHook = new EggControllerPrototypeHook();
|
|
31
|
+
}
|
|
32
|
+
configWillLoad() {
|
|
33
|
+
this.app.loadUnitLifecycleUtil.registerLifecycle(this.loadUnitHook);
|
|
34
|
+
this.app.eggPrototypeLifecycleUtil.registerLifecycle(this.controllerPrototypeHook);
|
|
35
|
+
this.app.loaderFactory.registerLoader(CONTROLLER_LOAD_UNIT, unitPath => {
|
|
36
|
+
return new EggControllerLoader(unitPath);
|
|
37
|
+
});
|
|
38
|
+
this.controllerRegisterFactory.registerControllerRegister(ControllerType.HTTP, HTTPControllerRegister.create);
|
|
39
|
+
this.app.loadUnitFactory.registerLoadUnitCreator(CONTROLLER_LOAD_UNIT, (ctx) => {
|
|
40
|
+
return new ControllerLoadUnit(`tegg-app-controller:${ctx.unitPath}`, ctx.unitPath, ctx.loader, this.app.eggPrototypeFactory, this.app.eggPrototypeCreatorFactory);
|
|
41
|
+
});
|
|
42
|
+
this.app.loadUnitInstanceFactory.registerLoadUnitInstanceClass(CONTROLLER_LOAD_UNIT, (ctx) => {
|
|
43
|
+
return new ModuleLoadUnitInstance(ctx.loadUnit);
|
|
44
|
+
});
|
|
45
|
+
// init http root proto middleware
|
|
46
|
+
this.prepareMiddleware(this.app.config.coreMiddleware);
|
|
47
|
+
}
|
|
48
|
+
prepareMiddleware(middlewareNames) {
|
|
49
|
+
if (!middlewareNames.includes('teggCtxLifecycleMiddleware')) {
|
|
50
|
+
middlewareNames.unshift('teggCtxLifecycleMiddleware');
|
|
51
|
+
}
|
|
52
|
+
const index = middlewareNames.indexOf('teggCtxLifecycleMiddleware');
|
|
53
|
+
middlewareNames.splice(index, 0, 'teggRootProto');
|
|
54
|
+
return middlewareNames;
|
|
55
|
+
}
|
|
56
|
+
async didLoad() {
|
|
57
|
+
await this.app.moduleHandler.ready();
|
|
58
|
+
this.controllerLoadUnitHandler = new ControllerLoadUnitHandler(this.app);
|
|
59
|
+
await this.controllerLoadUnitHandler.ready();
|
|
60
|
+
// The real register HTTP controller/method.
|
|
61
|
+
// HTTP method should sort by priority
|
|
62
|
+
// The HTTPControllerRegister will collect all the methods
|
|
63
|
+
// and register methods after collect is done.
|
|
64
|
+
HTTPControllerRegister.instance?.doRegister(this.app.rootProtoManager);
|
|
65
|
+
}
|
|
66
|
+
async beforeClose() {
|
|
67
|
+
if (this.controllerLoadUnitHandler) {
|
|
68
|
+
await this.controllerLoadUnitHandler.destroy();
|
|
69
|
+
}
|
|
70
|
+
this.app.loadUnitLifecycleUtil.deleteLifecycle(this.loadUnitHook);
|
|
71
|
+
this.app.eggPrototypeLifecycleUtil.deleteLifecycle(this.controllerPrototypeHook);
|
|
72
|
+
ControllerMetadataManager.instance.clear();
|
|
73
|
+
HTTPControllerRegister.clean();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWlDLE1BQU0sc0JBQXNCLENBQUM7QUFDckUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzRSxPQUFPLEVBQXlDLHNCQUFzQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFcEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDL0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDL0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDL0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbkUsMEJBQTBCO0FBQzFCLHlFQUF5RTtBQUN6RSw2Q0FBNkM7QUFDN0Msc0RBQXNEO0FBRXRELE1BQU0sQ0FBQyxPQUFPLE9BQU8scUJBQXFCO0lBQ3ZCLEdBQUcsQ0FBYztJQUNqQixZQUFZLENBQTRCO0lBQ3hDLHlCQUF5QixDQUE0QjtJQUM5RCx5QkFBeUIsQ0FBNEI7SUFDNUMsdUJBQXVCLENBQTZCO0lBRXJFLFlBQVksR0FBZ0I7UUFDMUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMseUJBQXlCLEdBQUcs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
|
package/dist/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import './types.ts';
|
package/dist/index.js
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
constructor(controllerRegisterFactory: ControllerRegisterFactory, rootProtoManager: RootProtoManager);
|
|
11
|
-
postCreate(_: LoadUnitLifecycleContext, obj: LoadUnit): Promise<void>;
|
|
1
|
+
import { type LoadUnit, type LoadUnitLifecycleContext } from '@eggjs/tegg-metadata';
|
|
2
|
+
import { type LifecycleHook } from '@eggjs/tegg';
|
|
3
|
+
import { ControllerRegisterFactory } from './ControllerRegisterFactory.ts';
|
|
4
|
+
import { RootProtoManager } from './RootProtoManager.ts';
|
|
5
|
+
export declare class AppLoadUnitControllerHook implements LifecycleHook<LoadUnitLifecycleContext, LoadUnit> {
|
|
6
|
+
private readonly controllerRegisterFactory;
|
|
7
|
+
private readonly rootProtoManager;
|
|
8
|
+
constructor(controllerRegisterFactory: ControllerRegisterFactory, rootProtoManager: RootProtoManager);
|
|
9
|
+
postCreate(_: LoadUnitLifecycleContext, obj: LoadUnit): Promise<void>;
|
|
12
10
|
}
|
|
13
|
-
//#endregion
|
|
14
|
-
export { AppLoadUnitControllerHook };
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import {} from '@eggjs/tegg-metadata';
|
|
2
|
+
import { CONTROLLER_META_DATA } from '@eggjs/tegg';
|
|
3
|
+
import { ControllerRegisterFactory } from "./ControllerRegisterFactory.js";
|
|
3
4
|
import { ControllerMetadataManager } from "./ControllerMetadataManager.js";
|
|
4
|
-
import "
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
//#
|
|
29
|
-
export { AppLoadUnitControllerHook };
|
|
5
|
+
import { RootProtoManager } from "./RootProtoManager.js";
|
|
6
|
+
export class AppLoadUnitControllerHook {
|
|
7
|
+
controllerRegisterFactory;
|
|
8
|
+
rootProtoManager;
|
|
9
|
+
constructor(controllerRegisterFactory, rootProtoManager) {
|
|
10
|
+
this.controllerRegisterFactory = controllerRegisterFactory;
|
|
11
|
+
this.rootProtoManager = rootProtoManager;
|
|
12
|
+
}
|
|
13
|
+
async postCreate(_, obj) {
|
|
14
|
+
const iterator = obj.iterateEggPrototype();
|
|
15
|
+
for (const proto of iterator) {
|
|
16
|
+
const metadata = proto.getMetaData(CONTROLLER_META_DATA);
|
|
17
|
+
if (!metadata) {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
const register = this.controllerRegisterFactory.getControllerRegister(proto, metadata);
|
|
21
|
+
if (!register) {
|
|
22
|
+
throw new Error(`not find controller implement for ${String(proto.name)} which type is ${metadata.type}`);
|
|
23
|
+
}
|
|
24
|
+
ControllerMetadataManager.instance.addController(metadata);
|
|
25
|
+
await register.register(this.rootProtoManager, obj);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwTG9hZFVuaXRDb250cm9sbGVySG9vay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvQXBwTG9hZFVuaXRDb250cm9sbGVySG9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdELE1BQU0sc0JBQXNCLENBQUM7QUFDcEYsT0FBTyxFQUFFLG9CQUFvQixFQUErQyxNQUFNLGFBQWEsQ0FBQztBQUVoRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV6RCxNQUFNLE9BQU8seUJBQXlCO0lBQ25CLHlCQUF5QixDQUE0QjtJQUNyRCxnQkFBZ0IsQ0FBbUI7SUFFcEQsWUFBWSx5QkFBb0QsRUFBRSxnQkFBa0M7UUFDbEcsSUFBSSxDQUFDLHlCQUF5QixHQUFHLHlCQUF5QixDQUFDO1FBQzNELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztJQUMzQyxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUEyQixFQUFFLEdBQWE7UUFDekQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0MsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUM3QixNQUFNLFFBQVEsR0FBbUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ3pGLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDZCxTQUFTO1lBQ1gsQ0FBQztZQUNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDdkYsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQixRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM1RyxDQUFDO1lBQ0QseUJBQXlCLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzRCxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
|
|
@@ -1,25 +1,21 @@
|
|
|
1
|
-
import { EggPrototype,
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
destroy(): Promise<void>;
|
|
22
|
-
iterateEggPrototype(): IterableIterator<EggPrototype>;
|
|
1
|
+
import { type EggPrototype, EggPrototypeFactory, type Loader, type LoadUnit, type EggPrototypeCreatorFactory } from '@eggjs/tegg-metadata';
|
|
2
|
+
import { type QualifierInfo, type Id } from '@eggjs/tegg';
|
|
3
|
+
export declare const CONTROLLER_LOAD_UNIT = "app#controller";
|
|
4
|
+
export declare class ControllerLoadUnit implements LoadUnit {
|
|
5
|
+
private readonly loader;
|
|
6
|
+
id: Id;
|
|
7
|
+
readonly name: string;
|
|
8
|
+
readonly type = "app#controller";
|
|
9
|
+
readonly unitPath: string;
|
|
10
|
+
private eggPrototypeFactory;
|
|
11
|
+
private eggPrototypeCreatorFactory;
|
|
12
|
+
private protoMap;
|
|
13
|
+
constructor(name: string, unitPath: string, loader: Loader, eggPrototypeFactory: EggPrototypeFactory, eggPrototypeCreatorFactory: typeof EggPrototypeCreatorFactory);
|
|
14
|
+
init(): Promise<void>;
|
|
15
|
+
containPrototype(proto: EggPrototype): boolean;
|
|
16
|
+
getEggPrototype(name: string, qualifiers: QualifierInfo[]): EggPrototype[];
|
|
17
|
+
registerEggPrototype(proto: EggPrototype): void;
|
|
18
|
+
deletePrototype(proto: EggPrototype): void;
|
|
19
|
+
destroy(): Promise<void>;
|
|
20
|
+
iterateEggPrototype(): IterableIterator<EggPrototype>;
|
|
23
21
|
}
|
|
24
|
-
//#endregion
|
|
25
|
-
export { CONTROLLER_LOAD_UNIT, ControllerLoadUnit };
|
|
@@ -1,63 +1,72 @@
|
|
|
1
|
-
import { EggPrototypeFactory } from
|
|
2
|
-
import { IdenticalUtil } from
|
|
3
|
-
import { MapUtil } from
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
1
|
+
import { EggPrototypeFactory, } from '@eggjs/tegg-metadata';
|
|
2
|
+
import { IdenticalUtil, } from '@eggjs/tegg';
|
|
3
|
+
import { MapUtil } from '@eggjs/tegg-common-util';
|
|
4
|
+
export const CONTROLLER_LOAD_UNIT = 'app#controller';
|
|
5
|
+
// ControllerLoadUnit is responsible for manage controller proto
|
|
6
|
+
export class ControllerLoadUnit {
|
|
7
|
+
loader;
|
|
8
|
+
id;
|
|
9
|
+
name;
|
|
10
|
+
type = CONTROLLER_LOAD_UNIT;
|
|
11
|
+
unitPath;
|
|
12
|
+
eggPrototypeFactory;
|
|
13
|
+
eggPrototypeCreatorFactory;
|
|
14
|
+
protoMap = new Map();
|
|
15
|
+
constructor(name, unitPath, loader, eggPrototypeFactory, eggPrototypeCreatorFactory) {
|
|
16
|
+
this.id = IdenticalUtil.createLoadUnitId(name);
|
|
17
|
+
this.name = name;
|
|
18
|
+
this.unitPath = unitPath;
|
|
19
|
+
this.loader = loader;
|
|
20
|
+
this.eggPrototypeFactory = eggPrototypeFactory;
|
|
21
|
+
this.eggPrototypeCreatorFactory = eggPrototypeCreatorFactory;
|
|
22
|
+
}
|
|
23
|
+
async init() {
|
|
24
|
+
const clazzList = await this.loader.load();
|
|
25
|
+
for (const clazz of clazzList) {
|
|
26
|
+
const protos = await this.eggPrototypeCreatorFactory.createProto(clazz, this);
|
|
27
|
+
for (const proto of protos) {
|
|
28
|
+
this.eggPrototypeFactory.registerPrototype(proto, this);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
containPrototype(proto) {
|
|
33
|
+
return !!(this.protoMap.get(proto.name)?.find(t => t === proto));
|
|
34
|
+
}
|
|
35
|
+
getEggPrototype(name, qualifiers) {
|
|
36
|
+
const protos = this.protoMap.get(name);
|
|
37
|
+
return protos?.filter(proto => proto.verifyQualifiers(qualifiers)) || [];
|
|
38
|
+
}
|
|
39
|
+
registerEggPrototype(proto) {
|
|
40
|
+
const protoList = MapUtil.getOrStore(this.protoMap, proto.name, []);
|
|
41
|
+
protoList.push(proto);
|
|
42
|
+
}
|
|
43
|
+
deletePrototype(proto) {
|
|
44
|
+
const protos = this.protoMap.get(proto.name);
|
|
45
|
+
if (protos) {
|
|
46
|
+
const index = protos.indexOf(proto);
|
|
47
|
+
if (index !== -1) {
|
|
48
|
+
protos.splice(index, 1);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
async destroy() {
|
|
53
|
+
for (const namedProtos of this.protoMap.values()) {
|
|
54
|
+
// Delete prototype will delete item
|
|
55
|
+
// array iterator is not safe
|
|
56
|
+
const protos = namedProtos.slice();
|
|
57
|
+
for (const proto of protos) {
|
|
58
|
+
EggPrototypeFactory.instance.deletePrototype(proto, this);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
this.protoMap.clear();
|
|
62
|
+
}
|
|
63
|
+
iterateEggPrototype() {
|
|
64
|
+
const protos = Array.from(this.protoMap.values())
|
|
65
|
+
.reduce((p, c) => {
|
|
66
|
+
p = p.concat(c);
|
|
67
|
+
return p;
|
|
68
|
+
}, []);
|
|
69
|
+
return protos.values();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJvbGxlckxvYWRVbml0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9Db250cm9sbGVyTG9hZFVuaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLG1CQUFtQixHQUlwQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFJTCxhQUFhLEdBQ2QsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLGdCQUFnQixDQUFDO0FBRXJELGdFQUFnRTtBQUNoRSxNQUFNLE9BQU8sa0JBQWtCO0lBQ1osTUFBTSxDQUFTO0lBQ2hDLEVBQUUsQ0FBSztJQUNFLElBQUksQ0FBUztJQUNiLElBQUksR0FBRyxvQkFBb0IsQ0FBQztJQUM1QixRQUFRLENBQVM7SUFDbEIsbUJBQW1CLENBQXNCO0lBQ3pDLDBCQUEwQixDQUFvQztJQUM5RCxRQUFRLEdBQTBDLElBQUksR0FBRyxFQUFFLENBQUM7SUFFcEUsWUFDRSxJQUFZLEVBQ1osUUFBZ0IsRUFDaEIsTUFBYyxFQUNkLG1CQUF3QyxFQUN4QywwQkFBNkQ7UUFFN0QsSUFBSSxDQUFDLEVBQUUsR0FBRyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDO1FBQy9DLElBQUksQ0FBQywwQkFBMEIsR0FBRywwQkFBMEIsQ0FBQztJQUMvRCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUk7UUFDUixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFB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
|
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
_init(): Promise<void>;
|
|
13
|
-
destroy(): Promise<void>;
|
|
1
|
+
import { Base } from 'sdk-base';
|
|
2
|
+
import type { Application } from 'egg';
|
|
3
|
+
import { type LoadUnit } from '@eggjs/tegg-metadata';
|
|
4
|
+
import { type LoadUnitInstance } from '@eggjs/tegg-runtime';
|
|
5
|
+
export declare class ControllerLoadUnitHandler extends Base {
|
|
6
|
+
private readonly app;
|
|
7
|
+
controllerLoadUnit: LoadUnit;
|
|
8
|
+
controllerLoadUnitInstance: LoadUnitInstance;
|
|
9
|
+
constructor(app: Application);
|
|
10
|
+
_init(): Promise<void>;
|
|
11
|
+
destroy(): Promise<void>;
|
|
14
12
|
}
|
|
15
|
-
//#endregion
|
|
16
|
-
export { ControllerLoadUnitHandler };
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { Base } from 'sdk-base';
|
|
3
|
+
import { EggLoadUnitType } from '@eggjs/tegg-metadata';
|
|
4
|
+
import {} from '@eggjs/tegg-runtime';
|
|
1
5
|
import { CONTROLLER_LOAD_UNIT } from "./ControllerLoadUnit.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
//#endregion
|
|
29
|
-
export { ControllerLoadUnitHandler };
|
|
6
|
+
export class ControllerLoadUnitHandler extends Base {
|
|
7
|
+
app;
|
|
8
|
+
controllerLoadUnit;
|
|
9
|
+
controllerLoadUnitInstance;
|
|
10
|
+
constructor(app) {
|
|
11
|
+
super({ initMethod: '_init' });
|
|
12
|
+
this.app = app;
|
|
13
|
+
}
|
|
14
|
+
async _init() {
|
|
15
|
+
const controllerDir = path.join(this.app.config.baseDir, 'app/controller');
|
|
16
|
+
const loader = this.app.loaderFactory.createLoader(controllerDir, CONTROLLER_LOAD_UNIT);
|
|
17
|
+
this.controllerLoadUnit = await this.app.loadUnitFactory.createLoadUnit(controllerDir, CONTROLLER_LOAD_UNIT, loader);
|
|
18
|
+
this.controllerLoadUnitInstance = await this.app.loadUnitInstanceFactory.createLoadUnitInstance(this.controllerLoadUnit);
|
|
19
|
+
}
|
|
20
|
+
async destroy() {
|
|
21
|
+
if (this.controllerLoadUnit) {
|
|
22
|
+
await this.app.loadUnitFactory.destroyLoadUnit(this.controllerLoadUnit);
|
|
23
|
+
}
|
|
24
|
+
if (this.controllerLoadUnitInstance) {
|
|
25
|
+
await this.app.loadUnitInstanceFactory.destroyLoadUnitInstance(this.controllerLoadUnitInstance);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJvbGxlckxvYWRVbml0SGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvQ29udHJvbGxlckxvYWRVbml0SGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFFN0IsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVoQyxPQUFPLEVBQUUsZUFBZSxFQUFpQixNQUFNLHNCQUFzQixDQUFDO0FBQ3RFLE9BQU8sRUFBeUIsTUFBTSxxQkFBcUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUvRCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsSUFBSTtJQUNoQyxHQUFHLENBQWM7SUFDbEMsa0JBQWtCLENBQVc7SUFDN0IsMEJBQTBCLENBQW1CO0lBRTdDLFlBQVksR0FBZ0I7UUFDMUIsS0FBSyxDQUFDLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDakIsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFLO1FBQ1QsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUMzRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLG9CQUF1QyxDQUFDLENBQUM7UUFDM0csSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNySCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzNILENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTztRQUNYLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7WUFDcEMsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ2xHLENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
|