@eggjs/tegg-controller-plugin 4.0.0-beta.3 → 4.0.0-beta.5
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 +15 -3
- package/dist/app/middleware/tegg_root_proto.d.ts +6 -0
- package/dist/app/middleware/tegg_root_proto.js +12 -0
- package/dist/app.d.ts +27 -0
- package/dist/app.js +67 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -0
- package/dist/lib/AppLoadUnitControllerHook.d.ts +14 -0
- package/dist/lib/AppLoadUnitControllerHook.js +29 -0
- package/dist/lib/ControllerLoadUnit.d.ts +25 -0
- package/dist/lib/ControllerLoadUnit.js +63 -0
- package/dist/lib/ControllerLoadUnitHandler.d.ts +16 -0
- package/dist/lib/ControllerLoadUnitHandler.js +29 -0
- package/dist/lib/ControllerLoadUnitInstance.d.ts +21 -0
- package/dist/lib/ControllerLoadUnitInstance.js +40 -0
- package/dist/lib/ControllerMetadataManager.d.ts +12 -0
- package/dist/lib/ControllerMetadataManager.js +23 -0
- package/dist/lib/ControllerRegister.d.ts +9 -0
- package/dist/lib/ControllerRegister.js +4 -0
- package/dist/lib/ControllerRegisterFactory.d.ts +16 -0
- package/dist/lib/ControllerRegisterFactory.js +24 -0
- package/dist/lib/EggControllerLoader.d.ts +11 -0
- package/dist/lib/EggControllerLoader.js +29 -0
- package/dist/lib/EggControllerPrototypeHook.d.ts +9 -0
- package/dist/lib/EggControllerPrototypeHook.js +13 -0
- package/dist/lib/RootProtoManager.d.ts +12 -0
- package/dist/lib/RootProtoManager.js +28 -0
- package/dist/lib/errors.d.ts +9 -0
- package/dist/lib/errors.js +16 -0
- package/dist/lib/impl/http/Acl.d.ts +6 -0
- package/dist/lib/impl/http/Acl.js +29 -0
- package/dist/lib/impl/http/HTTPControllerRegister.d.ts +22 -0
- package/dist/lib/impl/http/HTTPControllerRegister.js +60 -0
- package/dist/lib/impl/http/HTTPMethodRegister.d.ts +23 -0
- package/dist/lib/impl/http/HTTPMethodRegister.js +139 -0
- package/dist/lib/impl/http/Req.d.ts +9 -0
- package/dist/lib/impl/http/Req.js +16 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.js +4 -0
- package/package.json +55 -46
- package/app/middleware/tegg_root_proto.d.ts +0 -3
- package/app/middleware/tegg_root_proto.js +0 -8
- package/app.d.ts +0 -13
- package/app.js +0 -75
- package/index.d.ts +0 -13
- package/index.js +0 -2
- package/lib/AppLoadUnitControllerHook.d.ts +0 -10
- package/lib/AppLoadUnitControllerHook.js +0 -26
- package/lib/ControllerLoadUnit.d.ts +0 -21
- package/lib/ControllerLoadUnit.js +0 -72
- package/lib/ControllerLoadUnitHandler.d.ts +0 -12
- package/lib/ControllerLoadUnitHandler.js +0 -27
- package/lib/ControllerLoadUnitInstance.d.ts +0 -17
- package/lib/ControllerLoadUnitInstance.js +0 -34
- package/lib/ControllerMetadataManager.d.ts +0 -8
- package/lib/ControllerMetadataManager.js +0 -26
- package/lib/ControllerRegister.d.ts +0 -5
- package/lib/ControllerRegister.js +0 -2
- package/lib/ControllerRegisterFactory.d.ts +0 -12
- package/lib/ControllerRegisterFactory.js +0 -19
- package/lib/EggControllerLoader.d.ts +0 -7
- package/lib/EggControllerLoader.js +0 -31
- package/lib/EggControllerPrototypeHook.d.ts +0 -5
- package/lib/EggControllerPrototypeHook.js +0 -10
- package/lib/RootProtoManager.d.ts +0 -8
- package/lib/RootProtoManager.js +0 -32
- package/lib/errors.d.ts +0 -5
- package/lib/errors.js +0 -12
- package/lib/impl/http/Acl.d.ts +0 -2
- package/lib/impl/http/Acl.js +0 -32
- package/lib/impl/http/HTTPControllerRegister.d.ts +0 -18
- package/lib/impl/http/HTTPControllerRegister.js +0 -59
- package/lib/impl/http/HTTPMethodRegister.d.ts +0 -19
- package/lib/impl/http/HTTPMethodRegister.js +0 -161
- package/lib/impl/http/Req.d.ts +0 -5
- package/lib/impl/http/Req.js +0 -13
|
@@ -1,72 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJvbGxlckxvYWRVbml0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQ29udHJvbGxlckxvYWRVbml0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxtQkFBbUIsR0FJcEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBSUwsYUFBYSxHQUNkLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVsRCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUVyRCxnRUFBZ0U7QUFDaEUsTUFBTSxPQUFPLGtCQUFrQjtJQUNaLE1BQU0sQ0FBUztJQUNoQyxFQUFFLENBQUs7SUFDRSxJQUFJLENBQVM7SUFDYixJQUFJLEdBQUcsb0JBQW9CLENBQUM7SUFDNUIsUUFBUSxDQUFTO0lBQ2xCLG1CQUFtQixDQUFzQjtJQUN6QywwQkFBMEIsQ0FBb0M7SUFDOUQsUUFBUSxHQUEwQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRXBFLFlBQ0UsSUFBWSxFQUNaLFFBQWdCLEVBQ2hCLE1BQWMsRUFDZCxtQkFBd0MsRUFDeEMsMEJBQTZEO1FBRTdELElBQUksQ0FBQyxFQUFFLEdBQUcsYUFBYSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQztRQUMvQyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsMEJBQTBCLENBQUM7SUFDL0QsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJO1FBQ1IsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FB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
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { Base } from 'sdk-base';
|
|
2
|
-
import type { EggCore as Application } from '@eggjs/core';
|
|
3
|
-
import { LoadUnit } from '@eggjs/tegg-metadata';
|
|
4
|
-
import { 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>;
|
|
12
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { Base } from 'sdk-base';
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
import { CONTROLLER_LOAD_UNIT } from './ControllerLoadUnit.js';
|
|
4
|
-
export class ControllerLoadUnitHandler extends Base {
|
|
5
|
-
app;
|
|
6
|
-
controllerLoadUnit;
|
|
7
|
-
controllerLoadUnitInstance;
|
|
8
|
-
constructor(app) {
|
|
9
|
-
super({ initMethod: '_init' });
|
|
10
|
-
this.app = app;
|
|
11
|
-
}
|
|
12
|
-
async _init() {
|
|
13
|
-
const controllerDir = path.join(this.app.config.baseDir, 'app/controller');
|
|
14
|
-
const loader = this.app.loaderFactory.createLoader(controllerDir, CONTROLLER_LOAD_UNIT);
|
|
15
|
-
this.controllerLoadUnit = await this.app.loadUnitFactory.createLoadUnit(controllerDir, CONTROLLER_LOAD_UNIT, loader);
|
|
16
|
-
this.controllerLoadUnitInstance = await this.app.loadUnitInstanceFactory.createLoadUnitInstance(this.controllerLoadUnit);
|
|
17
|
-
}
|
|
18
|
-
async destroy() {
|
|
19
|
-
if (this.controllerLoadUnit) {
|
|
20
|
-
await this.app.loadUnitFactory.destroyLoadUnit(this.controllerLoadUnit);
|
|
21
|
-
}
|
|
22
|
-
if (this.controllerLoadUnitInstance) {
|
|
23
|
-
await this.app.loadUnitInstanceFactory.destroyLoadUnitInstance(this.controllerLoadUnitInstance);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJvbGxlckxvYWRVbml0SGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkNvbnRyb2xsZXJMb2FkVW5pdEhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNoQyxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFJN0IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFL0QsTUFBTSxPQUFPLHlCQUEwQixTQUFRLElBQUk7SUFDaEMsR0FBRyxDQUFjO0lBQ2xDLGtCQUFrQixDQUFXO0lBQzdCLDBCQUEwQixDQUFtQjtJQUU3QyxZQUFZLEdBQWdCO1FBQzFCLEtBQUssQ0FBQyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDM0UsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxvQkFBdUMsQ0FBQyxDQUFDO1FBQzNHLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDckgsSUFBSSxDQUFDLDBCQUEwQixHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMzSCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU87UUFDWCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzVCLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzFFLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUNsRyxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { EggPrototype, LoadUnit } from '@eggjs/tegg-metadata';
|
|
2
|
-
import { EggObjectName } from '@eggjs/tegg';
|
|
3
|
-
import { EggObject, LoadUnitInstance, LoadUnitInstanceLifecycleContext, LoadUnitInstanceLifecycleUtil } from '@eggjs/tegg-runtime';
|
|
4
|
-
export declare class ControllerLoadUnitInstance implements LoadUnitInstance {
|
|
5
|
-
readonly loadUnit: LoadUnit;
|
|
6
|
-
readonly id: string;
|
|
7
|
-
readonly name: string;
|
|
8
|
-
private protoToCreateMap;
|
|
9
|
-
private loadUnitInstanceLifecycleUtil;
|
|
10
|
-
constructor(loadUnit: LoadUnit, loadUnitInstanceLifecycleUtil: typeof LoadUnitInstanceLifecycleUtil);
|
|
11
|
-
iterateProtoToCreate(): IterableIterator<[EggObjectName, EggPrototype]>;
|
|
12
|
-
addProtoToCreate(): void;
|
|
13
|
-
deleteProtoToCreate(): void;
|
|
14
|
-
init(ctx: LoadUnitInstanceLifecycleContext): Promise<void>;
|
|
15
|
-
getOrCreateEggObject(): Promise<EggObject>;
|
|
16
|
-
getEggObject(): EggObject;
|
|
17
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { IdenticalUtil } from '@eggjs/tegg';
|
|
2
|
-
export class ControllerLoadUnitInstance {
|
|
3
|
-
loadUnit;
|
|
4
|
-
id;
|
|
5
|
-
name;
|
|
6
|
-
protoToCreateMap = new Map();
|
|
7
|
-
loadUnitInstanceLifecycleUtil;
|
|
8
|
-
constructor(loadUnit, loadUnitInstanceLifecycleUtil) {
|
|
9
|
-
this.loadUnit = loadUnit;
|
|
10
|
-
this.name = loadUnit.name;
|
|
11
|
-
this.id = IdenticalUtil.createLoadUnitInstanceId(loadUnit.id);
|
|
12
|
-
this.loadUnitInstanceLifecycleUtil = loadUnitInstanceLifecycleUtil;
|
|
13
|
-
}
|
|
14
|
-
iterateProtoToCreate() {
|
|
15
|
-
return this.protoToCreateMap.entries();
|
|
16
|
-
}
|
|
17
|
-
addProtoToCreate() {
|
|
18
|
-
throw new Error('controller load unit not allow have singleton proto');
|
|
19
|
-
}
|
|
20
|
-
deleteProtoToCreate() {
|
|
21
|
-
throw new Error('controller load unit not allow have singleton proto');
|
|
22
|
-
}
|
|
23
|
-
async init(ctx) {
|
|
24
|
-
await this.loadUnitInstanceLifecycleUtil.objectPreCreate(ctx, this);
|
|
25
|
-
await this.loadUnitInstanceLifecycleUtil.objectPostCreate(ctx, this);
|
|
26
|
-
}
|
|
27
|
-
async getOrCreateEggObject() {
|
|
28
|
-
throw new Error('controller load unit not allow have singleton proto');
|
|
29
|
-
}
|
|
30
|
-
getEggObject() {
|
|
31
|
-
throw new Error('controller load unit not allow have singleton proto');
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJvbGxlckxvYWRVbml0SW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJDb250cm9sbGVyTG9hZFVuaXRJbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQW1DLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQU83RSxNQUFNLE9BQU8sMEJBQTBCO0lBQzVCLFFBQVEsQ0FBVztJQUNuQixFQUFFLENBQVM7SUFDWCxJQUFJLENBQVM7SUFDZCxnQkFBZ0IsR0FBd0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNsRSw2QkFBNkIsQ0FBdUM7SUFFNUUsWUFBWSxRQUFrQixFQUFFLDZCQUFtRTtRQUNqRyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLEVBQUUsR0FBRyxhQUFhLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyw2QkFBNkIsR0FBRyw2QkFBNkIsQ0FBQztJQUNyRSxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBcUM7UUFDOUMsTUFBTSxJQUFJLENBQUMsNkJBQTZCLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRSxNQUFNLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELEtBQUssQ0FBQyxvQkFBb0I7UUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7Q0FDRiJ9
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { ControllerMetadata } from '@eggjs/tegg';
|
|
2
|
-
export declare class ControllerMetadataManager {
|
|
3
|
-
private readonly controllers;
|
|
4
|
-
static instance: ControllerMetadataManager;
|
|
5
|
-
constructor();
|
|
6
|
-
addController(metadata: ControllerMetadata): void;
|
|
7
|
-
clear(): void;
|
|
8
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { MapUtil } from '@eggjs/tegg-common-util';
|
|
2
|
-
export class ControllerMetadataManager {
|
|
3
|
-
controllers = new Map();
|
|
4
|
-
static instance = new ControllerMetadataManager();
|
|
5
|
-
constructor() {
|
|
6
|
-
this.controllers = new Map();
|
|
7
|
-
}
|
|
8
|
-
addController(metadata) {
|
|
9
|
-
const typeControllers = MapUtil.getOrStore(this.controllers, metadata.type, []);
|
|
10
|
-
// 1.check controller name
|
|
11
|
-
// 2.check proto name
|
|
12
|
-
const sameNameControllers = typeControllers.filter(c => c.controllerName === metadata.controllerName);
|
|
13
|
-
if (sameNameControllers.length) {
|
|
14
|
-
throw new Error(`duplicate controller name ${metadata.controllerName}`);
|
|
15
|
-
}
|
|
16
|
-
const sameProtoControllers = typeControllers.filter(c => c.protoName === metadata.protoName);
|
|
17
|
-
if (sameProtoControllers.length) {
|
|
18
|
-
throw new Error(`duplicate proto name ${String(metadata.protoName)}`);
|
|
19
|
-
}
|
|
20
|
-
typeControllers.push(metadata);
|
|
21
|
-
}
|
|
22
|
-
clear() {
|
|
23
|
-
this.controllers.clear();
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJvbGxlck1ldGFkYXRhTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkNvbnRyb2xsZXJNZXRhZGF0YU1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWxELE1BQU0sT0FBTyx5QkFBeUI7SUFDbkIsV0FBVyxHQUFHLElBQUksR0FBRyxFQUE0QyxDQUFDO0lBRW5GLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSx5QkFBeUIsRUFBRSxDQUFDO0lBRWxEO1FBQ0UsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxhQUFhLENBQUMsUUFBNEI7UUFDeEMsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEYsMEJBQTBCO1FBQzFCLHFCQUFxQjtRQUNyQixNQUFNLG1CQUFtQixHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxLQUFLLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0RyxJQUFJLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLENBQUM7UUFDRCxNQUFNLG9CQUFvQixHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3RixJQUFJLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7UUFDRCxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDIn0=
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { EggCore as Application } from '@eggjs/core';
|
|
2
|
-
import { ControllerMetadata, ControllerTypeLike } from '@eggjs/tegg';
|
|
3
|
-
import { EggPrototype } from '@eggjs/tegg-metadata';
|
|
4
|
-
import { ControllerRegister } from './ControllerRegister.js';
|
|
5
|
-
export type RegisterCreator = (proto: EggPrototype, controllerMeta: ControllerMetadata, app: Application) => ControllerRegister;
|
|
6
|
-
export declare class ControllerRegisterFactory {
|
|
7
|
-
private readonly app;
|
|
8
|
-
private registerCreatorMap;
|
|
9
|
-
constructor(app: Application);
|
|
10
|
-
registerControllerRegister(type: ControllerTypeLike, creator: RegisterCreator): void;
|
|
11
|
-
getControllerRegister(proto: EggPrototype, metadata: ControllerMetadata): ControllerRegister | undefined;
|
|
12
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export class ControllerRegisterFactory {
|
|
2
|
-
app;
|
|
3
|
-
registerCreatorMap;
|
|
4
|
-
constructor(app) {
|
|
5
|
-
this.app = app;
|
|
6
|
-
this.registerCreatorMap = new Map();
|
|
7
|
-
}
|
|
8
|
-
registerControllerRegister(type, creator) {
|
|
9
|
-
this.registerCreatorMap.set(type, creator);
|
|
10
|
-
}
|
|
11
|
-
getControllerRegister(proto, metadata) {
|
|
12
|
-
const creator = this.registerCreatorMap.get(metadata.type);
|
|
13
|
-
if (!creator) {
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
return creator(proto, metadata, this.app);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJvbGxlclJlZ2lzdGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkNvbnRyb2xsZXJSZWdpc3RlckZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsTUFBTSxPQUFPLHlCQUF5QjtJQUNuQixHQUFHLENBQWM7SUFDMUIsa0JBQWtCLENBQTJDO0lBRXJFLFlBQVksR0FBZ0I7UUFDMUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsMEJBQTBCLENBQUMsSUFBd0IsRUFBRSxPQUF3QjtRQUMzRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBbUIsRUFBRSxRQUE0QjtRQUNyRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixPQUFPO1FBQ1QsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDRiJ9
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { EggProtoImplClass } from '@eggjs/tegg';
|
|
2
|
-
import type { Loader } from '@eggjs/tegg-types';
|
|
3
|
-
export declare class EggControllerLoader implements Loader {
|
|
4
|
-
private readonly controllerDir;
|
|
5
|
-
constructor(controllerDir: string);
|
|
6
|
-
load(): Promise<EggProtoImplClass[]>;
|
|
7
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import path from 'node:path';
|
|
2
|
-
import { globby } from 'globby';
|
|
3
|
-
import { LoaderUtil } from '@eggjs/tegg-loader';
|
|
4
|
-
export class EggControllerLoader {
|
|
5
|
-
controllerDir;
|
|
6
|
-
constructor(controllerDir) {
|
|
7
|
-
this.controllerDir = controllerDir;
|
|
8
|
-
}
|
|
9
|
-
async load() {
|
|
10
|
-
const filePattern = LoaderUtil.filePattern();
|
|
11
|
-
let files;
|
|
12
|
-
try {
|
|
13
|
-
const httpControllers = (await globby(filePattern, { cwd: this.controllerDir }))
|
|
14
|
-
.map(file => path.join(this.controllerDir, file));
|
|
15
|
-
files = httpControllers;
|
|
16
|
-
}
|
|
17
|
-
catch {
|
|
18
|
-
files = [];
|
|
19
|
-
// app/controller dir not exists
|
|
20
|
-
}
|
|
21
|
-
const protoClassList = [];
|
|
22
|
-
for (const file of files) {
|
|
23
|
-
const fileClazzList = await LoaderUtil.loadFile(file);
|
|
24
|
-
for (const clazz of fileClazzList) {
|
|
25
|
-
protoClassList.push(clazz);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return protoClassList;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnQ29udHJvbGxlckxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVnZ0NvbnRyb2xsZXJMb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSWhELE1BQU0sT0FBTyxtQkFBbUI7SUFDYixhQUFhLENBQVM7SUFFdkMsWUFBWSxhQUFxQjtRQUMvQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUk7UUFDUixNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDN0MsSUFBSSxLQUFlLENBQUM7UUFDcEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxlQUFlLEdBQUcsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7aUJBQzdFLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3BELEtBQUssR0FBRyxlQUFlLENBQUM7UUFDMUIsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDWCxnQ0FBZ0M7UUFDbEMsQ0FBQztRQUNELE1BQU0sY0FBYyxHQUF3QixFQUFFLENBQUM7UUFDL0MsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN6QixNQUFNLGFBQWEsR0FBRyxNQUFNLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEQsS0FBSyxNQUFNLEtBQUssSUFBSSxhQUFhLEVBQUUsQ0FBQztnQkFDbEMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7Q0FDRiJ9
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { EggPrototype, EggPrototypeLifecycleContext } from '@eggjs/tegg-metadata';
|
|
2
|
-
import { LifecycleHook } from '@eggjs/tegg';
|
|
3
|
-
export declare class EggControllerPrototypeHook implements LifecycleHook<EggPrototypeLifecycleContext, EggPrototype> {
|
|
4
|
-
postCreate(ctx: EggPrototypeLifecycleContext): Promise<void>;
|
|
5
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { ControllerMetaBuilderFactory, ControllerMetadataUtil, } from '@eggjs/tegg';
|
|
2
|
-
export class EggControllerPrototypeHook {
|
|
3
|
-
async postCreate(ctx) {
|
|
4
|
-
const metadata = ControllerMetaBuilderFactory.build(ctx.clazz);
|
|
5
|
-
if (metadata) {
|
|
6
|
-
ControllerMetadataUtil.setControllerMetadata(ctx.clazz, metadata);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnQ29udHJvbGxlclByb3RvdHlwZUhvb2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJFZ2dDb250cm9sbGVyUHJvdG90eXBlSG9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLHNCQUFzQixHQUV2QixNQUFNLGFBQWEsQ0FBQztBQUVyQixNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBaUM7UUFDaEQsTUFBTSxRQUFRLEdBQUcsNEJBQTRCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRCxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2Isc0JBQXNCLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNwRSxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { EggPrototype } from '@eggjs/tegg-metadata';
|
|
2
|
-
import { EggContext } from '@eggjs/tegg';
|
|
3
|
-
export type GetRootProtoCallback = (ctx: EggContext) => EggPrototype | undefined;
|
|
4
|
-
export declare class RootProtoManager {
|
|
5
|
-
protoMap: Map<string, GetRootProtoCallback[]>;
|
|
6
|
-
registerRootProto(method: string, cb: GetRootProtoCallback, host: string): void;
|
|
7
|
-
getRootProto(ctx: EggContext): EggPrototype | undefined;
|
|
8
|
-
}
|
package/lib/RootProtoManager.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { MapUtil } from '@eggjs/tegg-common-util';
|
|
2
|
-
export class RootProtoManager {
|
|
3
|
-
// <method, GetRootProtoCallback[]>
|
|
4
|
-
protoMap = new Map();
|
|
5
|
-
registerRootProto(method, cb, host) {
|
|
6
|
-
host = host || '';
|
|
7
|
-
const cbList = MapUtil.getOrStore(this.protoMap, method + host, []);
|
|
8
|
-
cbList.push(cb);
|
|
9
|
-
}
|
|
10
|
-
getRootProto(ctx) {
|
|
11
|
-
const hostCbList = this.protoMap.get(ctx.method + ctx.host);
|
|
12
|
-
if (hostCbList) {
|
|
13
|
-
for (const cb of hostCbList) {
|
|
14
|
-
const proto = cb(ctx);
|
|
15
|
-
if (proto) {
|
|
16
|
-
return proto;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
const cbList = this.protoMap.get(ctx.method);
|
|
21
|
-
if (!cbList) {
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
for (const cb of cbList) {
|
|
25
|
-
const proto = cb(ctx);
|
|
26
|
-
if (proto) {
|
|
27
|
-
return proto;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm9vdFByb3RvTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIlJvb3RQcm90b01hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSWxELE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsbUNBQW1DO0lBQ25DLFFBQVEsR0FBd0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUUxRCxpQkFBaUIsQ0FBQyxNQUFjLEVBQUUsRUFBd0IsRUFBRSxJQUFZO1FBQ3RFLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFlO1FBQzFCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixLQUFLLE1BQU0sRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUM1QixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3RCLElBQUksS0FBSyxFQUFFLENBQUM7b0JBQ1YsT0FBTyxLQUFLLENBQUM7Z0JBQ2YsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE9BQU87UUFDVCxDQUFDO1FBQ0QsS0FBSyxNQUFNLEVBQUUsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUN4QixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEIsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
|
package/lib/errors.d.ts
DELETED
package/lib/errors.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { TeggError } from '@eggjs/tegg-metadata';
|
|
2
|
-
var ErrorCodes;
|
|
3
|
-
(function (ErrorCodes) {
|
|
4
|
-
ErrorCodes["ROUTER_CONFLICT"] = "ROUTER_CONFLICT";
|
|
5
|
-
})(ErrorCodes || (ErrorCodes = {}));
|
|
6
|
-
/** 路由冲突错误 */
|
|
7
|
-
export class RouterConflictError extends TeggError {
|
|
8
|
-
constructor(msg) {
|
|
9
|
-
super(msg, ErrorCodes.ROUTER_CONFLICT);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRCxJQUFLLFVBRUo7QUFGRCxXQUFLLFVBQVU7SUFDYixpREFBbUMsQ0FBQTtBQUNyQyxDQUFDLEVBRkksVUFBVSxLQUFWLFVBQVUsUUFFZDtBQUVELGFBQWE7QUFDYixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsU0FBUztJQUNoRCxZQUFZLEdBQVc7UUFDckIsS0FBSyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekMsQ0FBQztDQUNGIn0=
|
package/lib/impl/http/Acl.d.ts
DELETED
package/lib/impl/http/Acl.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
export function aclMiddlewareFactory(controllerMeta, methodMeta) {
|
|
2
|
-
if (!controllerMeta.hasMethodAcl(methodMeta)) {
|
|
3
|
-
return;
|
|
4
|
-
}
|
|
5
|
-
const code = controllerMeta.getMethodAcl(methodMeta);
|
|
6
|
-
return async function aclMiddleware(ctx, next) {
|
|
7
|
-
try {
|
|
8
|
-
// @ts-expect-error ctx.acl is implemented in extend/context.ts on top level plugin, framework or app
|
|
9
|
-
await ctx.acl(code);
|
|
10
|
-
}
|
|
11
|
-
catch (e) {
|
|
12
|
-
const { redirectUrl, status } = e.data || {};
|
|
13
|
-
if (!redirectUrl) {
|
|
14
|
-
throw e;
|
|
15
|
-
}
|
|
16
|
-
if (ctx.acceptJSON) {
|
|
17
|
-
ctx.body = {
|
|
18
|
-
target: redirectUrl,
|
|
19
|
-
stat: 'deny',
|
|
20
|
-
};
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
if (status) {
|
|
24
|
-
ctx.realStatus = status;
|
|
25
|
-
}
|
|
26
|
-
ctx.redirect(redirectUrl);
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
return next();
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWNsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQWNsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxjQUFrQyxFQUFFLFVBQTBCO0lBQ2pHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDN0MsT0FBTztJQUNULENBQUM7SUFDRCxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JELE9BQU8sS0FBSyxVQUFVLGFBQWEsQ0FBQyxHQUFlLEVBQUUsSUFBVTtRQUM3RCxJQUFJLENBQUM7WUFDSCxxR0FBcUc7WUFDckcsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDN0MsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNqQixNQUFNLENBQUMsQ0FBQztZQUNWLENBQUM7WUFDRCxJQUFJLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbkIsR0FBRyxDQUFDLElBQUksR0FBRztvQkFDVCxNQUFNLEVBQUUsV0FBVztvQkFDbkIsSUFBSSxFQUFFLE1BQU07aUJBQ2IsQ0FBQztnQkFDRixPQUFPO1lBQ1QsQ0FBQztZQUNELElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1gsR0FBRyxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7WUFDMUIsQ0FBQztZQUNELEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDMUIsT0FBTztRQUVULENBQUM7UUFDRCxPQUFPLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztBQUNKLENBQUMifQ==
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { EggCore as Application, Router } from '@eggjs/core';
|
|
2
|
-
import { ControllerMetadata } from '@eggjs/tegg';
|
|
3
|
-
import { EggPrototype } from '@eggjs/tegg-metadata';
|
|
4
|
-
import { EggContainerFactory } from '@eggjs/tegg-runtime';
|
|
5
|
-
import { ControllerRegister } from '../../ControllerRegister.js';
|
|
6
|
-
import { RootProtoManager } from '../../RootProtoManager.js';
|
|
7
|
-
export declare class HTTPControllerRegister implements ControllerRegister {
|
|
8
|
-
static instance?: HTTPControllerRegister;
|
|
9
|
-
private readonly router;
|
|
10
|
-
private readonly checkRouters;
|
|
11
|
-
private readonly eggContainerFactory;
|
|
12
|
-
private controllerProtos;
|
|
13
|
-
static create(proto: EggPrototype, controllerMeta: ControllerMetadata, app: Application): HTTPControllerRegister;
|
|
14
|
-
constructor(router: Router, eggContainerFactory: typeof EggContainerFactory);
|
|
15
|
-
register(): Promise<void>;
|
|
16
|
-
static clean(): void;
|
|
17
|
-
doRegister(rootProtoManager: RootProtoManager): void;
|
|
18
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import assert from 'node:assert/strict';
|
|
2
|
-
import { CONTROLLER_META_DATA, ControllerType, } from '@eggjs/tegg';
|
|
3
|
-
import { HTTPMethodRegister } from './HTTPMethodRegister.js';
|
|
4
|
-
export class HTTPControllerRegister {
|
|
5
|
-
static instance;
|
|
6
|
-
router;
|
|
7
|
-
checkRouters;
|
|
8
|
-
eggContainerFactory;
|
|
9
|
-
controllerProtos = [];
|
|
10
|
-
static create(proto, controllerMeta, app) {
|
|
11
|
-
assert(controllerMeta.type === ControllerType.HTTP, 'controller meta type is not HTTP');
|
|
12
|
-
if (!HTTPControllerRegister.instance) {
|
|
13
|
-
HTTPControllerRegister.instance = new HTTPControllerRegister(app.router, app.eggContainerFactory);
|
|
14
|
-
}
|
|
15
|
-
HTTPControllerRegister.instance.controllerProtos.push(proto);
|
|
16
|
-
return HTTPControllerRegister.instance;
|
|
17
|
-
}
|
|
18
|
-
constructor(router, eggContainerFactory) {
|
|
19
|
-
this.router = router;
|
|
20
|
-
this.checkRouters = new Map();
|
|
21
|
-
this.checkRouters.set('default', router);
|
|
22
|
-
this.eggContainerFactory = eggContainerFactory;
|
|
23
|
-
}
|
|
24
|
-
register() {
|
|
25
|
-
// do noting
|
|
26
|
-
return Promise.resolve();
|
|
27
|
-
}
|
|
28
|
-
static clean() {
|
|
29
|
-
if (this.instance) {
|
|
30
|
-
this.instance.controllerProtos = [];
|
|
31
|
-
this.instance.checkRouters.clear();
|
|
32
|
-
}
|
|
33
|
-
this.instance = undefined;
|
|
34
|
-
}
|
|
35
|
-
doRegister(rootProtoManager) {
|
|
36
|
-
const methodMap = new Map();
|
|
37
|
-
for (const proto of this.controllerProtos) {
|
|
38
|
-
const metadata = proto.getMetaData(CONTROLLER_META_DATA);
|
|
39
|
-
for (const method of metadata.methods) {
|
|
40
|
-
methodMap.set(method, proto);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
const allMethods = Array.from(methodMap.keys())
|
|
44
|
-
.sort((a, b) => b.priority - a.priority);
|
|
45
|
-
for (const method of allMethods) {
|
|
46
|
-
const controllerProto = methodMap.get(method);
|
|
47
|
-
const controllerMeta = controllerProto.getMetaData(CONTROLLER_META_DATA);
|
|
48
|
-
const methodRegister = new HTTPMethodRegister(controllerProto, controllerMeta, method, this.router, this.checkRouters, this.eggContainerFactory);
|
|
49
|
-
methodRegister.checkDuplicate();
|
|
50
|
-
}
|
|
51
|
-
for (const method of allMethods) {
|
|
52
|
-
const controllerProto = methodMap.get(method);
|
|
53
|
-
const controllerMeta = controllerProto.getMetaData(CONTROLLER_META_DATA);
|
|
54
|
-
const methodRegister = new HTTPMethodRegister(controllerProto, controllerMeta, method, this.router, this.checkRouters, this.eggContainerFactory);
|
|
55
|
-
methodRegister.register(rootProtoManager);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRUUENvbnRyb2xsZXJSZWdpc3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkhUVFBDb250cm9sbGVyUmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sb0JBQW9CLENBQUM7QUFFeEMsT0FBTyxFQUNMLG9CQUFvQixFQUVwQixjQUFjLEdBR2YsTUFBTSxhQUFhLENBQUM7QUFJckIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHN0QsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxNQUFNLENBQUMsUUFBUSxDQUEwQjtJQUV4QixNQUFNLENBQVM7SUFDZixZQUFZLENBQXNCO0lBQ2xDLG1CQUFtQixDQUE2QjtJQUN6RCxnQkFBZ0IsR0FBbUIsRUFBRSxDQUFDO0lBRTlDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBbUIsRUFBRSxjQUFrQyxFQUFFLEdBQWdCO1FBQ3JGLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxJQUFJLEVBQUUsa0NBQWtDLENBQUMsQ0FBQztRQUN4RixJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckMsc0JBQXNCLENBQUMsUUFBUSxHQUFHLElBQUksc0JBQXNCLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNwRyxDQUFDO1FBQ0Qsc0JBQXNCLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3RCxPQUFPLHNCQUFzQixDQUFDLFFBQVEsQ0FBQztJQUN6QyxDQUFDO0lBRUQsWUFBWSxNQUFjLEVBQUUsbUJBQStDO1FBQ3pFLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsWUFBWSxD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
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Router } from '@eggjs/core';
|
|
2
|
-
import { HTTPControllerMeta, HTTPMethodMeta } from '@eggjs/tegg';
|
|
3
|
-
import { EggContainerFactory } from '@eggjs/tegg-runtime';
|
|
4
|
-
import { EggPrototype } from '@eggjs/tegg-metadata';
|
|
5
|
-
import { RootProtoManager } from '../../RootProtoManager.js';
|
|
6
|
-
export declare class HTTPMethodRegister {
|
|
7
|
-
private readonly router;
|
|
8
|
-
private readonly checkRouters;
|
|
9
|
-
private readonly controllerMeta;
|
|
10
|
-
private readonly methodMeta;
|
|
11
|
-
private readonly proto;
|
|
12
|
-
private readonly eggContainerFactory;
|
|
13
|
-
constructor(proto: EggPrototype, controllerMeta: HTTPControllerMeta, methodMeta: HTTPMethodMeta, router: Router, checkRouters: Map<string, Router>, eggContainerFactory: typeof EggContainerFactory);
|
|
14
|
-
private createHandler;
|
|
15
|
-
checkDuplicate(): void;
|
|
16
|
-
private registerToRouter;
|
|
17
|
-
private checkDuplicateInRouter;
|
|
18
|
-
register(rootProtoManager: RootProtoManager): void;
|
|
19
|
-
}
|