UNPKG

pg-logical-replication

Version:

PostgreSQL Location Replication client - logical WAL replication streaming

51 lines (50 loc) 1.95 kB
import EventEmitter2 from 'eventemitter2'; import { ClientConfig } from 'pg'; import { AbstractPlugin } from './output-plugins/abstract.plugin.js'; export interface ReplicationClientConfig extends ClientConfig { replication: 'database'; } export interface LogicalReplicationConfig { acknowledge?: { /** * If the value is false, acknowledge must be done manually. * Default: true */ auto: boolean; /** * Acknowledge is performed every set time (sec). If 0, do not do it. * Default: 10 */ timeoutSeconds: 0 | 10 | number; }; } export interface LogicalReplicationService { on(event: 'error', listener: (err: Error) => void): this; on(event: 'data', listener: (lsn: string, log: any) => Promise<void> | void): this; on(event: 'start', listener: () => Promise<void> | void): this; on(event: 'acknowledge', listener: (lsn: string) => Promise<void> | void): this; on(event: 'heartbeat', listener: (lsn: string, timestamp: number, shouldRespond: boolean) => Promise<void> | void): this; } export declare class LogicalReplicationService extends EventEmitter2 implements LogicalReplicationService { readonly clientConfig: ClientConfig; readonly config: LogicalReplicationConfig; constructor(clientConfig: ClientConfig, config?: Partial<LogicalReplicationConfig>); private _lastLsn; lastLsn(): string; private _client; private _connection; private client; private _stop; isStop(): boolean; stop(): Promise<this>; subscribe(plugin: AbstractPlugin, slotName: string): Promise<this>; subscribe(plugin: AbstractPlugin, slotName: string, uptoLsn: string): Promise<this>; private _acknowledge; private lastStandbyStatusUpdatedTime; private checkStandbyStatusTimer; private checkStandbyStatus; /** * @param lsn */ acknowledge(lsn: string): Promise<boolean>; }