Skip to content

NotificationRelayStore — @gj-kit/nest-notifications

A public interface from @gj-kit/nest-notifications/core. The signature below is taken directly from the 0.1.1 release declaration.

import { NotificationRelayStore } from '@gj-kit/nest-notifications/core';
/**
* Ingress outbox persistence. The library owns no schema; a host maps these four
* operations onto its own table. The obligations R1-R13 documented in the design
* are part of the contract, and `notificationStoreContractCases()` from the
* `./testing` subpath checks them.
*/
interface NotificationRelayStore {
/** Atomically claim up to `limit` due rows. Only rows this call actually won are returned (R1). */
claimDue(request: RelayClaimRequest): Promise<readonly ClaimedNotificationCommand[]>;
/**
* Run `work` in one transaction that holds the outbox row lock (R7). Resolves
* to `null` without running `work` when this worker no longer owns the claim.
*/
relayInTransaction<T>(request: RelayTransactionRequest, work: (tx: NotificationRelayTransaction) => Promise<T>): Promise<T | null>;
/** `false` means the claim was lost; the stored outcome is unchanged (R8). */
completeClaim(request: RelayCompleteRequest): Promise<boolean>;
/** Release a failed claim so the next pass can retry it. Never throws for a lost claim. */
releaseClaim(request: RelayReleaseRequest): Promise<void>;
}

This declaration is the source of truth for parameters, optionality, generics, return values, and public union/type contracts. Check the package golden path and this subpath’s import conditions for required environment, permission, and error boundaries before calling it.

  • Package: @gj-kit/nest-notifications
  • Version: 0.1.1
  • Public entry: ./core
  • Source: GitHub