electron/utils/operationalHooks
Operational hooks utility for standardizing error handling, retries, and event emission across the Electron backend.
Remarks
Provides consistent patterns for async operations with observability, retry logic, and event-driven architecture support. This utility standardizes how backend operations handle failures, emit events, and provide monitoring visibility across the application.
Key features:
- Consistent error handling patterns for all backend operations
 - Configurable retry logic with exponential/linear backoff strategies
 - Automatic event emission for operation lifecycle tracking
 - Performance monitoring and observability hooks
 - Standardized logging with operation context
 - Type-safe operation contracts and event payloads
 
Examples
import { withHooks } from "./operationalHooks";
import { eventBus } from "../events/TypedEventBus";
const result = await withHooks(
    async () => await database.createSite(siteData),
    {
        operationName: "createSite",
        maxRetries: 3,
        backoff: "exponential",
        eventBus,
        context: { userId: "123", siteUrl: "example.com" },
    }
);
const config: OperationalHooksConfig = {
    operationName: "updateMonitorStatus",
    onError: (error, attempt, config) => {
        logger.warn(
            `Attempt ${attempt} failed for ${config.operationName}`,
            error
        );
        return attempt < 2; // Only retry first 2 failures
    },
    onSuccess: (result, config) => {
        logger.info(`Operation ${config.operationName} completed successfully`);
    },
};