@apiratorjs/locking-redis
Version:
An extension to the core @apiratorjs/locking library, providing Redis-based implementations of distributed mutexes and semaphores for true cross-process concurrency control in Node.js.
31 lines • 1.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createRedisLockFactory = createRedisLockFactory;
const redis_distributed_semaphore_1 = require("./redis-distributed-semaphore");
const redis_distributed_mutex_1 = require("./redis-distributed-mutex");
const redis_1 = require("redis");
async function createRedisLockFactory(options) {
const redisClient = (0, redis_1.createClient)({ url: options.url });
await redisClient.connect();
return {
createDistributedSemaphore(props) {
const { name, maxCount } = props;
return new redis_distributed_semaphore_1.RedisDistributedSemaphore({
name,
maxCount,
redisClient
});
},
createDistributedMutex(props) {
const { name } = props;
return new redis_distributed_mutex_1.RedisDistributedMutex({
name,
redisClient
});
},
getRedisClient() {
return redisClient;
}
};
}
//# sourceMappingURL=index.js.map