redis-smq-common 1.0.0-rc.6 → 1.0.0-rc.9

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/.codecov.yml ADDED
@@ -0,0 +1,5 @@
1
+ coverage:
2
+ status:
3
+ patch:
4
+ default:
5
+ target: 80%
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 1.0.0-rc.9 (2022-05-31)
4
+
5
+ * Improve RedisClient typings (27219a6)
6
+ * Set up codecov (98293bd)
7
+ * Fix type coverage (2f4a722)
8
+
9
+ ## 1.0.0-rc.8 (2022-05-30)
10
+
11
+ * Add WatchedKeysChangedError class (1e42e80)
12
+
13
+ ## 1.0.0-rc.7 (2022-05-30)
14
+
15
+ * Fix various redis errors (9349261)
16
+
3
17
  ## 1.0.0-rc.6 (2022-05-30)
4
18
 
5
19
  * Fix missing RedisClient from package exports (88f90f0)
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IoredisClientMulti = void 0;
4
4
  const redis_client_error_1 = require("../errors/redis-client.error");
5
+ const watched_keys_changed_error_1 = require("../errors/watched-keys-changed.error");
5
6
  class IoredisClientMulti {
6
7
  constructor(client) {
7
8
  this.multi = client.multi();
@@ -43,7 +44,7 @@ class IoredisClientMulti {
43
44
  return this;
44
45
  }
45
46
  srem(key, element) {
46
- this.multi.srem(key, ...element);
47
+ this.multi.srem(key, ...(typeof element === 'string' ? [element] : element));
47
48
  return this;
48
49
  }
49
50
  hset(key, field, value) {
@@ -63,7 +64,7 @@ class IoredisClientMulti {
63
64
  return this;
64
65
  }
65
66
  del(key) {
66
- this.multi.del(...key);
67
+ this.multi.del(...(typeof key === 'string' ? [key] : key));
67
68
  return this;
68
69
  }
69
70
  exec(cb) {
@@ -71,7 +72,7 @@ class IoredisClientMulti {
71
72
  if (err)
72
73
  cb(err);
73
74
  else if (!reply)
74
- cb(new redis_client_error_1.RedisClientError(`Redis transaction has been abandoned. Try again.`));
75
+ cb(new watched_keys_changed_error_1.WatchedKeysChangedError());
75
76
  else {
76
77
  const lengths = [];
77
78
  let err = null;
@@ -11,7 +11,7 @@ export declare class IoredisClient extends RedisClient {
11
11
  value: number;
12
12
  };
13
13
  exists?: 'NX' | 'XX';
14
- }, cb: ICallback<string>): void;
14
+ }, cb: ICallback<string | null>): void;
15
15
  zadd(key: string, score: number, member: string, cb: ICallback<number | string>): void;
16
16
  multi(): IoredisClientMulti;
17
17
  watch(args: string[], cb: ICallback<string>): void;
@@ -25,25 +25,25 @@ export declare class IoredisClient extends RedisClient {
25
25
  smembers(key: string, cb: ICallback<string[]>): void;
26
26
  sadd(key: string, member: string, cb: ICallback<number>): void;
27
27
  hgetall(key: string, cb: ICallback<Record<string, string>>): void;
28
- hget(key: string, field: string, cb: ICallback<string>): void;
28
+ hget(key: string, field: string, cb: ICallback<string | null>): void;
29
29
  hset(key: string, field: string, value: string, cb: ICallback<number>): void;
30
30
  hdel(key: string, fields: string | string[], cb: ICallback<number>): void;
31
31
  lrange(key: string, start: number, stop: number, cb: ICallback<string[]>): void;
32
32
  hkeys(key: string, cb: ICallback<string[]>): void;
33
33
  hlen(key: string, cb: ICallback<number>): void;
34
- brpoplpush(source: string, destination: string, timeout: number, cb: ICallback<string>): void;
35
- rpoplpush(source: string, destination: string, cb: ICallback<string>): void;
34
+ brpoplpush(source: string, destination: string, timeout: number, cb: ICallback<string | null>): void;
35
+ rpoplpush(source: string, destination: string, cb: ICallback<string | null>): void;
36
36
  zrangebyscorewithscores(source: string, min: number, max: number, cb: ICallback<Record<string, string>>): void;
37
- rpop(key: string, cb: ICallback<string>): void;
37
+ rpop(key: string, cb: ICallback<string | null>): void;
38
38
  lrem(key: string, count: number, element: string, cb: ICallback<number>): void;
39
39
  publish(channel: string, message: string, cb: ICallback<number>): void;
40
40
  flushall(cb: ICallback<string>): void;
41
41
  loadScript(script: string, cb: ICallback<string>): void;
42
42
  evalsha(hash: string, args: (string | number)[] | string | number, cb: (err?: Error | null, res?: unknown) => void): void;
43
- get(key: string, cb: ICallback<string>): void;
43
+ get(key: string, cb: ICallback<string | null>): void;
44
44
  del(key: string | string[], cb: ICallback<number>): void;
45
45
  llen(key: string, cb: ICallback<number>): void;
46
- lmove(source: string, destination: string, from: 'LEFT' | 'RIGHT', to: 'LEFT' | 'RIGHT', cb: ICallback<string>): void;
46
+ lmove(source: string, destination: string, from: 'LEFT' | 'RIGHT', to: 'LEFT' | 'RIGHT', cb: ICallback<string | null>): void;
47
47
  zremrangebyscore(source: string, min: number | string, max: number | string, cb: ICallback<number>): void;
48
48
  hmget(source: string, keys: string[], cb: ICallback<(string | null)[]>): void;
49
49
  halt(cb: ICallback<void>): void;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NodeRedisV3ClientMulti = void 0;
4
- const redis_client_error_1 = require("../errors/redis-client.error");
4
+ const watched_keys_changed_error_1 = require("../errors/watched-keys-changed.error");
5
5
  class NodeRedisV3ClientMulti {
6
6
  constructor(client) {
7
7
  this.multi = client.multi();
@@ -71,7 +71,7 @@ class NodeRedisV3ClientMulti {
71
71
  if (err)
72
72
  cb(err);
73
73
  else if (!reply)
74
- cb(new redis_client_error_1.RedisClientError(`Redis transaction has been abandoned. Try again.`));
74
+ cb(new watched_keys_changed_error_1.WatchedKeysChangedError());
75
75
  else
76
76
  cb(null, reply);
77
77
  });
@@ -11,7 +11,7 @@ export declare class NodeRedisV3Client extends RedisClient {
11
11
  value: number;
12
12
  };
13
13
  exists?: 'NX' | 'XX';
14
- }, cb: ICallback<string>): void;
14
+ }, cb: ICallback<string | null>): void;
15
15
  zadd(key: string, score: number, member: string, cb: ICallback<number | string>): void;
