syncguard
Version:
Functional TypeScript library for distributed locking across microservices. Prevents race conditions with Redis, PostgreSQL, Firestore, and custom backends. Features automatic lock management, timeout handling, and extensible architecture.
15 lines (14 loc) • 752 B
TypeScript
import type { Firestore } from "@google-cloud/firestore";
import type { AcquisitionOptions, LockConfig } from "../common/types.js";
import type { FirestoreBackendOptions } from "./types.js";
/**
* Creates distributed lock with Firestore backend
* @param db - Firestore client instance
* @param options - Retry, TTL, and collection config
* @returns Auto-managed lock function (see: common/auto-lock.ts)
*/
export declare function createLock(db: Firestore, options?: FirestoreBackendOptions): <T>(fn: () => Promise<T> | T, config: LockConfig & {
acquisition?: AcquisitionOptions;
}) => Promise<T>;
export { createFirestoreBackend } from "./backend.js";
export type { FirestoreBackendOptions, FirestoreConfig, LockDocument, } from "./types.js";