UNPKG

@da440dil/js-locker

Version:
29 lines (28 loc) 895 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Locker = void 0; const crypto_1 = require("crypto"); const Lock_1 = require("./Lock"); const LockResult_1 = require("./LockResult"); class Locker { constructor(locker) { this.locker = locker; } async lock(key, ttl) { const value = await this.randomString(); const lock = new Lock_1.Lock(this.locker, key, value); const result = await lock.lock(ttl); return new LockResult_1.LockResult(lock, result); } randomString() { return new Promise((resolve, reject) => { (0, crypto_1.randomBytes)(16, (err, buf) => { if (err) { return reject(err); } resolve(buf.toString('base64')); }); }); } } exports.Locker = Locker;