Files
stack/apps/gateway/src/reload/mosaic-plugin.interface.ts
Jason Woltje 24f5c0699a
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
feat(gateway): MosaicPlugin lifecycle + ReloadService + hot reload (P8-013) (#182)
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-16 03:00:56 +00:00

21 lines
587 B
TypeScript

export interface MosaicPlugin {
/** Called when the plugin is loaded/reloaded */
onLoad(): Promise<void>;
/** Called before the plugin is unloaded during reload */
onUnload(): Promise<void>;
/** Plugin identifier for registry */
readonly pluginName: string;
}
export function isMosaicPlugin(obj: unknown): obj is MosaicPlugin {
return (
typeof obj === 'object' &&
obj !== null &&
typeof (obj as MosaicPlugin).onLoad === 'function' &&
typeof (obj as MosaicPlugin).onUnload === 'function' &&
typeof (obj as MosaicPlugin).pluginName === 'string'
);
}