Interface AdapterEventEmitter

Event emitter interface for storage adapters.

Provides a simple pub/sub mechanism for monitoring adapter lifecycle and query execution.

// Subscribe to all query errors
const unsubscribe = events.on('query:error', (event) => {
console.error('Query failed:', event.statement, event.error);
});

// Later, unsubscribe
unsubscribe();

// Subscribe to slow queries
events.on('performance:slow-query', (event) => {
if (event.duration > 5000) {
analytics.track('very_slow_query', {
statement: event.statement,
duration: event.duration
});
}
});
interface AdapterEventEmitter {
    on<T>(eventType: T, listener: AdapterEventListener<
        | Extract<ConnectionOpenedEvent, {
            type: T;
        }>
        | Extract<ConnectionClosedEvent, {
            type: T;
        }>
        | Extract<ConnectionErrorEvent, {
            type: T;
        }>
        | Extract<QueryStartEvent, {
            type: T;
        }>
        | Extract<QueryCompleteEvent, {
            type: T;
        }>
        | Extract<QueryErrorEvent, {
            type: T;
        }>
        | Extract<TransactionStartEvent, {
            type: T;
        }>
        | Extract<TransactionCommitEvent, {
            type: T;
        }>
        | Extract<TransactionRollbackEvent, {
            type: T;
        }>
        | Extract<PerformanceSlowQueryEvent, {
            type: T;
        }>
        | Extract<CacheHitEvent, {
            type: T;
        }>
        | Extract<CacheMissEvent, {
            type: T;
        }>
        | Extract<CacheClearEvent, {
            type: T;
        }>>): UnsubscribeFn;
    once<T>(eventType: T, listener: AdapterEventListener<
        | Extract<ConnectionOpenedEvent, {
            type: T;
        }>
        | Extract<ConnectionClosedEvent, {
            type: T;
        }>
        | Extract<ConnectionErrorEvent, {
            type: T;
        }>
        | Extract<QueryStartEvent, {
            type: T;
        }>
        | Extract<QueryCompleteEvent, {
            type: T;
        }>
        | Extract<QueryErrorEvent, {
            type: T;
        }>
        | Extract<TransactionStartEvent, {
            type: T;
        }>
        | Extract<TransactionCommitEvent, {
            type: T;
        }>
        | Extract<TransactionRollbackEvent, {
            type: T;
        }>
        | Extract<PerformanceSlowQueryEvent, {
            type: T;
        }>
        | Extract<CacheHitEvent, {
            type: T;
        }>
        | Extract<CacheMissEvent, {
            type: T;
        }>
        | Extract<CacheClearEvent, {
            type: T;
        }>>): UnsubscribeFn;
    emit(event: AdapterEvent): void;
    removeAllListeners(): void;
    removeListeners(eventType:
        | "connection:opened"
        | "connection:closed"
        | "connection:error"
        | "query:start"
        | "query:complete"
        | "query:error"
        | "transaction:start"
        | "transaction:commit"
        | "transaction:rollback"
        | "performance:slow-query"
        | "cache:hit"
        | "cache:miss"
        | "cache:clear"): void;
    listenerCount(eventType:
        | "connection:opened"
        | "connection:closed"
        | "connection:error"
        | "query:start"
        | "query:complete"
        | "query:error"
        | "transaction:start"
        | "transaction:commit"
        | "transaction:rollback"
        | "performance:slow-query"
        | "cache:hit"
        | "cache:miss"
        | "cache:clear"): number;
}

Methods

  • Subscribe to an event type once (auto-unsubscribes after first call).

    Type Parameters

    • T extends
          | "connection:opened"
          | "connection:closed"
          | "connection:error"
          | "query:start"
          | "query:complete"
          | "query:error"
          | "transaction:start"
          | "transaction:commit"
          | "transaction:rollback"
          | "performance:slow-query"
          | "cache:hit"
          | "cache:miss"
          | "cache:clear"

    Parameters

    Returns UnsubscribeFn

    Unsubscribe function

  • Remove all listeners for a specific event type.

    Parameters

    • eventType:
          | "connection:opened"
          | "connection:closed"
          | "connection:error"
          | "query:start"
          | "query:complete"
          | "query:error"
          | "transaction:start"
          | "transaction:commit"
          | "transaction:rollback"
          | "performance:slow-query"
          | "cache:hit"
          | "cache:miss"
          | "cache:clear"

      The event type to clear listeners for

    Returns void

  • Get the number of listeners for an event type.

    Parameters

    • eventType:
          | "connection:opened"
          | "connection:closed"
          | "connection:error"
          | "query:start"
          | "query:complete"
          | "query:error"
          | "transaction:start"
          | "transaction:commit"
          | "transaction:rollback"
          | "performance:slow-query"
          | "cache:hit"
          | "cache:miss"
          | "cache:clear"

      The event type to count listeners for

    Returns number

    Number of active listeners