UNPKG

@eggjs/tegg-lifecycle

Version:

tegg lifecycle definition

88 lines 8.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LifecycleUtil = void 0; const core_decorator_1 = require("@eggjs/core-decorator"); class LifecycleUtil { constructor() { this.lifecycleSet = new Set(); this.objLifecycleSet = new Map(); } registerLifecycle(lifecycle) { this.lifecycleSet.add(lifecycle); } deleteLifecycle(lifecycle) { this.lifecycleSet.delete(lifecycle); } getLifecycleList() { return Array.from(this.lifecycleSet); } registerObjectLifecycle(obj, lifecycle) { if (!this.objLifecycleSet.has(obj.id)) { this.objLifecycleSet.set(obj.id, new Set()); } this.objLifecycleSet.get(obj.id).add(lifecycle); } deleteObjectLifecycle(obj, lifecycle) { var _a; (_a = this.objLifecycleSet.get(obj.id)) === null || _a === void 0 ? void 0 : _a.delete(lifecycle); } clearObjectLifecycle(obj) { this.objLifecycleSet.delete(obj.id); } getObjectLifecycleList(obj) { if (this.objLifecycleSet.has(obj.id)) { return Array.from(this.objLifecycleSet.get(obj.id)); } return []; } async objectPreCreate(ctx, obj) { const globalLifecycleList = this.getLifecycleList(); const objLifecycleList = this.getObjectLifecycleList(obj); await Promise.all(globalLifecycleList.map(lifecycle => LifecycleUtil.callPreCreate(lifecycle, ctx, obj))); await Promise.all(objLifecycleList.map(lifecycle => LifecycleUtil.callPreCreate(lifecycle, ctx, obj))); } async objectPostCreate(ctx, obj) { const lifecycleList = this.getLifecycleList(); const objLifecycleList = this.getObjectLifecycleList(obj); await Promise.all(lifecycleList.map(lifecycle => LifecycleUtil.callPostCreate(lifecycle, ctx, obj))); await Promise.all(objLifecycleList.map(lifecycle => LifecycleUtil.callPostCreate(lifecycle, ctx, obj))); } async objectPreDestroy(ctx, obj) { const lifecycleList = this.getLifecycleList(); const objLifecycleList = this.getObjectLifecycleList(obj); await Promise.all(lifecycleList.map(lifecycle => LifecycleUtil.callPreDestroy(lifecycle, ctx, obj))); await Promise.all(objLifecycleList.map(lifecycle => LifecycleUtil.callPreDestroy(lifecycle, ctx, obj))); } static async callPreCreate(lifecycle, ctx, obj) { if (!lifecycle || !lifecycle.preCreate) { return; } await lifecycle.preCreate(ctx, obj); } static async callPostCreate(lifecycle, ctx, obj) { if (!lifecycle || !lifecycle.postCreate) { return; } await lifecycle.postCreate(ctx, obj); } static async callPreDestroy(lifecycle, ctx, obj) { if (!lifecycle || !lifecycle.preDestroy) { return; } await lifecycle.preDestroy(ctx, obj); } static setLifecycleHook(method, hookName, clazz) { const LIFECYCLE_HOOK = Symbol.for(`EggPrototype#Lifecycle${hookName}`); core_decorator_1.MetadataUtil.defineMetaData(LIFECYCLE_HOOK, method, clazz); } getLifecycleHook(hookName, proto) { const LIFECYCLE_HOOK = Symbol.for(`EggPrototype#Lifecycle${hookName}`); return proto.getMetaData(LIFECYCLE_HOOK); } static getStaticLifecycleHook(hookName, clazz) { const LIFECYCLE_HOOK = Symbol.for(`EggPrototype#Lifecycle${hookName}`); return core_decorator_1.MetadataUtil.getMetaData(LIFECYCLE_HOOK, clazz); } } exports.LifecycleUtil = LifecycleUtil; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGlmeWN5Y2xlVXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MaWZ5Y3ljbGVVdGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDBEQUFxRDtBQVVyRCxNQUFhLGFBQWE7SUFBMUI7UUFFVSxpQkFBWSxHQUE2QixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ25ELG9CQUFlLEdBQTBDLElBQUksR0FBRyxFQUFFLENBQUM7SUE0RjdFLENBQUM7SUExRkMsaUJBQWlCLENBQUMsU0FBOEI7UUFDOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGVBQWUsQ0FBQyxTQUE4QjtRQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsdUJBQXVCLENBQUMsR0FBTSxFQUFFLFNBQThCO1FBQzVELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQscUJBQXFCLENBQUMsR0FBTSxFQUFFLFNBQThCOztRQUMxRCxNQUFBLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsMENBQUUsTUFBTSxDQUFDLFNB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