@jsnw/nestjs-ioredis 2.2.0 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +21 -0
- package/dist/index.d.cts +5 -0
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -124,6 +124,13 @@ var RedisLock = class {
|
|
|
124
124
|
return this.acquireLockPromise;
|
|
125
125
|
}
|
|
126
126
|
/**
|
|
127
|
+
* @param {number} ttlSec
|
|
128
|
+
* @return {Promise<boolean>}
|
|
129
|
+
*/
|
|
130
|
+
async renew(ttlSec) {
|
|
131
|
+
return await this.redis.renewLockAtomic(this.locksHashKey, this.name, this.value, ttlSec) === 1;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
127
134
|
* @return {Promise<void>}
|
|
128
135
|
*/
|
|
129
136
|
async release() {
|
|
@@ -224,6 +231,7 @@ let RedisCoreModule = _RedisCoreModule = class RedisCoreModule {
|
|
|
224
231
|
}
|
|
225
232
|
/**
|
|
226
233
|
* @param {Redis} redis
|
|
234
|
+
* @return {Redis}
|
|
227
235
|
* @private
|
|
228
236
|
*/
|
|
229
237
|
static extendRedisWithCommands(redis) {
|
|
@@ -238,6 +246,19 @@ let RedisCoreModule = _RedisCoreModule = class RedisCoreModule {
|
|
|
238
246
|
end
|
|
239
247
|
`
|
|
240
248
|
});
|
|
249
|
+
redis.defineCommand("renewLockAtomic", {
|
|
250
|
+
numberOfKeys: 1,
|
|
251
|
+
lua: dedent.default`
|
|
252
|
+
if redis.call("hget", KEYS[1], ARGV[1]) == ARGV[2]
|
|
253
|
+
then
|
|
254
|
+
redis.call("hexpire", KEYS[1], ARGV[3], "XX", "FIELDS", 1, ARGV[1])
|
|
255
|
+
return 1
|
|
256
|
+
else
|
|
257
|
+
return 0
|
|
258
|
+
end
|
|
259
|
+
`
|
|
260
|
+
});
|
|
261
|
+
return redis;
|
|
241
262
|
}
|
|
242
263
|
};
|
|
243
264
|
RedisCoreModule = _RedisCoreModule = __decorate([(0, _nestjs_common.Global)(), (0, _nestjs_common.Module)({})], RedisCoreModule);
|
package/dist/index.d.cts
CHANGED
|
@@ -50,6 +50,11 @@ declare class RedisLock {
|
|
|
50
50
|
* @return {Promise<boolean>}
|
|
51
51
|
*/
|
|
52
52
|
acquire(ttlMs: number): Promise<boolean>;
|
|
53
|
+
/**
|
|
54
|
+
* @param {number} ttlSec
|
|
55
|
+
* @return {Promise<boolean>}
|
|
56
|
+
*/
|
|
57
|
+
renew(ttlSec: number): Promise<boolean>;
|
|
53
58
|
/**
|
|
54
59
|
* @return {Promise<void>}
|
|
55
60
|
*/
|