Sorci.js
    Preparing search index...

    Class SorciPostgresNamespace

    Implements

    Index

    Other

    • Parameters

      • payload: SorciConstructorPayload

      Returns SorciPostgres

    • Parameters

      • payload: {
            buildAdvisoryLocks?: (
                payload: { query: Query },
            ) => { hash: number; key: string }[];
            connectionString: string;
            streamName: string;
        }

      Returns SorciPostgres

    • Parameters

      • streamName: string

      Returns Promise<any>

    • Parameters

      • tableName: string

      Returns Promise<void>

    Projections

    • Query a projection

      Parameters

      • name: string
      • Optionaloptions: { where?: Record<string, any> }

      Returns Promise<any[]>

    • Manually refresh a projection by reprocessing all events

      Parameters

      • name: string

      Returns Promise<void>

    • Set an event-specific reducer for a projection (adds new or updates existing)

      Parameters

      • payload: {
            eventType: string;
            name: string;
            reducer: EventReducer;
            refreshProjection?: boolean;
        }

      Returns Promise<void>

    • Update an existing projection's schema with custom SQL alterations. Throws if projection doesn't exist.

      Parameters

      • payload: {
            alterationSQL: (sql: Sql, tableName: string) => PendingQuery<Row[]>;
            name: string;
        }

      Returns Promise<void>

    Stream

    • Will append an event with optimistic concurrency control. Uses Dynamic Consistency Boundary (DCB) to detect conflicts without table locks. If queryV2 & lastKnownEventId are provided, it checks if any relevant events were added since lastKnownEventId. If yes, throws a concurrency error.

      Parameters

      Returns Promise<any>

      The event id

    • Will retrieve one event by it's id

      Parameters

      • id: string

      Returns Promise<
          | { data: any; id: any; identifier: any; timestamp: any; type: any }
          | undefined,
      >

    Tooling

    • Will close all database connections Usefull to cleanup after tests

      Returns Promise<any>

    • Will destroy every stream prefixed by 'test-' Usefull to cleanup all test stream

      Parameters

      • Optionalpayload: { excludeCurrentStream: boolean }

      Returns Promise<void>

    • Wait for instance to finish loading projections from database

      Returns Promise<void>

    • Will create a stream with random name prefixed by 'test-' Usefull to setup a test stream

      Parameters

      • OptionalstreamName: string

      Returns Promise<void>

      You can give a name to the stream if you want to