UNPKG

@getlarge/nestjs-tools-lock

Version:
23 lines (22 loc) 1 kB
import { OnModuleDestroy, OnModuleInit } from '@nestjs/common'; import Redlock, { ExecutionResult, Lock, RedlockAbortSignal } from 'redlock'; import { LockServiceOptions } from './types'; export declare class LockService implements OnModuleInit, OnModuleDestroy { readonly options: LockServiceOptions; private readonly defaultLockOptions; private redis; redlock: Redlock; constructor(options: LockServiceOptions); onModuleInit(): Promise<void>; onModuleDestroy(): Promise<void>; private waitUntilInitialized; get isInitialized(): boolean; checkInitialization(): void; errorHandler(error: unknown): void; createConnection(): void; optimistic<T = unknown>(key: string, ttl: number, cb: (signal: RedlockAbortSignal) => Promise<T>): Promise<T>; lock(key: string, ttl: number): Promise<Lock>; get(key: string, lockId: string): Promise<Lock | null>; unlock(key: string, lockId: string): Promise<ExecutionResult>; close(): Promise<void>; }