Phials developer documentation
User guide
AI Notice: Most documentation right now was auto-generated by an LLM. Handwritten documentation will be implemented over time on the road to 1.0

PhialsPlugin

A plugin is a container that can provide one or more providers. Each provider type has its own interface and registration mechanism.

Signature

interface PhialsPlugin {
    id: string;
    name: string;
    version: string;
    icons?: string[];
    settings?: PluginSettingsSchema;
    database?: PluginDatabaseSchema;
    onActivate?: (api: PluginAPI) => void | Promise<void>;
    onDeactivate?: () => void | Promise<void>;
    onBeforeReload?: () => unknown | Promise<unknown>;
    onAfterReload?: (state: unknown) => void | Promise<void>;
    providers: PluginProvider[];
}

Members

NameTypeRequiredDescription
idstringyesUnique plugin identifier (e.g., ‘phials.terminal’, ‘vendor.preview-pdf’)
namestringyesHuman-readable name
versionstringyesPlugin version (semver)
iconsstring[]noIcons used by this plugin (for preloading)
settingsPluginSettingsSchemanoSettings schema contributed by this plugin
databasePluginDatabaseSchemanoDatabase schema for plugin-owned SQL tables
onActivate(api: PluginAPI) => void | Promise<void>noCalled when the plugin is activated
onDeactivate() => void | Promise<void>noCalled when the plugin is deactivated
onBeforeReload() => unknown | Promise<unknown>noCalled before the plugin is reloaded. Return any state that should be preserved across the reload.
onAfterReload(state: unknown) => void | Promise<void>noCalled after the plugin is reloaded. Receives the state that was returned from onBeforeReload.
providersPluginProvider[]yesProviders contributed by this plugin