@da440dil/js-locker
Version:
Distributed locking using Redis
22 lines (21 loc) • 883 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.LockerScript = void 0;
const fs_1 = require("fs");
const path_1 = require("path");
const js_redis_script_1 = require("@da440dil/js-redis-script");
const locksrc = (0, fs_1.readFileSync)((0, path_1.resolve)(__dirname, '../lock.lua')).toString();
const unlocksrc = (0, fs_1.readFileSync)((0, path_1.resolve)(__dirname, '../unlock.lua')).toString();
class LockerScript {
constructor(client) {
this.lockScript = (0, js_redis_script_1.createScript)(client, locksrc, 1);
this.unlockScript = (0, js_redis_script_1.createScript)(client, unlocksrc, 1);
}
lock(key, value, ttl) {
return this.lockScript.run(key, value, ttl);
}
unlock(key, value) {
return this.unlockScript.run(key, value);
}
}
exports.LockerScript = LockerScript;