UNPKG

@shagital/atomic-lock

Version:

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

35 lines (34 loc) 2.11 kB
"use strict"; 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); }