@ayanaware/bento
Version:
Modular runtime framework designed to solve complex tasks
35 lines (34 loc) • 1.21 kB
TypeScript
import type { PluginAPI } from '../api/PluginAPI';
import type { Component } from './Component';
import type { EntityType } from './Entity';
import { Entity } from './Entity';
export interface Plugin extends Entity {
type?: EntityType.PLUGIN;
api?: PluginAPI;
/** Lifecycle: Called right before Component is fully loaded */
onLoad?(api?: PluginAPI): Promise<unknown>;
/**
* Plugin Lifecycle Hook, Plugin unload
*/
onUnload?(): Promise<unknown>;
/**
* Component Lifecycle Hook, Called prior to component onLoad
* @param component Component
*/
onPreComponentLoad?(component: Component): Promise<unknown>;
/**
* Component Lifecycle Hook, Called prior to the component onUnload
* @param component Component
*/
onPreComponentUnload?(component: Component): Promise<unknown>;
/**
* Component Lifecycle Hook, Called after component onLoad
* @param component Component
*/
onPostComponentLoad?(component: Component): Promise<unknown>;
/**
* Component Lifecycle Hook, Called after component onUnload
* @param component Component
*/
onPostComponentUnload?(component: Component): Promise<unknown>;
}