UNPKG

@glimmer/interfaces

Version:

Common interfaces shared among all @glimmer/\* projects

49 lines (40 loc) 1.57 kB
import type { Arguments } from '../runtime.js'; import type { Capabilities } from './capabilities.js'; export interface ComponentCapabilitiesVersions { '3.4': { asyncLifecycleCallbacks?: boolean; destructor?: boolean; }; '3.13': { asyncLifecycleCallbacks?: boolean; destructor?: boolean; updateHook?: boolean; }; } export interface ComponentCapabilities extends Capabilities { asyncLifeCycleCallbacks: boolean; destructor: boolean; updateHook: boolean; } export interface ComponentManager<ComponentStateBucket> { capabilities: ComponentCapabilities; createComponent(factory: object, args: Arguments): ComponentStateBucket; getContext(instance: ComponentStateBucket): unknown; } export interface ComponentManagerWithAsyncLifeCycleCallbacks<ComponentStateBucket> extends ComponentManager<ComponentStateBucket> { didCreateComponent(instance: ComponentStateBucket): void; } export interface ComponentManagerWithUpdateHook<ComponentStateBucket> extends ComponentManager<ComponentStateBucket> { updateComponent(instance: ComponentStateBucket, args: Arguments): void; } export interface ComponentManagerWithAsyncUpdateHook<ComponentStateBucket> extends ComponentManagerWithAsyncLifeCycleCallbacks<ComponentStateBucket>, ComponentManagerWithUpdateHook<ComponentStateBucket> { didUpdateComponent(instance: ComponentStateBucket): void; } export interface ComponentManagerWithDestructors<ComponentStateBucket> extends ComponentManager<ComponentStateBucket> { destroyComponent(instance: ComponentStateBucket): void; }