@eggjs/tegg-dynamic-inject-runtime 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 CHANGED
@@ -1,4 +1,16 @@
1
- # `dyniamic-inject-runtime`
1
+ # `@eggjs/tegg-dynamic-inject-runtime`
2
+
3
+ [![NPM version][npm-image]][npm-url]
4
+ [![Known Vulnerabilities][snyk-image]][snyk-url]
5
+ [![npm download][download-image]][download-url]
6
+ [![Node.js Version](https://img.shields.io/node/v/@eggjs/tegg-dynamic-inject-runtime.svg?style=flat)](https://nodejs.org/en/download/)
7
+
8
+ [npm-image]: https://img.shields.io/npm/v/@eggjs/tegg-dynamic-inject-runtime.svg?style=flat-square
9
+ [npm-url]: https://npmjs.org/package/@eggjs/tegg-dynamic-inject-runtime
10
+ [snyk-image]: https://snyk.io/test/npm/@eggjs/tegg-dynamic-inject-runtime/badge.svg?style=flat-square
11
+ [snyk-url]: https://snyk.io/test/npm/@eggjs/tegg-dynamic-inject-runtime
12
+ [download-image]: https://img.shields.io/npm/dm/@eggjs/tegg-dynamic-inject-runtime.svg?style=flat-square
13
+ [download-url]: https://npmjs.org/package/@eggjs/tegg-dynamic-inject-runtime
2
14
 
3
15
  ## Usage
4
16
 
@@ -0,0 +1,16 @@
1
+ import { EggAbstractClazz, EggObjectFactory, QualifierValue } from "@eggjs/tegg-types";
2
+ import { EggContainerFactory } from "@eggjs/tegg-runtime";
3
+
4
+ //#region src/EggObjectFactory.d.ts
5
+ declare class EggObjectFactory$2 implements EggObjectFactory {
6
+ eggContainerFactory: typeof EggContainerFactory;
7
+ getEggObject<T extends object>(abstractClazz: EggAbstractClazz<T>, qualifierValue: QualifierValue): Promise<T>;
8
+ getEggObjects<T extends object>(abstractClazz: EggAbstractClazz<T>): Promise<{
9
+ [Symbol.asyncIterator](): {
10
+ key: number;
11
+ next(): Promise<IteratorResult<T, any>>;
12
+ };
13
+ }>;
14
+ }
15
+ //#endregion
16
+ export { EggObjectFactory$2 as EggObjectFactory };
@@ -0,0 +1,42 @@
1
+ import { EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE } from "./EggObjectFactoryPrototype.js";
2
+ import { __decorate } from "./_virtual/_@oxc-project_runtime@0.93.0/helpers/decorate.js";
3
+ import { AccessLevel } from "@eggjs/tegg-types";
4
+ import { PrototypeUtil, SingletonProto } from "@eggjs/core-decorator";
5
+ import { QualifierImplUtil } from "@eggjs/tegg-dynamic-inject";
6
+
7
+ //#region src/EggObjectFactory.ts
8
+ let EggObjectFactory$1 = class EggObjectFactory$2 {
9
+ eggContainerFactory;
10
+ async getEggObject(abstractClazz, qualifierValue) {
11
+ const implClazz = QualifierImplUtil.getQualifierImp(abstractClazz, qualifierValue);
12
+ if (!implClazz) throw new Error(`has no impl for ${abstractClazz.name} with qualifier ${qualifierValue}`);
13
+ const protoObj = PrototypeUtil.getClazzProto(implClazz);
14
+ if (!protoObj) throw new Error(`can not get proto for clazz ${implClazz.name}`);
15
+ return (await this.eggContainerFactory.getOrCreateEggObject(protoObj, protoObj.name)).obj;
16
+ }
17
+ async getEggObjects(abstractClazz) {
18
+ const implClazzMap = QualifierImplUtil.getQualifierImpMap(abstractClazz);
19
+ const getEggObject = this.getEggObject.bind(this);
20
+ const qualifierValues = Array.from(implClazzMap.keys());
21
+ return { [Symbol.asyncIterator]() {
22
+ return {
23
+ key: 0,
24
+ async next() {
25
+ if (this.key === qualifierValues.length) return { done: true };
26
+ return {
27
+ value: await getEggObject(abstractClazz, qualifierValues[this.key++]),
28
+ done: false
29
+ };
30
+ }
31
+ };
32
+ } };
33
+ }
34
+ };
35
+ EggObjectFactory$1 = __decorate([SingletonProto({
36
+ protoImplType: EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE,
37
+ name: "eggObjectFactory",
38
+ accessLevel: AccessLevel.PUBLIC
39
+ })], EggObjectFactory$1);
40
+
41
+ //#endregion
42
+ export { EggObjectFactory$1 as EggObjectFactory };
@@ -0,0 +1,20 @@
1
+ import { EggObjectFactory as EggObjectFactory$1 } from "./EggObjectFactory.js";
2
+ import { EggObjectFactoryPrototype } from "./EggObjectFactoryPrototype.js";
3
+ import { EggObject, EggObjectName, EggPrototype, EggRuntimeContext } from "@eggjs/tegg-types";
4
+
5
+ //#region src/EggObjectFactoryObject.d.ts
6
+ declare const OBJ: unique symbol;
7
+ declare class EggObjectFactoryObject implements EggObject {
8
+ readonly proto: EggObjectFactoryPrototype;
9
+ readonly name: EggObjectName;
10
+ readonly ctx?: EggRuntimeContext;
11
+ readonly id: string;
12
+ private [OBJ];
13
+ constructor(name: EggObjectName, proto: EggObjectFactoryPrototype);
14
+ get obj(): EggObjectFactory$1;
15
+ static createObject(name: EggObjectName, proto: EggPrototype): Promise<EggObjectFactoryObject>;
16
+ readonly isReady: true;
17
+ injectProperty(): any;
18
+ }
19
+ //#endregion
20
+ export { EggObjectFactoryObject };
@@ -0,0 +1,35 @@
1
+ import { EggObjectFactoryPrototype } from "./EggObjectFactoryPrototype.js";
2
+ import "./EggObjectFactory.js";
3
+ import { IdenticalUtil } from "@eggjs/tegg-lifecycle";
4
+ import { EggContainerFactory, EggObjectFactory } from "@eggjs/tegg-runtime";
5
+
6
+ //#region src/EggObjectFactoryObject.ts
7
+ const OBJ = Symbol("EggObjectFactoryObject#obj");
8
+ var EggObjectFactoryObject = class EggObjectFactoryObject {
9
+ proto;
10
+ name;
11
+ ctx;
12
+ id;
13
+ [OBJ];
14
+ constructor(name, proto) {
15
+ this.proto = proto;
16
+ this.name = name;
17
+ this.id = IdenticalUtil.createObjectId(this.proto.id, this.ctx?.id);
18
+ }
19
+ get obj() {
20
+ if (!this[OBJ]) {
21
+ this[OBJ] = this.proto.constructEggObject();
22
+ this[OBJ].eggContainerFactory = EggContainerFactory;
23
+ }
24
+ return this[OBJ];
25
+ }
26
+ static async createObject(name, proto) {
27
+ return new EggObjectFactoryObject(name, proto);
28
+ }
29
+ isReady;
30
+ injectProperty() {}
31
+ };
32
+ EggObjectFactory.registerEggObjectCreateMethod(EggObjectFactoryPrototype, EggObjectFactoryObject.createObject);
33
+
34
+ //#endregion
35
+ export { EggObjectFactoryObject };
@@ -0,0 +1,24 @@
1
+ import { AccessLevel, EggObjectFactory, EggProtoImplClass, EggPrototype, EggPrototypeInfo, EggPrototypeLifecycleContext, EggPrototypeName, Id, InjectObjectProto, LoadUnit, MetaDataKey, ObjectInitTypeLike, QualifierInfo, QualifierValue } from "@eggjs/tegg-types";
2
+
3
+ //#region src/EggObjectFactoryPrototype.d.ts
4
+ declare const EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE = "EGG_OBJECT_FACTORY_PROTOTYPE";
5
+ declare class EggObjectFactoryPrototype implements EggPrototype {
6
+ [key: symbol]: PropertyDescriptor;
7
+ readonly clazz: EggProtoImplClass<EggObjectFactory>;
8
+ readonly accessLevel: AccessLevel;
9
+ readonly id: Id;
10
+ readonly initType: ObjectInitTypeLike;
11
+ readonly injectObjects: InjectObjectProto[];
12
+ readonly loadUnitId: string;
13
+ readonly name: EggPrototypeName;
14
+ readonly qualifiers: QualifierInfo[];
15
+ constructor(clazz: EggProtoImplClass<EggObjectFactory>, loadUnit: LoadUnit, prototypeInfo: EggPrototypeInfo);
16
+ constructEggObject(): EggObjectFactory;
17
+ getMetaData<T>(metadataKey: MetaDataKey): T | undefined;
18
+ verifyQualifier(qualifier: QualifierInfo): boolean;
19
+ getQualifier(attribute: string): QualifierValue | undefined;
20
+ verifyQualifiers(qualifiers: QualifierInfo[]): boolean;
21
+ static create(ctx: EggPrototypeLifecycleContext): EggObjectFactoryPrototype;
22
+ }
23
+ //#endregion
24
+ export { EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE, EggObjectFactoryPrototype };
@@ -0,0 +1,50 @@
1
+ import { MetadataUtil, QualifierUtil } from "@eggjs/core-decorator";
2
+ import { EggPrototypeCreatorFactory } from "@eggjs/tegg-metadata";
3
+ import { NameUtil } from "@eggjs/tegg-common-util";
4
+ import { IdenticalUtil } from "@eggjs/tegg-lifecycle";
5
+
6
+ //#region src/EggObjectFactoryPrototype.ts
7
+ const EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE = "EGG_OBJECT_FACTORY_PROTOTYPE";
8
+ var EggObjectFactoryPrototype = class EggObjectFactoryPrototype {
9
+ clazz;
10
+ accessLevel;
11
+ id;
12
+ initType;
13
+ injectObjects;
14
+ loadUnitId;
15
+ name;
16
+ qualifiers;
17
+ constructor(clazz, loadUnit, prototypeInfo) {
18
+ this.clazz = clazz;
19
+ this.qualifiers = QualifierUtil.mergeQualifiers(QualifierUtil.getProtoQualifiers(clazz), prototypeInfo.qualifiers ?? []);
20
+ this.id = IdenticalUtil.createProtoId(loadUnit.id, NameUtil.getClassName(this.clazz));
21
+ this.initType = prototypeInfo.initType;
22
+ this.accessLevel = prototypeInfo.accessLevel;
23
+ this.loadUnitId = loadUnit.id;
24
+ this.name = prototypeInfo.name || NameUtil.getClassName(this.clazz);
25
+ this.injectObjects = [];
26
+ }
27
+ constructEggObject() {
28
+ return Reflect.construct(this.clazz, []);
29
+ }
30
+ getMetaData(metadataKey) {
31
+ return MetadataUtil.getMetaData(metadataKey, this.clazz);
32
+ }
33
+ verifyQualifier(qualifier) {
34
+ return this.qualifiers.find((t) => t.attribute === qualifier.attribute)?.value === qualifier.value;
35
+ }
36
+ getQualifier(attribute) {
37
+ return this.qualifiers.find((t) => t.attribute === attribute)?.value;
38
+ }
39
+ verifyQualifiers(qualifiers) {
40
+ for (const qualifier of qualifiers) if (!this.verifyQualifier(qualifier)) return false;
41
+ return true;
42
+ }
43
+ static create(ctx) {
44
+ return new EggObjectFactoryPrototype(ctx.clazz, ctx.loadUnit, ctx.prototypeInfo);
45
+ }
46
+ };
47
+ EggPrototypeCreatorFactory.registerPrototypeCreator(EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE, EggObjectFactoryPrototype.create);
48
+
49
+ //#endregion
50
+ export { EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE, EggObjectFactoryPrototype };
@@ -0,0 +1,10 @@
1
+ //#region \0@oxc-project+runtime@0.93.0/helpers/decorate.js
2
+ function __decorate(decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ }
8
+
9
+ //#endregion
10
+ export { __decorate };
@@ -0,0 +1,4 @@
1
+ import { EggObjectFactory } from "./EggObjectFactory.js";
2
+ import { EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE, EggObjectFactoryPrototype } from "./EggObjectFactoryPrototype.js";
3
+ import { EggObjectFactoryObject } from "./EggObjectFactoryObject.js";
4
+ export { EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE, EggObjectFactory, EggObjectFactoryObject, EggObjectFactoryPrototype };
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ import { EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE, EggObjectFactoryPrototype } from "./EggObjectFactoryPrototype.js";
2
+ import { EggObjectFactory } from "./EggObjectFactory.js";
3
+ import { EggObjectFactoryObject } from "./EggObjectFactoryObject.js";
4
+
5
+ export { EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE, EggObjectFactory, EggObjectFactoryObject, EggObjectFactoryPrototype };
package/package.json CHANGED
@@ -1,20 +1,17 @@
1
1
  {
2
2
  "name": "@eggjs/tegg-dynamic-inject-runtime",
3
- "version": "4.0.0-beta.3",
3
+ "version": "4.0.0-beta.5",
4
4
  "description": "tegg dynamic inject",
5
5
  "eggModule": {
6
6
  "name": "teggDyniamicInjectRuntime"
7
7
  },
8
8
  "type": "module",
9
9
  "exports": {
10
- ".": {
11
- "types": "./src/index.d.ts",
12
- "default": "./src/index.js"
13
- }
10
+ ".": "./dist/index.js",
11
+ "./package.json": "./package.json"
14
12
  },
15
13
  "files": [
16
- "src/**/*.js",
17
- "src/**/*.d.ts"
14
+ "dist"
18
15
  ],
19
16
  "keywords": [
20
17
  "egg",
@@ -22,15 +19,9 @@
22
19
  "runtime",
23
20
  "tegg"
24
21
  ],
25
- "scripts": {
26
- "clean": "tsc -b --clean",
27
- "tsc": "npm run clean && tsc -p ./tsconfig.json",
28
- "tsc:pub": "npm run tsc",
29
- "prepublishOnly": "npm run tsc"
30
- },
31
22
  "author": "killagu <killa123@126.com>",
32
23
  "license": "MIT",
33
- "homepage": "https://github.com/eggjs/tegg",
24
+ "homepage": "https://github.com/eggjs/tegg/tree/next/core/dynamic-inject-runtime",
34
25
  "bugs": {
35
26
  "url": "https://github.com/eggjs/tegg/issues"
36
27
  },
@@ -40,26 +31,34 @@
40
31
  "directory": "core/dynamic-inject"
41
32
  },
42
33
  "engines": {
43
- "node": ">=20.0.0"
34
+ "node": ">=22.18.0"
44
35
  },
45
36
  "publishConfig": {
46
37
  "access": "public"
47
38
  },
48
39
  "dependencies": {
49
- "@eggjs/core-decorator": "^4.0.0-beta.3",
50
- "@eggjs/tegg-common-util": "^4.0.0-beta.3",
51
- "@eggjs/tegg-dynamic-inject": "^4.0.0-beta.3",
52
- "@eggjs/tegg-lifecycle": "^4.0.0-beta.3",
53
- "@eggjs/tegg-metadata": "^4.0.0-beta.3",
54
- "@eggjs/tegg-runtime": "^4.0.0-beta.3",
55
- "@eggjs/tegg-types": "^4.0.0-beta.3"
40
+ "@eggjs/core-decorator": "4.0.0-beta.5",
41
+ "@eggjs/tegg-dynamic-inject": "4.0.0-beta.5",
42
+ "@eggjs/tegg-common-util": "4.0.0-beta.5",
43
+ "@eggjs/tegg-lifecycle": "4.0.0-beta.5",
44
+ "@eggjs/tegg-metadata": "4.0.0-beta.5",
45
+ "@eggjs/tegg-runtime": "4.0.0-beta.5",
46
+ "@eggjs/tegg-types": "4.0.0-beta.5"
56
47
  },
57
48
  "devDependencies": {
58
- "@eggjs/module-test-util": "^4.0.0-beta.3",
59
- "@eggjs/tegg-loader": "^4.0.0-beta.3",
60
- "@types/node": "22",
61
- "ts-node": "10",
62
- "typescript": "5"
49
+ "@types/node": "^22.10.5",
50
+ "typescript": "^5.9.3",
51
+ "tsdown": "^0.15.6",
52
+ "unplugin-unused": "^0.5.3",
53
+ "@eggjs/module-test-util": "4.0.0-beta.4",
54
+ "@eggjs/tegg-loader": "4.0.0-beta.5"
63
55
  },
64
- "gitHead": "6b84b0275fd728a4973746a5341236fe0481a33e"
65
- }
56
+ "main": "./dist/index.js",
57
+ "module": "./dist/index.js",
58
+ "types": "./dist/index.d.ts",
59
+ "scripts": {
60
+ "clean": "rimraf dist",
61
+ "build": "tsdown",
62
+ "typecheck": "tsc --noEmit"
63
+ }
64
+ }
@@ -1,12 +0,0 @@
1
- import type { QualifierValue, EggAbstractClazz, EggObjectFactory as IEggObjectFactory } from '@eggjs/tegg-types';
2
- import type { EggContainerFactory } from '@eggjs/tegg-runtime';
3
- export declare class EggObjectFactory implements IEggObjectFactory {
4
- eggContainerFactory: typeof EggContainerFactory;
5
- getEggObject<T extends object>(abstractClazz: EggAbstractClazz<T>, qualifierValue: QualifierValue): Promise<T>;
6
- getEggObjects<T extends object>(abstractClazz: EggAbstractClazz<T>): Promise<{
7
- [Symbol.asyncIterator](): {
8
- key: number;
9
- next(): Promise<IteratorResult<T, any>>;
10
- };
11
- }>;
12
- }
@@ -1,53 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { AccessLevel } from '@eggjs/tegg-types';
8
- import { PrototypeUtil, SingletonProto } from '@eggjs/core-decorator';
9
- import { QualifierImplUtil } from '@eggjs/tegg-dynamic-inject';
10
- import { EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE } from './EggObjectFactoryPrototype.js';
11
- let EggObjectFactory = class EggObjectFactory {
12
- eggContainerFactory;
13
- async getEggObject(abstractClazz, qualifierValue) {
14
- const implClazz = QualifierImplUtil.getQualifierImp(abstractClazz, qualifierValue);
15
- if (!implClazz) {
16
- throw new Error(`has no impl for ${abstractClazz.name} with qualifier ${qualifierValue}`);
17
- }
18
- const protoObj = PrototypeUtil.getClazzProto(implClazz);
19
- if (!protoObj) {
20
- throw new Error(`can not get proto for clazz ${implClazz.name}`);
21
- }
22
- const eggObject = await this.eggContainerFactory.getOrCreateEggObject(protoObj, protoObj.name);
23
- return eggObject.obj;
24
- }
25
- async getEggObjects(abstractClazz) {
26
- const implClazzMap = QualifierImplUtil.getQualifierImpMap(abstractClazz);
27
- const getEggObject = this.getEggObject.bind(this);
28
- const qualifierValues = Array.from(implClazzMap.keys());
29
- return {
30
- [Symbol.asyncIterator]() {
31
- return {
32
- key: 0,
33
- async next() {
34
- if (this.key === qualifierValues.length) {
35
- return { done: true };
36
- }
37
- const value = await getEggObject(abstractClazz, qualifierValues[this.key++]);
38
- return { value, done: false };
39
- },
40
- };
41
- },
42
- };
43
- }
44
- };
45
- EggObjectFactory = __decorate([
46
- SingletonProto({
47
- protoImplType: EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE,
48
- name: 'eggObjectFactory',
49
- accessLevel: AccessLevel.PUBLIC,
50
- })
51
- ], EggObjectFactory);
52
- export { EggObjectFactory };
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0RmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVnZ09iamVjdEZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBT2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFPOUUsSUFBTSxnQkFBZ0IsR0FBdEIsTUFBTSxnQkFBZ0I7SUFDM0IsbUJBQW1CLENBQTZCO0lBRWhELEtBQUssQ0FBQyxZQUFZLENBQW1CLGFBQWtDLEVBQUUsY0FBOEI7UUFDckcsTUFBTSxTQUFTLEdBQUcsaUJBQWlCLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixhQUFhLENBQUMsSUFBSSxtQkFBbUIsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUM1RixDQUFDO1FBQ0QsTUFBTSxRQUFRLEdBQVEsYUFBYSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBQ0QsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvRixPQUFPLFNBQVMsQ0FBQyxHQUFRLENBQUM7SUFDNUIsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQW1CLGFBQWtDO1FBQ3RFLE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFFeEQsT0FBTztZQUNMLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztnQkFDcEIsT0FBTztvQkFDTCxHQUFHLEVBQUUsQ0FBQztvQkFDTixLQUFLLENBQUMsSUFBSTt3QkFDUixJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDOzRCQUN4QyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBdUIsQ0FBQzt3QkFDN0MsQ0FBQzt3QkFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLFlBQVksQ0FBQyxhQUFhLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7d0JBQzdFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBdUIsQ0FBQztvQkFDckQsQ0FBQztpQkFDRixDQUFDO1lBQ0osQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQTtBQXJDWSxnQkFBZ0I7SUFMNUIsY0FBYyxDQUFDO1FBQ2QsYUFBYSxFQUFFLG1DQUFtQztRQUNsRCxJQUFJLEVBQUUsa0JBQWtCO1FBQ3hCLFdBQVcsRUFBRSxXQUFXLENBQUMsTUFBTTtLQUNoQyxDQUFDO0dBQ1csZ0JBQWdCLENBcUM1QiJ9
@@ -1,17 +0,0 @@
1
- import type { EggRuntimeContext, EggObject, EggObjectName, EggPrototype } from '@eggjs/tegg-types';
2
- import { EggObjectFactory } from './EggObjectFactory.js';
3
- import { EggObjectFactoryPrototype } from './EggObjectFactoryPrototype.js';
4
- declare const OBJ: unique symbol;
5
- export declare class EggObjectFactoryObject implements EggObject {
6
- readonly proto: EggObjectFactoryPrototype;
7
- readonly name: EggObjectName;
8
- readonly ctx?: EggRuntimeContext;
9
- readonly id: string;
10
- private [OBJ];
11
- constructor(name: EggObjectName, proto: EggObjectFactoryPrototype);
12
- get obj(): EggObjectFactory;
13
- static createObject(name: EggObjectName, proto: EggPrototype): Promise<EggObjectFactoryObject>;
14
- readonly isReady: true;
15
- injectProperty(): any;
16
- }
17
- export {};
@@ -1,32 +0,0 @@
1
- import { EggContainerFactory, EggObjectFactory as TEggObjectFactory, } from '@eggjs/tegg-runtime';
2
- import { IdenticalUtil } from '@eggjs/tegg-lifecycle';
3
- import { EggObjectFactoryPrototype } from './EggObjectFactoryPrototype.js';
4
- const OBJ = Symbol('EggObjectFactoryObject#obj');
5
- export class EggObjectFactoryObject {
6
- proto;
7
- name;
8
- ctx;
9
- id;
10
- [OBJ];
11
- constructor(name, proto) {
12
- this.proto = proto;
13
- this.name = name;
14
- this.id = IdenticalUtil.createObjectId(this.proto.id, this.ctx?.id);
15
- }
16
- get obj() {
17
- if (!this[OBJ]) {
18
- this[OBJ] = this.proto.constructEggObject();
19
- this[OBJ].eggContainerFactory = EggContainerFactory;
20
- }
21
- return this[OBJ];
22
- }
23
- static async createObject(name, proto) {
24
- return new EggObjectFactoryObject(name, proto);
25
- }
26
- isReady;
27
- injectProperty() {
28
- return;
29
- }
30
- }
31
- TEggObjectFactory.registerEggObjectCreateMethod(EggObjectFactoryPrototype, EggObjectFactoryObject.createObject);
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0RmFjdG9yeU9iamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVnZ09iamVjdEZhY3RvcnlPYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixnQkFBZ0IsSUFBSSxpQkFBaUIsR0FDdEMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFRdEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFM0UsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFFakQsTUFBTSxPQUFPLHNCQUFzQjtJQUN4QixLQUFLLENBQTRCO0lBQ2pDLElBQUksQ0FBZ0I7SUFDcEIsR0FBRyxDQUFxQjtJQUN4QixFQUFFLENBQVM7SUFDWixDQUFDLEdBQUcsQ0FBQyxDQUFtQjtJQUVoQyxZQUFZLElBQW1CLEVBQUUsS0FBZ0M7UUFDL0QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLEVBQUUsR0FBRyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELElBQUksR0FBRztRQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFzQixDQUFDO1lBQ2hFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQW1CLEVBQUUsS0FBbUI7UUFDaEUsT0FBTyxJQUFJLHNCQUFzQixDQUFDLElBQUksRUFBRSxLQUFrQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVRLE9BQU8sQ0FBTztJQUV2QixjQUFjO1FBQ1osT0FBTztJQUNULENBQUM7Q0FDRjtBQUVELGlCQUFpQixDQUFDLDZCQUE2QixDQUFDLHlCQUF5QixFQUFFLHNCQUFzQixDQUFDLFlBQVksQ0FBQyxDQUFDIn0=
@@ -1,20 +0,0 @@
1
- import type { AccessLevel, EggObjectFactory, EggPrototype, EggProtoImplClass, EggPrototypeInfo, EggPrototypeLifecycleContext, EggPrototypeName, InjectObjectProto, LoadUnit, MetaDataKey, ObjectInitTypeLike, QualifierInfo, QualifierValue, Id } from '@eggjs/tegg-types';
2
- export declare const EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE = "EGG_OBJECT_FACTORY_PROTOTYPE";
3
- export declare class EggObjectFactoryPrototype implements EggPrototype {
4
- [key: symbol]: PropertyDescriptor;
5
- readonly clazz: EggProtoImplClass<EggObjectFactory>;
6
- readonly accessLevel: AccessLevel;
7
- readonly id: Id;
8
- readonly initType: ObjectInitTypeLike;
9
- readonly injectObjects: InjectObjectProto[];
10
- readonly loadUnitId: string;
11
- readonly name: EggPrototypeName;
12
- readonly qualifiers: QualifierInfo[];
13
- constructor(clazz: EggProtoImplClass<EggObjectFactory>, loadUnit: LoadUnit, prototypeInfo: EggPrototypeInfo);
14
- constructEggObject(): EggObjectFactory;
15
- getMetaData<T>(metadataKey: MetaDataKey): T | undefined;
16
- verifyQualifier(qualifier: QualifierInfo): boolean;
17
- getQualifier(attribute: string): QualifierValue | undefined;
18
- verifyQualifiers(qualifiers: QualifierInfo[]): boolean;
19
- static create(ctx: EggPrototypeLifecycleContext): EggObjectFactoryPrototype;
20
- }
@@ -1,51 +0,0 @@
1
- import { EggPrototypeCreatorFactory } from '@eggjs/tegg-metadata';
2
- import { MetadataUtil, QualifierUtil, } from '@eggjs/core-decorator';
3
- import { NameUtil } from '@eggjs/tegg-common-util';
4
- import { IdenticalUtil } from '@eggjs/tegg-lifecycle';
5
- export const EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE = 'EGG_OBJECT_FACTORY_PROTOTYPE';
6
- export class EggObjectFactoryPrototype {
7
- clazz;
8
- accessLevel;
9
- id;
10
- initType;
11
- injectObjects;
12
- loadUnitId;
13
- name;
14
- qualifiers;
15
- constructor(clazz, loadUnit, prototypeInfo) {
16
- this.clazz = clazz;
17
- this.qualifiers = QualifierUtil.mergeQualifiers(QualifierUtil.getProtoQualifiers(clazz), (prototypeInfo.qualifiers ?? []));
18
- this.id = IdenticalUtil.createProtoId(loadUnit.id, NameUtil.getClassName(this.clazz));
19
- this.initType = prototypeInfo.initType;
20
- this.accessLevel = prototypeInfo.accessLevel;
21
- this.loadUnitId = loadUnit.id;
22
- this.name = prototypeInfo.name || NameUtil.getClassName(this.clazz);
23
- this.injectObjects = [];
24
- }
25
- constructEggObject() {
26
- return Reflect.construct(this.clazz, []);
27
- }
28
- getMetaData(metadataKey) {
29
- return MetadataUtil.getMetaData(metadataKey, this.clazz);
30
- }
31
- verifyQualifier(qualifier) {
32
- const selfQualifiers = this.qualifiers.find(t => t.attribute === qualifier.attribute);
33
- return selfQualifiers?.value === qualifier.value;
34
- }
35
- getQualifier(attribute) {
36
- return this.qualifiers.find(t => t.attribute === attribute)?.value;
37
- }
38
- verifyQualifiers(qualifiers) {
39
- for (const qualifier of qualifiers) {
40
- if (!this.verifyQualifier(qualifier)) {
41
- return false;
42
- }
43
- }
44
- return true;
45
- }
46
- static create(ctx) {
47
- return new EggObjectFactoryPrototype(ctx.clazz, ctx.loadUnit, ctx.prototypeInfo);
48
- }
49
- }
50
- EggPrototypeCreatorFactory.registerPrototypeCreator(EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE, EggObjectFactoryPrototype.create);
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0RmFjdG9yeVByb3RvdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVnZ09iamVjdEZhY3RvcnlQcm90b3R5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEUsT0FBTyxFQUNMLFlBQVksRUFDWixhQUFhLEdBQ2QsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBa0J0RCxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRyw4QkFBOEIsQ0FBQztBQUVsRixNQUFNLE9BQU8seUJBQXlCO0lBRzNCLEtBQUssQ0FBc0M7SUFDM0MsV0FBVyxDQUFjO0lBQ3pCLEVBQUUsQ0FBSztJQUNQLFFBQVEsQ0FBcUI7SUFDN0IsYUFBYSxDQUFzQjtJQUNuQyxVQUFVLENBQVM7SUFDbkIsSUFBSSxDQUFtQjtJQUN2QixVQUFVLENBQWtCO0lBRXJDLFlBQVksS0FBMEMsRUFBRSxRQUFrQixFQUFFLGFBQStCO1FBQ3pHLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDLGVBQWUsQ0FDN0MsYUFBYSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUN2QyxDQUFDLGFBQWEsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQ2pDLENBQUM7UUFDRixJQUFJLENBQUMsRUFBRSxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQztRQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUM7UUFDN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxXQUFXLENBQUksV0FBd0I7UUFDckMsT0FBTyxZQUFZLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELGVBQWUsQ0FBQyxTQUF3QjtRQUN0QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RGLE9BQU8sY0FBYyxFQUFFLEtBQUssS0FBSyxTQUFTLENBQUMsS0FBSyxDQUFDO0lBQ25ELENBQUM7SUFFRCxZQUFZLENBQUMsU0FBaUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLEVBQUUsS0FBSyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUEyQjtRQUMxQyxLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQWlDO1FBQzdDLE9BQU8sSUFBSSx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsS0FBNEMsRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxSCxDQUFDO0NBQ0Y7QUFHRCwwQkFBMEIsQ0FBQyx3QkFBd0IsQ0FBQyxtQ0FBbUMsRUFBRSx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyJ9
package/src/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- export * from './EggObjectFactory.js';
2
- export * from './EggObjectFactoryObject.js';
3
- export * from './EggObjectFactoryPrototype.js';
package/src/index.js DELETED
@@ -1,4 +0,0 @@
1
- export * from './EggObjectFactory.js';
2
- export * from './EggObjectFactoryObject.js';
3
- export * from './EggObjectFactoryPrototype.js';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxnQ0FBZ0MsQ0FBQyJ9