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.
19 lines (18 loc) • 701 B
JavaScript
// SPDX-FileCopyrightText: 2025-present Kriasoft
// SPDX-License-Identifier: MIT
import { lock } from "../common/auto-lock.js";
import { createRedisBackend } from "./backend.js";
/**
* Creates distributed lock with Redis backend via ioredis client
* @param redis - ioredis client instance
* @param options - Retry, TTL, and key prefix config
* @returns Auto-managed lock function (see: common/auto-lock.ts)
*/
export function createLock(redis, options = {}) {
const backend = createRedisBackend(redis, options);
return (fn, config) => {
return lock(backend, fn, config);
};
}
// Re-exports for custom backend implementations
export { createRedisBackend } from "./backend.js";