@kui-shell/core
Version:
An Electron-based shell for cloud-native development
23 lines (22 loc) • 1.32 kB
TypeScript
import { CommandRegistrar } from './command';
import { PrescanUsage } from '../plugins/prescan';
import { MetadataBearing } from '../models/entity';
import { BadgeRegistration } from '../webapp/views/registrar/badges';
import { ModeRegistration } from '../webapp/views/registrar/modes';
import { SessionInitializer } from '../session/registrar';
export type KuiPlugin = void | Promise<void>;
export type PluginRegistration = (commandTree: CommandRegistrar, options?: {
usage: PrescanUsage;
}) => KuiPlugin;
export interface PreloadRegistrar extends CommandRegistrar {
/** sidecar modes */
registerMode<Resource extends MetadataBearing>(registration: ModeRegistration<Resource>): void;
registerModes<Resource extends MetadataBearing>(...registrations: ModeRegistration<Resource>[]): void;
/** sidecar badges */
registerBadge<Resource extends MetadataBearing>(registration: BadgeRegistration<Resource>): void;
registerBadges<Resource extends MetadataBearing>(...registrations: BadgeRegistration<Resource>[]): void;
/** session initializers */
registerSessionInitializer(init: SessionInitializer): void;
}
export type PreloadRegistration = (registrar: PreloadRegistrar) => Promise<void | void[]>;
export type CapabilityRegistration = (registrar: PreloadRegistrar) => void | Promise<void>;