Interface PluginDefinition<Config, Exports>

interface PluginDefinition<Config, Exports> {
    onInit?(ctx): void | Exports | Promise<Exports>;
    onStart?(ctx): void | Promise<void>;
    onEvent?<T>(event, ctx): void;
    onConfigChange?(newConfig, ctx): void;
    onDestroy?(ctx): void | Promise<void>;
    meta: PluginMeta;
    defaultConfig?: Config;
    validateConfig?(config): {
        valid: boolean;
        errors?: string[];
    };
    commands?: Record<string, ((args, ctx) => unknown)>;
    configVersion?: number;
    migrations?: {
        from: number;
        to: number;
        migrate: ((oldConfig) => unknown);
    }[];
}

Type Parameters

  • Config = unknown
  • Exports = unknown

Hierarchy (view full)

Properties

defaultConfig?: Config
commands?: Record<string, ((args, ctx) => unknown)>

Type declaration

    • (args, ctx): unknown
    • Parameters

      Returns unknown

configVersion?: number
migrations?: {
    from: number;
    to: number;
    migrate: ((oldConfig) => unknown);
}[]

Type declaration

  • from: number
  • to: number
  • migrate: ((oldConfig) => unknown)
      • (oldConfig): unknown
      • Parameters

        • oldConfig: unknown

        Returns unknown

Methods

  • Parameters

    • config: unknown

    Returns {
        valid: boolean;
        errors?: string[];
    }

    • valid: boolean
    • Optional errors?: string[]