Home Reference Source

src/plugins/BasePlugin.js

/**
 * 基础插件类, 实现了默认的钩子接口, 继承此类实现自定义的生命周期钩子
 *
 * @implements {ILifeCircleHook}
 */
export default class BasePlugin {
    /**
     * @abstract
     */
    get name() {
        throw new Error('need to be implement');
    }

    /**
     * @see {@link ILifeCircleHook#onContainerInit}
     */
    onContainerInit(ioc, iocConfig) {
        return iocConfig;
    }

    /**
     * @see {@link ILifeCircleHook#onAddComponent}
     */
    onAddComponent(ioc, componentId, componentConfig) {
        return componentConfig;
    }

    /**
     * @see {@link ILifeCircleHook#onGetComponent}
     */
    onGetComponent(ioc, componentId, componentConfig) {
        return componentConfig;
    }

    /**
     * @see {@link ILifeCircleHook#beforeCreateInstance}
     */
    beforeCreateInstance(ioc, componentId, instance) {
        return Promise.resolve(instance);
    }

    /**
     * @see {@link ILifeCircleHook#afterCreateInstance}
     */
    afterCreateInstance(ioc, componentId, instance) {
        return Promise.resolve(instance);
    }

    /**
     * @see {@link ILifeCircleHook#onContainerDispose}
     */
    onContainerDispose(ioc) {}
}