Note the MemoryLockAdapter is limited to single process usage and cannot be shared across multiple servers or different processes. This adapter is meant for easily fakingILockFactory for testing.

IMPORT_PATH: "@daiso-tech/core/lock/memory-lock-adapter"

Implements

Constructors

Methods

  • Attempts to acquire a lock for the specified key. Succeeds only if the lock is currently expired or doesn't exist.

    Parameters

    • _context: IReadableContext
    • key: string

      Unique identifier for the lock

    • lockId: string

      Unique identifier for this acquirer (becomes the owner)

    • ttl: null | TimeSpan

      Time-to-live duration or null for indefinite locks

    Returns Promise<boolean>

    Promise resolving to true if lock was successfully acquired, false if already held by another owner

  • Forcibly releases a lock regardless of ownership. Used for emergency lock release or administrative cleanup. Bypasses ownership verification for situations where the owner is unavailable.

    Parameters

    Returns Promise<boolean>

    Promise resolving to true if lock existed and was released, false if lock is already expired

  • Refreshes (extends) the time-to-live of an existing lock. Only succeeds if all conditions are met: ownership matches, lock hasn't expired, and it's expirable.

    Parameters

    • _context: IReadableContext
    • key: string

      Unique identifier for the lock

    • lockId: string

      Unique identifier of the lock owner

    • ttl: TimeSpan

      New time-to-live duration to set

    Returns Promise<boolean>

    Promise resolving to true if refresh succeeded, false if lock is unexpirable, expired, or not owned by lockId

  • Releases a lock if owned by the specified lockId. Ownership verification prevents accidental release of locks held by others.

    Parameters

    • _context: IReadableContext
    • key: string

      Unique identifier for the lock

    • lockId: string

      Unique identifier of the lock owner

    Returns Promise<boolean>

    Promise resolving to true if lock was successfully released, false if not owned by lockId or doesn't exist