@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 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
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsnw/nestjs-ioredis",
3
- "version": "2.2.0",
3
+ "version": "2.3.1",
4
4
  "description": "NestJS module for integrating Redis",
5
5
  "exports": {
6
6
  "require": {