16
16
  multi(): NodeRedisV3ClientMulti;
17
17
  watch(args: string[], cb: ICallback<string>): void;
@@ -25,25 +25,25 @@ export declare class NodeRedisV3Client extends RedisClient {
25
25
  smembers(key: string, cb: ICallback<string[]>): void;
26
26
  sadd(key: string, member: string, cb: ICallback<number>): void;
27
27
  hgetall(key: string, cb: ICallback<Record<string, string>>): void;
28
- hget(key: string, field: string, cb: ICallback<string>): void;
28
+ hget(key: string, field: string, cb: ICallback<string | null>): void;
29
29
  hset(key: string, field: string, value: string, cb: ICallback<number>): void;
30
30
  hdel(key: string, fields: string | string[], cb: ICallback<number>): void;
31
31
  lrange(key: string, start: number, stop: number, cb: ICallback<string[]>): void;
32
32
  hkeys(key: string, cb: ICallback<string[]>): void;
33
33
  hlen(key: string, cb: ICallback<number>): void;
34
- brpoplpush(source: string, destination: string, timeout: number, cb: ICallback<string>): void;
35
- rpoplpush(source: string, destination: string, cb: ICallback<string>): void;
34
+ brpoplpush(source: string, destination: string, timeout: number, cb: ICallback<string | null>): void;
35
+ rpoplpush(source: string, destination: string, cb: ICallback<string | null>): void;
36
36
  zrangebyscorewithscores(source: string, min: number, max: number, cb: ICallback<Record<string, string>>): void;
37
- rpop(key: string, cb: ICallback<string>): void;
37
+ rpop(key: string, cb: ICallback<string | null>): void;
38
38
  lrem(key: string, count: number, element: string, cb: ICallback<number>): void;
39
39
  publish(channel: string, message: string, cb: ICallback<number>): void;
40
40
  flushall(cb: ICallback<string>): void;
41
41
  loadScript(script: string, cb: ICallback<string>): void;
42
42
  evalsha(hash: string, args: (string | number)[] | string | number, cb: (err?: Error | null, res?: unknown) => void): void;
43
- get(key: string, cb: ICallback<string>): void;
43
+ get(key: string, cb: ICallback<string | null>): void;
44
44
  del(key: string | string[], cb: ICallback<number>): void;
45
45
  llen(key: string, cb: ICallback<number>): void;
46
- lmove(source: string, destination: string, from: 'LEFT' | 'RIGHT', to: 'LEFT' | 'RIGHT', cb: ICallback<string>): void;
46
+ lmove(source: string, destination: string, from: 'LEFT' | 'RIGHT', to: 'LEFT' | 'RIGHT', cb: ICallback<string | null>): void;
47
47
  zremrangebyscore(source: string, min: number | string, max: number | string, cb: ICallback<number>): void;
48
48
  hmget(source: string, keys: string[], cb: ICallback<(string | null)[]>): void;
49
49
  halt(cb: ICallback<void>): void;
@@ -110,7 +110,7 @@ class NodeRedisV3Client extends redis_client_1.RedisClient {
110
110
  this.client.hset(key, field, value, cb);
111
111
  }
112
112
  hdel(key, fields, cb) {
113
- this.client.hdel(key, fields, cb);
113
+ this.client.hdel(key, ...(typeof fields === 'string' ? [fields] : fields), cb);
114
114
  }
115
115
  lrange(key, start, stop, cb) {
116
116
  this.client.lrange(key, start, stop, cb);
@@ -166,7 +166,7 @@ class NodeRedisV3Client extends redis_client_1.RedisClient {
166
166
  this.client.get(key, cb);
167
167
  }
168
168
  del(key, cb) {
169
- this.client.del(key, cb);
169
+ this.client.del(...(typeof key === 'string' ? [key] : key), cb);
170
170
  }
171
171
  llen(key, cb) {
172
172
  this.client.llen(key, cb);
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NodeRedisV4ClientMulti = void 0;
4
+ const client_1 = require("@redis/client");
5
+ const watched_keys_changed_error_1 = require("../errors/watched-keys-changed.error");
4
6
  class NodeRedisV4ClientMulti {
5
7
  constructor(client) {
6
8
  this.multi = client.multi();
@@ -69,7 +71,12 @@ class NodeRedisV4ClientMulti {
69
71
  this.multi
70
72
  .exec()
71
73
  .then((reply) => cb(null, reply))
72
- .catch(cb);
74
+ .catch((err) => {
75
+ if (err instanceof client_1.WatchError)
76
+ cb(new watched_keys_changed_error_1.WatchedKeysChangedError());
77
+ else
78
+ cb(err);
79
+ });
73
80
  }
74
81
  }
75
82
  exports.NodeRedisV4ClientMulti = NodeRedisV4ClientMulti;
@@ -11,7 +11,7 @@ export declare class NodeRedisV4Client extends RedisClient {
11
11
  value: number;
12
12
  };
13
13
  exists?: 'NX' | 'XX';
14
- }, cb: ICallback<string>): void;
14
+ }, cb: ICallback<string | null>): void;
15
15
  zadd(key: string, score: number, member: string, cb: ICallback<number | string>): void;
