UNPKG

@eggjs/tegg-dynamic-inject-runtime

Version:
55 lines 4.88 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); 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; return c > 3 && r && Object.defineProperty(target, key, r), r; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.EggObjectFactory = void 0; const tegg_types_1 = require("@eggjs/tegg-types"); const core_decorator_1 = require("@eggjs/core-decorator"); const tegg_dynamic_inject_1 = require("@eggjs/tegg-dynamic-inject"); const EggObjectFactoryPrototype_1 = require("./EggObjectFactoryPrototype"); let EggObjectFactory = class EggObjectFactory { async getEggObject(abstractClazz, qualifierValue) { const implClazz = tegg_dynamic_inject_1.QualifierImplUtil.getQualifierImp(abstractClazz, qualifierValue); if (!implClazz) { throw new Error(`has no impl for ${abstractClazz.name} with qualifier ${qualifierValue}`); } const protoObj = core_decorator_1.PrototypeUtil.getClazzProto(implClazz); if (!protoObj) { throw new Error(`can not get proto for clazz ${implClazz.name}`); } const eggObject = await this.eggContainerFactory.getOrCreateEggObject(protoObj, protoObj.name); return eggObject.obj; } async getEggObjects(abstractClazz) { const implClazzMap = tegg_dynamic_inject_1.QualifierImplUtil.getQualifierImpMap(abstractClazz); const getEggObject = this.getEggObject.bind(this); const qualifierValues = Array.from(implClazzMap.keys()); return { [Symbol.asyncIterator]() { return { key: 0, async next() { if (this.key === qualifierValues.length) { return { done: true }; } const value = await getEggObject(abstractClazz, qualifierValues[this.key++]); return { value, done: false }; }, }; }, }; } }; exports.EggObjectFactory = EggObjectFactory; exports.EggObjectFactory = EggObjectFactory = __decorate([ (0, core_decorator_1.SingletonProto)({ protoImplType: EggObjectFactoryPrototype_1.EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE, name: 'eggObjectFactory', accessLevel: tegg_types_1.AccessLevel.PUBLIC, }) ], EggObjectFactory); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0RmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9FZ2dPYmplY3RGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLGtEQUFnRDtBQU9oRCwwREFBc0U7QUFDdEUsb0VBQStEO0FBRS9ELDJFQUFrRjtBQU8zRSxJQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFnQjtJQUczQixLQUFLLENBQUMsWUFBWSxDQUFtQixhQUFrQyxFQUFFLGNBQThCO1FBQ3JHLE1BQU0sU0FBUyxHQUFHLHVDQUFpQixDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsYUFBYSxDQUFDLElBQUksbUJBQW1CLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDNUYsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFRLDhCQUFhLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFDRCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9GLE9BQU8sU0FBUyxDQUFDLEdBQVEsQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBbUIsYUFBa0M7UUFDdEUsTUFBTSxZQUFZLEdBQUcsdUNBQWlCLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDekUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUV4RCxPQUFPO1lBQ0wsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO2dCQUNwQixPQUFPO29CQUNMLEdBQUcsRUFBRSxDQUFDO29CQUNOLEtBQUssQ0FBQyxJQUFJO3dCQUNSLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUM7NEJBQ3hDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUF1QixDQUFDO3dCQUM3QyxDQUFDO3dCQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sWUFBWSxDQUFDLGFBQWEsRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFDN0UsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUF1QixDQUFDO29CQUNyRCxDQUFDO2lCQUNGLENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFBO0FBckNZLDRDQUFnQjsyQkFBaEIsZ0JBQWdCO0lBTDVCLElBQUEsK0JBQWMsRUFBQztRQUNkLGFBQWEsRUFBRSwrREFBbUM7UUFDbEQsSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixXQUFXLEVBQUUsd0JBQVcsQ0FBQyxNQUFNO0tBQ2hDLENBQUM7R0FDVyxnQkFBZ0IsQ0FxQzVCIn0=