UNPKG

@shagital/atomic-lock

Version:

Universal atomic locking with pluggable drivers (Redis, SQLite, File, Memory)

29 lines (22 loc) 1.07 kB
// Core exports export { AtomicLock, createLock } from './core/atomic-lock' export type { LockDriver, LockOptions, DriverConfig, CircuitBreakerStats, LockInfo } from './types' // Driver exports export { RedisLockDriver } from './drivers/redis-driver' export { FileLockDriver } from './drivers/file-driver' export { SQLiteLockDriver } from './drivers/sqlite-driver' export { MemoryLockDriver } from './drivers/memory-driver' // Convenience factory functions import { AtomicLock } from './core/atomic-lock' export function createRedisLock(client: any, options?: any) { return new AtomicLock({ driver: 'redis', redis: { client } }, options) } export function createFileLock(lockDir: string, options?: any) { return new AtomicLock({ driver: 'file', file: { lockDir } }, options) } export function createSQLiteLock(db: any, options?: any) { return new AtomicLock({ driver: 'sqlite', sqlite: { db } }, options) } export function createMemoryLock(options?: any) { return new AtomicLock({ driver: 'memory', memory: {} }, options) }