16
16
  multi(): NodeRedisV4ClientMulti;
17
17
  watch(args: string[], cb: ICallback<string>): void;
@@ -25,25 +25,25 @@ export declare class NodeRedisV4Client extends RedisClient {
25
25
  smembers(key: string, cb: ICallback<string[]>): void;
26
26
  sadd(key: string, member: string, cb: ICallback<number>): void;
27
27
  hgetall(key: string, cb: ICallback<Record<string, string>>): void;
28
- hget(key: string, field: string, cb: ICallback<string>): void;
28
+ hget(key: string, field: string, cb: ICallback<string | null>): void;
29
29
  hset(key: string, field: string, value: string, cb: ICallback<number>): void;
30
30
  hdel(key: string, fields: string | string[], cb: ICallback<number>): void;
31
31
  lrange(key: string, start: number, stop: number, cb: ICallback<string[]>): void;
32
32
  hkeys(key: string, cb: ICallback<string[]>): void;
33
33
  hlen(key: string, cb: ICallback<number>): void;
34
- brpoplpush(source: string, destination: string, timeout: number, cb: ICallback<string>): void;
35
- rpoplpush(source: string, destination: string, cb: ICallback<string>): void;
34
+ brpoplpush(source: string, destination: string, timeout: number, cb: ICallback<string | null>): void;
35
+ rpoplpush(source: string, destination: string, cb: ICallback<string | null>): void;
36
36
  zrangebyscorewithscores(source: string, min: number, max: number, cb: ICallback<Record<string, string>>): void;
37
- rpop(key: string, cb: ICallback<string>): void;
37
+ rpop(key: string, cb: ICallback<string | null>): void;
38
38
  lrem(key: string, count: number, element: string, cb: ICallback<number>): void;
39
39
  publish(channel: string, message: string, cb: ICallback<number>): void;
40
40
  flushall(cb: ICallback<string>): void;
41
41
  loadScript(script: string, cb: ICallback<string>): void;
42
42
  evalsha(hash: string, args: (string | number)[] | string | number, cb: (err?: Error | null, res?: unknown) => void): void;
43
- get(key: string, cb: ICallback<string>): void;
43
+ get(key: string, cb: ICallback<string | null>): void;
44
44
  del(key: string | string[], cb: ICallback<number>): void;
45
45
  llen(key: string, cb: ICallback<number>): void;
46
- lmove(source: string, destination: string, from: 'LEFT' | 'RIGHT', to: 'LEFT' | 'RIGHT', cb: ICallback<string>): void;
46
+ lmove(source: string, destination: string, from: 'LEFT' | 'RIGHT', to: 'LEFT' | 'RIGHT', cb: ICallback<string | null>): void;
47
47
  zremrangebyscore(source: string, min: number | string, max: number | string, cb: ICallback<number>): void;
48
48
  hmget(source: string, keys: string[], cb: ICallback<(string | null)[]>): void;
49
49
  halt(cb: ICallback<void>): void;
@@ -101,7 +101,7 @@ class NodeRedisV4Client extends redis_client_1.RedisClient {
101
101
  hget(key, field, cb) {
102
102
  this.client
103
103
  .hGet(key, field)
104
- .then((reply) => cb(null, reply))
104
+ .then((reply) => cb(null, reply !== null && reply !== void 0 ? reply : null))
105
105
  .catch(cb);
106
106
  }
107
107
  hset(key, field, value, cb) {
@@ -215,8 +215,8 @@ class NodeRedisV4Client extends redis_client_1.RedisClient {
215
215
  }
216
216
  del(key, cb) {
217
217
  this.client
218
- .sendCommand(['del', ...(Array.isArray(key) ? key : [key])])
219
- .then((reply) => cb(null, Number(reply)))
218
+ .del(key)
219
+ .then((reply) => cb(null, reply))
220
220
  .catch(cb);
221
221
  }
222
222
  llen(key, cb) {
@@ -0,0 +1,4 @@
1
+ import { RedisClientError } from './redis-client.error';
2
+ export declare class WatchedKeysChangedError extends RedisClientError {
3
+ constructor(msg?: string);
4
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WatchedKeysChangedError = void 0;
4
+ const redis_client_error_1 = require("./redis-client.error");
5
+ class WatchedKeysChangedError extends redis_client_error_1.RedisClientError {
6
+ constructor(msg = 'One (or more) of the watched keys has been changed') {
7
+ super(msg);
8
+ }
9
+ }
10
+ exports.WatchedKeysChangedError = WatchedKeysChangedError;
11
+ //# sourceMappingURL=watched-keys-changed.error.js.map
@@ -19,7 +19,7 @@ export declare abstract class RedisClient extends EventEmitter {
19
19
  value: number;
20
20
  };
21
21
  exists?: 'NX' | 'XX';
22
- }, cb: ICallback<string>): void;
22
+ }, cb: ICallback<string | null>): void;
23
23
  abstract zadd(key: string, score: number, member: string, cb: ICallback<number | string>): void;
24
24
  abstract multi(): IRedisClientMulti;
25
25
  abstract watch(args: string[], cb: ICallback<string>): void;
@@ -33,28 +33,28 @@ export declare abstract class RedisClient extends EventEmitter {
33
33
  abstract smembers(key: string, cb: ICallback<string[]>): void;
34
34
  abstract sadd(key: string, member: string, cb: ICallback<number>): void;
35
35
  abstract hgetall(key: string, cb: ICallback<Record<string, string>>): void;
36
- abstract hget(key: string, field: string, cb: ICallback<string>): void;
36
+ abstract hget(key: string, field: string, cb: ICallback<string | null>): void;
37
37
  abstract hset(key: string, field: string, value: string, cb: ICallback<number>): void;
38
38
  abstract hdel(key: string, fields: string | string[], cb: ICallback<number>): void;
39
39
  abstract lrange(key: string, start: number, stop: number, cb: ICallback<string[]>): void;
40
40
  abstract hkeys(key: string, cb: ICallback<string[]>): void;
41
41
  abstract hlen(key: string, cb: ICallback<number>): void;
42
- abstract brpoplpush(source: string, destination: string, timeout: number, cb: ICallback<string>): void;
43
- abstract rpoplpush(source: string, destination: string, cb: ICallback<string>): void;
42
+ abstract brpoplpush(source: string, destination: string, timeout: number, cb: ICallback<string | null>): void;
43
+ abstract rpoplpush(source: string, destination: string, cb: ICallback<string | null>): void;
44
44
  zpophgetrpush(source: string, sourceHash: string, destination: string, cb: ICallback<string>): void;
45
45
  lpoprpushextra(source: string, destination: string, listSize: number, expire: number, cb: ICallback<string>): void;
46
- lpoprpush(source: string, destination: string, cb: ICallback<string>): void;
46
+ lpoprpush(source: string, destination: string, cb: ICallback<string | null>): void;
47
47
  abstract zrangebyscorewithscores(source: string, min: number, max: number, cb: ICallback<Record<string, string>>): void;
48
- abstract rpop(key: string, cb: ICallback<string>): void;
48
+ abstract rpop(key: string, cb: ICallback<string | null>): void;
49
49
  abstract lrem(key: string, count: number, element: string, cb: ICallback<number>): void;
50
50
  abstract publish(channel: string, message: string, cb: ICallback<number>): void;
51
51
  abstract flushall(cb: ICallback<string>): void;
52
52
  abstract loadScript(script: string, cb: ICallback<string>): void;
53
53
  abstract evalsha(hash: string, args: (string | number)[] | string | number, cb: (err?: Error | null, res?: unknown) => void): void;
54
- abstract get(key: string, cb: ICallback<string>): void;
54
+ abstract get(key: string, cb: ICallback<string | null>): void;
55
55
  abstract del(key: string | string[], cb: ICallback<number>): void;
56
56
  abstract llen(key: string, cb: ICallback<number>): void;
57
- abstract lmove(source: string, destination: string, from: 'LEFT' | 'RIGHT', to: 'LEFT' | 'RIGHT', cb: ICallback<string>): void;
57
+ abstract lmove(source: string, destination: string, from: 'LEFT' | 'RIGHT', to: 'LEFT' | 'RIGHT', cb: ICallback<string | null>): void;
58
58
  abstract zremrangebyscore(source: string, min: number | string, max: number | string, cb: ICallback<number>): void;
59
59
  abstract hmget(source: string, keys: string[], cb: ICallback<(string | null)[]>): void;
60
60
  abstract halt(cb: ICallback<void>): void;
@@ -56,8 +56,7 @@ declare module 'ioredis' {
56
56
  }
57
57
  }
58
58
  export interface ICallback<T> {
59
- (err?: Error | null, reply?: T | null): void;
60
- (err: null | undefined, reply: T): void;
59
+ (err?: Error | null, reply?: T): void;
61
60
  }
62
61
  export declare type TFunction<TReturn = void, TArgs = any> = (...args: TArgs[]) => TReturn;
63
62
  export declare type TUnaryFunction<T, E = void> = (reply: T) => E;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "redis-smq-common",
3
- "version": "1.0.0-rc.6",
3
+ "version": "1.0.0-rc.9",
4
4
  "description": "RedisSMQ shared components that may be used by integrated applications and extensions.",
5
5
  "author": "Weyoss <weyoss@protonmail.com>",
6
6
  "license": "MIT",