@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,21 +1,17 @@
|
|
|
1
|
-
import { EggPrototype, LoadUnit } from
|
|
2
|
-
import { EggObjectName } from
|
|
3
|
-
import { EggObject, LoadUnitInstance, LoadUnitInstanceLifecycleContext, LoadUnitInstanceLifecycleUtil } from
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
getOrCreateEggObject(): Promise<EggObject>;
|
|
18
|
-
getEggObject(): EggObject;
|
|
1
|
+
import { type EggPrototype, type LoadUnit } from '@eggjs/tegg-metadata';
|
|
2
|
+
import { type EggObjectName } from '@eggjs/tegg';
|
|
3
|
+
import { type EggObject, type LoadUnitInstance, type 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;
|
|
19
17
|
}
|
|
20
|
-
//#endregion
|
|
21
|
-
export { ControllerLoadUnitInstance };
|
|
@@ -1,40 +1,36 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { IdenticalUtil } from
|
|
3
|
-
import { LoadUnitInstanceLifecycleUtil } 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
|
-
//#endregion
|
|
40
|
-
export { ControllerLoadUnitInstance };
|
|
1
|
+
import {} from '@eggjs/tegg-metadata';
|
|
2
|
+
import { IdenticalUtil } from '@eggjs/tegg';
|
|
3
|
+
import { LoadUnitInstanceLifecycleUtil, } from '@eggjs/tegg-runtime';
|
|
4
|
+
export class ControllerLoadUnitInstance {
|
|
5
|
+
loadUnit;
|
|
6
|
+
id;
|
|
7
|
+
name;
|
|
8
|
+
protoToCreateMap = new Map();
|
|
9
|
+
loadUnitInstanceLifecycleUtil;
|
|
10
|
+
constructor(loadUnit, loadUnitInstanceLifecycleUtil) {
|
|
11
|
+
this.loadUnit = loadUnit;
|
|
12
|
+
this.name = loadUnit.name;
|
|
13
|
+
this.id = IdenticalUtil.createLoadUnitInstanceId(loadUnit.id);
|
|
14
|
+
this.loadUnitInstanceLifecycleUtil = loadUnitInstanceLifecycleUtil;
|
|
15
|
+
}
|
|
16
|
+
iterateProtoToCreate() {
|
|
17
|
+
return this.protoToCreateMap.entries();
|
|
18
|
+
}
|
|
19
|
+
addProtoToCreate() {
|
|
20
|
+
throw new Error('controller load unit not allow have singleton proto');
|
|
21
|
+
}
|
|
22
|
+
deleteProtoToCreate() {
|
|
23
|
+
throw new Error('controller load unit not allow have singleton proto');
|
|
24
|
+
}
|
|
25
|
+
async init(ctx) {
|
|
26
|
+
await this.loadUnitInstanceLifecycleUtil.objectPreCreate(ctx, this);
|
|
27
|
+
await this.loadUnitInstanceLifecycleUtil.objectPostCreate(ctx, this);
|
|
28
|
+
}
|
|
29
|
+
async getOrCreateEggObject() {
|
|
30
|
+
throw new Error('controller load unit not allow have singleton proto');
|
|
31
|
+
}
|
|
32
|
+
getEggObject() {
|
|
33
|
+
throw new Error('controller load unit not allow have singleton proto');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJvbGxlckxvYWRVbml0SW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL0NvbnRyb2xsZXJMb2FkVW5pdEluc3RhbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RSxPQUFPLEVBQTZDLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2RixPQUFPLEVBR2tDLDZCQUE2QixHQUNyRSxNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE1BQU0sT0FBTywwQkFBMEI7SUFDNUIsUUFBUSxDQUFXO0lBQ25CLEVBQUUsQ0FBUztJQUNYLElBQUksQ0FBUztJQUNkLGdCQUFnQixHQUF3QyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2xFLDZCQUE2QixDQUF1QztJQUU1RSxZQUFZLFFBQWtCLEVBQUUsNkJBQW1FO1FBQ2pHLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsRUFBRSxHQUFHLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLDZCQUE2QixHQUFHLDZCQUE2QixDQUFDO0lBQ3JFLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFxQztRQUM5QyxNQUFNLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sSUFBSSxDQUFDLDZCQUE2QixDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsS0FBSyxDQUFDLG9CQUFvQjtRQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELFlBQVk7UUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7SUFDekUsQ0FBQztDQUNGIn0=
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
import { ControllerMetadata } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
addController(metadata: ControllerMetadata): void;
|
|
9
|
-
clear(): void;
|
|
1
|
+
import { type 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;
|
|
10
8
|
}
|
|
11
|
-
//#endregion
|
|
12
|
-
export { ControllerMetadataManager };
|
|
@@ -1,23 +1,27 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { MapUtil } from
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
1
|
+
import {} from '@eggjs/tegg';
|
|
2
|
+
import { MapUtil } from '@eggjs/tegg-common-util';
|
|
3
|
+
export class ControllerMetadataManager {
|
|
4
|
+
controllers = new Map();
|
|
5
|
+
static instance = new ControllerMetadataManager();
|
|
6
|
+
constructor() {
|
|
7
|
+
this.controllers = new Map();
|
|
8
|
+
}
|
|
9
|
+
addController(metadata) {
|
|
10
|
+
const typeControllers = MapUtil.getOrStore(this.controllers, metadata.type, []);
|
|
11
|
+
// 1.check controller name
|
|
12
|
+
// 2.check proto name
|
|
13
|
+
const sameNameControllers = typeControllers.filter(c => c.controllerName === metadata.controllerName);
|
|
14
|
+
if (sameNameControllers.length) {
|
|
15
|
+
throw new Error(`duplicate controller name ${metadata.controllerName}`);
|
|
16
|
+
}
|
|
17
|
+
const sameProtoControllers = typeControllers.filter(c => c.protoName === metadata.protoName);
|
|
18
|
+
if (sameProtoControllers.length) {
|
|
19
|
+
throw new Error(`duplicate proto name ${String(metadata.protoName)}`);
|
|
20
|
+
}
|
|
21
|
+
typeControllers.push(metadata);
|
|
22
|
+
}
|
|
23
|
+
clear() {
|
|
24
|
+
this.controllers.clear();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJvbGxlck1ldGFkYXRhTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvQ29udHJvbGxlck1ldGFkYXRhTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9ELE1BQU0sYUFBYSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVsRCxNQUFNLE9BQU8seUJBQXlCO0lBQ25CLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBNEMsQ0FBQztJQUVuRixNQUFNLENBQUMsUUFBUSxHQUFHLElBQUkseUJBQXlCLEVBQUUsQ0FBQztJQUVsRDtRQUNFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsYUFBYSxDQUFDLFFBQTRCO1FBQ3hDLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hGLDBCQUEwQjtRQUMxQixxQkFBcUI7UUFDckIsTUFBTSxtQkFBbUIsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsS0FBSyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEcsSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixRQUFRLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBQ0QsTUFBTSxvQkFBb0IsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0YsSUFBSSxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBQ0QsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0IsQ0FBQyJ9
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
interface ControllerRegister {
|
|
6
|
-
register(rootProtoManager: RootProtoManager, loadUnit?: LoadUnit): Promise<void>;
|
|
1
|
+
import { type LoadUnit } from '@eggjs/tegg-metadata';
|
|
2
|
+
import { RootProtoManager } from './RootProtoManager.ts';
|
|
3
|
+
export interface ControllerRegister {
|
|
4
|
+
register(rootProtoManager: RootProtoManager, loadUnit?: LoadUnit): Promise<void>;
|
|
7
5
|
}
|
|
8
|
-
//#endregion
|
|
9
|
-
export { ControllerRegister };
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
import "
|
|
3
|
-
|
|
4
|
-
export { };
|
|
1
|
+
import {} from '@eggjs/tegg-metadata';
|
|
2
|
+
import { RootProtoManager } from "./RootProtoManager.js";
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJvbGxlclJlZ2lzdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9Db250cm9sbGVyUmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixNQUFNLHNCQUFzQixDQUFDO0FBRXJELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDIn0=
|
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
registerControllerRegister(type: ControllerTypeLike, creator: RegisterCreator): void;
|
|
13
|
-
getControllerRegister(proto: EggPrototype, metadata: ControllerMetadata): ControllerRegister | undefined;
|
|
1
|
+
import type { Application } from 'egg';
|
|
2
|
+
import { type ControllerMetadata, type ControllerTypeLike } from '@eggjs/tegg';
|
|
3
|
+
import { type EggPrototype } from '@eggjs/tegg-metadata';
|
|
4
|
+
import { type ControllerRegister } from './ControllerRegister.ts';
|
|
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;
|
|
14
12
|
}
|
|
15
|
-
//#endregion
|
|
16
|
-
export { ControllerRegisterFactory, RegisterCreator };
|
|
@@ -1,24 +1,22 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import "
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
//#endregion
|
|
24
|
-
export { ControllerRegisterFactory };
|
|
1
|
+
import {} from '@eggjs/tegg';
|
|
2
|
+
import {} from '@eggjs/tegg-metadata';
|
|
3
|
+
import {} from "./ControllerRegister.js";
|
|
4
|
+
export class ControllerRegisterFactory {
|
|
5
|
+
app;
|
|
6
|
+
registerCreatorMap;
|
|
7
|
+
constructor(app) {
|
|
8
|
+
this.app = app;
|
|
9
|
+
this.registerCreatorMap = new Map();
|
|
10
|
+
}
|
|
11
|
+
registerControllerRegister(type, creator) {
|
|
12
|
+
this.registerCreatorMap.set(type, creator);
|
|
13
|
+
}
|
|
14
|
+
getControllerRegister(proto, metadata) {
|
|
15
|
+
const creator = this.registerCreatorMap.get(metadata.type);
|
|
16
|
+
if (!creator) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
return creator(proto, metadata, this.app);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJvbGxlclJlZ2lzdGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvQ29udHJvbGxlclJlZ2lzdGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQW9ELE1BQU0sYUFBYSxDQUFDO0FBQy9FLE9BQU8sRUFBcUIsTUFBTSxzQkFBc0IsQ0FBQztBQUV6RCxPQUFPLEVBQTJCLE1BQU0seUJBQXlCLENBQUM7QUFJbEUsTUFBTSxPQUFPLHlCQUF5QjtJQUNuQixHQUFHLENBQWM7SUFDMUIsa0JBQWtCLENBQTJDO0lBRXJFLFlBQVksR0FBZ0I7UUFDMUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsMEJBQTBCLENBQUMsSUFBd0IsRUFBRSxPQUF3QjtRQUMzRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBbUIsRUFBRSxRQUE0QjtRQUNyRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixPQUFPO1FBQ1QsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDRiJ9
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import { EggProtoImplClass } from
|
|
2
|
-
import { Loader } from
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
constructor(controllerDir: string);
|
|
8
|
-
load(): Promise<EggProtoImplClass[]>;
|
|
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[]>;
|
|
9
7
|
}
|
|
10
|
-
//#endregion
|
|
11
|
-
export { EggControllerLoader };
|
|
@@ -1,29 +1,31 @@
|
|
|
1
|
-
import path from
|
|
2
|
-
import { globby } from
|
|
3
|
-
import { LoaderUtil } 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
|
-
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnQ29udHJvbGxlckxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvRWdnQ29udHJvbGxlckxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFFN0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFJaEQsTUFBTSxPQUFPLG1CQUFtQjtJQUNiLGFBQWEsQ0FBUztJQUV2QyxZQUFZLGFBQXFCO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNSLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM3QyxJQUFJLEtBQWUsQ0FBQztRQUNwQixJQUFJLENBQUM7WUFDSCxNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQU0sTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztpQkFDN0UsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDcEQsS0FBSyxHQUFHLGVBQWUsQ0FBQztRQUMxQixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNYLGdDQUFnQztRQUNsQyxDQUFDO1FBQ0QsTUFBTSxjQUFjLEdBQXdCLEVBQUUsQ0FBQztRQUMvQyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE1BQU0sYUFBYSxHQUFHLE1BQU0sVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0RCxLQUFLLE1BQU0sS0FBSyxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNsQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztDQUNGIn0=
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
import { EggPrototype, EggPrototypeLifecycleContext } from
|
|
2
|
-
import { LifecycleHook } from
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
declare class EggControllerPrototypeHook implements LifecycleHook<EggPrototypeLifecycleContext, EggPrototype> {
|
|
6
|
-
postCreate(ctx: EggPrototypeLifecycleContext): Promise<void>;
|
|
1
|
+
import { type EggPrototype, type EggPrototypeLifecycleContext } from '@eggjs/tegg-metadata';
|
|
2
|
+
import { type LifecycleHook } from '@eggjs/tegg';
|
|
3
|
+
export declare class EggControllerPrototypeHook implements LifecycleHook<EggPrototypeLifecycleContext, EggPrototype> {
|
|
4
|
+
postCreate(ctx: EggPrototypeLifecycleContext): Promise<void>;
|
|
7
5
|
}
|
|
8
|
-
//#endregion
|
|
9
|
-
export { EggControllerPrototypeHook };
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { ControllerMetaBuilderFactory, ControllerMetadataUtil } from
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
//#endregion
|
|
13
|
-
export { EggControllerPrototypeHook };
|
|
1
|
+
import {} from '@eggjs/tegg-metadata';
|
|
2
|
+
import { ControllerMetaBuilderFactory, ControllerMetadataUtil, } from '@eggjs/tegg';
|
|
3
|
+
export class EggControllerPrototypeHook {
|
|
4
|
+
async postCreate(ctx) {
|
|
5
|
+
const metadata = ControllerMetaBuilderFactory.build(ctx.clazz);
|
|
6
|
+
if (metadata) {
|
|
7
|
+
ControllerMetadataUtil.setControllerMetadata(ctx.clazz, metadata);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnQ29udHJvbGxlclByb3RvdHlwZUhvb2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL0VnZ0NvbnRyb2xsZXJQcm90b3R5cGVIb29rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0QsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RixPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLHNCQUFzQixHQUV2QixNQUFNLGFBQWEsQ0FBQztBQUVyQixNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBaUM7UUFDaEQsTUFBTSxRQUFRLEdBQUcsNEJBQTRCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRCxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2Isc0JBQXNCLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNwRSxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
import { EggPrototype } from
|
|
2
|
-
import { EggContext } from
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
registerRootProto(method: string, cb: GetRootProtoCallback, host: string): void;
|
|
9
|
-
getRootProto(ctx: EggContext): EggPrototype | undefined;
|
|
1
|
+
import { type EggPrototype } from '@eggjs/tegg-metadata';
|
|
2
|
+
import { type 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;
|
|
10
8
|
}
|
|
11
|
-
//#endregion
|
|
12
|
-
export { GetRootProtoCallback, RootProtoManager };
|
|
@@ -1,28 +1,34 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
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
|
-
|
|
1
|
+
import {} from '@eggjs/tegg-metadata';
|
|
2
|
+
import {} from '@eggjs/tegg';
|
|
3
|
+
import { MapUtil } from '@eggjs/tegg-common-util';
|
|
4
|
+
export class RootProtoManager {
|
|
5
|
+
// <method, GetRootProtoCallback[]>
|
|
6
|
+
protoMap = new Map();
|
|
7
|
+
registerRootProto(method, cb, host) {
|
|
8
|
+
host = host || '';
|
|
9
|
+
const cbList = MapUtil.getOrStore(this.protoMap, method + host, []);
|
|
10
|
+
cbList.push(cb);
|
|
11
|
+
}
|
|
12
|
+
getRootProto(ctx) {
|
|
13
|
+
const hostCbList = this.protoMap.get(ctx.method + ctx.host);
|
|
14
|
+
if (hostCbList) {
|
|
15
|
+
for (const cb of hostCbList) {
|
|
16
|
+
const proto = cb(ctx);
|
|
17
|
+
if (proto) {
|
|
18
|
+
return proto;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
const cbList = this.protoMap.get(ctx.method);
|
|
23
|
+
if (!cbList) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
for (const cb of cbList) {
|
|
27
|
+
const proto = cb(ctx);
|
|
28
|
+
if (proto) {
|
|
29
|
+
return proto;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm9vdFByb3RvTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvUm9vdFByb3RvTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFtQixNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJbEQsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixtQ0FBbUM7SUFDbkMsUUFBUSxHQUF3QyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRTFELGlCQUFpQixDQUFDLE1BQWMsRUFBRSxFQUF3QixFQUFFLElBQVk7UUFDdEUsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDbEIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDcEUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQsWUFBWSxDQUFDLEdBQWU7UUFDMUIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUQsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLEtBQUssTUFBTSxFQUFFLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQzVCLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdEIsSUFBSSxLQUFLLEVBQUUsQ0FBQztvQkFDVixPQUFPLEtBQUssQ0FBQztnQkFDZixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osT0FBTztRQUNULENBQUM7UUFDRCxLQUFLLE1BQU0sRUFBRSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QixJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
|
package/dist/lib/errors.d.ts
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
import { TeggError } from
|
|
2
|
-
|
|
3
|
-
//#region src/lib/errors.d.ts
|
|
1
|
+
import { TeggError } from '@eggjs/tegg-metadata';
|
|
4
2
|
/** 路由冲突错误 */
|
|
5
|
-
declare class RouterConflictError extends TeggError {
|
|
6
|
-
|
|
3
|
+
export declare class RouterConflictError extends TeggError {
|
|
4
|
+
constructor(msg: string);
|
|
7
5
|
}
|
|
8
|
-
//#endregion
|
|
9
|
-
export { RouterConflictError };
|
package/dist/lib/errors.js
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
import { TeggError } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
return ErrorCodes$1;
|
|
7
|
-
}(ErrorCodes || {});
|
|
1
|
+
import { TeggError } from '@eggjs/tegg-metadata';
|
|
2
|
+
var ErrorCodes;
|
|
3
|
+
(function (ErrorCodes) {
|
|
4
|
+
ErrorCodes["ROUTER_CONFLICT"] = "ROUTER_CONFLICT";
|
|
5
|
+
})(ErrorCodes || (ErrorCodes = {}));
|
|
8
6
|
/** 路由冲突错误 */
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
//#endregion
|
|
16
|
-
export { RouterConflictError };
|
|
7
|
+
export class RouterConflictError extends TeggError {
|
|
8
|
+
constructor(msg) {
|
|
9
|
+
super(msg, ErrorCodes.ROUTER_CONFLICT);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWpELElBQUssVUFFSjtBQUZELFdBQUssVUFBVTtJQUNiLGlEQUFtQyxDQUFBO0FBQ3JDLENBQUMsRUFGSSxVQUFVLEtBQVYsVUFBVSxRQUVkO0FBRUQsYUFBYTtBQUNiLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxTQUFTO0lBQ2hELFlBQVksR0FBVztRQUNyQixLQUFLLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN6QyxDQUFDO0NBQ0YifQ==
|
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
import { EggContext, HTTPControllerMeta, HTTPMethodMeta
|
|
2
|
-
|
|
3
|
-
//#region src/lib/impl/http/Acl.d.ts
|
|
4
|
-
declare function aclMiddlewareFactory(controllerMeta: HTTPControllerMeta, methodMeta: HTTPMethodMeta): (ctx: EggContext, next: Next) => Promise<void>;
|
|
5
|
-
//#endregion
|
|
6
|
-
export { aclMiddlewareFactory };
|
|
1
|
+
import { type Next, type EggContext, type HTTPControllerMeta, type HTTPMethodMeta } from '@eggjs/tegg';
|
|
2
|
+
export declare function aclMiddlewareFactory(controllerMeta: HTTPControllerMeta, methodMeta: HTTPMethodMeta): (ctx: EggContext, next: Next) => Promise<void>;
|