@shagital/atomic-lock
Version:
Universal atomic locking with pluggable drivers (Redis, SQLite, File, Memory)
35 lines (34 loc) • 2.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MemoryLockDriver = exports.SQLiteLockDriver = exports.FileLockDriver = exports.RedisLockDriver = exports.createLock = exports.AtomicLock = void 0;
exports.createRedisLock = createRedisLock;
exports.createFileLock = createFileLock;
exports.createSQLiteLock = createSQLiteLock;
exports.createMemoryLock = createMemoryLock;
// Core exports
var atomic_lock_1 = require("./core/atomic-lock");
Object.defineProperty(exports, "AtomicLock", { enumerable: true, get: function () { return atomic_lock_1.AtomicLock; } });
Object.defineProperty(exports, "createLock", { enumerable: true, get: function () { return atomic_lock_1.createLock; } });
// Driver exports
var redis_driver_1 = require("./drivers/redis-driver");
Object.defineProperty(exports, "RedisLockDriver", { enumerable: true, get: function () { return redis_driver_1.RedisLockDriver; } });
var file_driver_1 = require("./drivers/file-driver");
Object.defineProperty(exports, "FileLockDriver", { enumerable: true, get: function () { return file_driver_1.FileLockDriver; } });
var sqlite_driver_1 = require("./drivers/sqlite-driver");
Object.defineProperty(exports, "SQLiteLockDriver", { enumerable: true, get: function () { return sqlite_driver_1.SQLiteLockDriver; } });
var memory_driver_1 = require("./drivers/memory-driver");
Object.defineProperty(exports, "MemoryLockDriver", { enumerable: true, get: function () { return memory_driver_1.MemoryLockDriver; } });
// Convenience factory functions
const atomic_lock_2 = require("./core/atomic-lock");
function createRedisLock(client, options) {
return new atomic_lock_2.AtomicLock({ driver: 'redis', redis: { client } }, options);
}
function createFileLock(lockDir, options) {
return new atomic_lock_2.AtomicLock({ driver: 'file', file: { lockDir } }, options);
}
function createSQLiteLock(db, options) {
return new atomic_lock_2.AtomicLock({ driver: 'sqlite', sqlite: { db } }, options);
}
function createMemoryLock(options) {
return new atomic_lock_2.AtomicLock({ driver: 'memory', memory: {} }, options);
}