@adtrackify/at-service-common 3.8.8 → 3.9.0
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/cjs/clients/generic/redis-client.d.ts +11 -2
- package/dist/cjs/clients/generic/redis-client.js +71 -7
- package/dist/cjs/clients/generic/redis-client.js.map +1 -1
- package/dist/esm/clients/generic/redis-client.d.ts +11 -2
- package/dist/esm/clients/generic/redis-client.js +71 -7
- package/dist/esm/clients/generic/redis-client.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import Redis from 'ioredis';
|
|
1
|
+
import Redis, { ChainableCommander } from 'ioredis';
|
|
2
2
|
export declare class RedisClient {
|
|
3
3
|
private poolSize;
|
|
4
4
|
private pool;
|
|
@@ -8,11 +8,20 @@ export declare class RedisClient {
|
|
|
8
8
|
private createClient;
|
|
9
9
|
private getClient;
|
|
10
10
|
connect(client: Redis): Promise<void>;
|
|
11
|
+
ensureConnected(): Promise<void>;
|
|
12
|
+
disconnect(): Promise<void>;
|
|
11
13
|
safeSet(key: string, value: string, ttlInSeconds?: number): Promise<void>;
|
|
12
14
|
unsafeSet(key: string, value: string, ttlInSeconds?: number): Promise<void>;
|
|
13
15
|
unsafeGet(key: string): Promise<string | null>;
|
|
14
16
|
safeGet(key: string): Promise<string | null>;
|
|
15
17
|
safeBatchGet(keys: string[]): Promise<(string | null)[] | null>;
|
|
16
18
|
del(key: string): Promise<number>;
|
|
17
|
-
|
|
19
|
+
safeHmget(key: string, ...fields: string[]): Promise<(string | null)[] | null>;
|
|
20
|
+
safeLrange(key: string, start: number, stop: number): Promise<string[] | null>;
|
|
21
|
+
safeZcount(key: string, min: number | string, max: number | string): Promise<number>;
|
|
22
|
+
safeZrevrangebyscore(key: string, max: number | string, min: number | string, offsetCount?: {
|
|
23
|
+
offset: number;
|
|
24
|
+
count: number;
|
|
25
|
+
}): Promise<string[]>;
|
|
26
|
+
createPipeline(): ChainableCommander;
|
|
18
27
|
}
|
|
@@ -6,6 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.RedisClient = void 0;
|
|
7
7
|
const ioredis_1 = __importDefault(require("ioredis"));
|
|
8
8
|
const helpers_1 = require("../../helpers");
|
|
9
|
+
function shouldUseTls(host) {
|
|
10
|
+
return host.includes('clustercfg') || host.includes('cache.amazonaws.com');
|
|
11
|
+
}
|
|
9
12
|
class RedisClient {
|
|
10
13
|
poolSize;
|
|
11
14
|
pool;
|
|
@@ -19,13 +22,15 @@ class RedisClient {
|
|
|
19
22
|
}
|
|
20
23
|
createClient(host, port) {
|
|
21
24
|
try {
|
|
25
|
+
const useTls = shouldUseTls(host);
|
|
22
26
|
const client = new ioredis_1.default({
|
|
23
|
-
host
|
|
24
|
-
port
|
|
27
|
+
host,
|
|
28
|
+
port,
|
|
25
29
|
maxRetriesPerRequest: 3,
|
|
26
30
|
commandTimeout: 3000,
|
|
27
31
|
lazyConnect: true,
|
|
28
32
|
keepAlive: 1000,
|
|
33
|
+
...(useTls && { tls: {} }),
|
|
29
34
|
});
|
|
30
35
|
return client;
|
|
31
36
|
}
|
|
@@ -52,6 +57,29 @@ class RedisClient {
|
|
|
52
57
|
return;
|
|
53
58
|
}
|
|
54
59
|
}
|
|
60
|
+
async ensureConnected() {
|
|
61
|
+
const client = this.getClient();
|
|
62
|
+
if (client.status === 'ready')
|
|
63
|
+
return;
|
|
64
|
+
try {
|
|
65
|
+
await client.connect();
|
|
66
|
+
helpers_1.Logger.debug('Connected to Redis');
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
helpers_1.Logger.error('Error connecting to Redis:', { err });
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
async disconnect() {
|
|
73
|
+
try {
|
|
74
|
+
const client = this.getClient();
|
|
75
|
+
await client.quit();
|
|
76
|
+
helpers_1.Logger.debug('Disconnected from Redis');
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
helpers_1.Logger.error('Error disconnecting from Redis:', { err });
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
55
83
|
async safeSet(key, value, ttlInSeconds) {
|
|
56
84
|
try {
|
|
57
85
|
const client = this.getClient();
|
|
@@ -113,16 +141,52 @@ class RedisClient {
|
|
|
113
141
|
return 0;
|
|
114
142
|
}
|
|
115
143
|
}
|
|
116
|
-
async
|
|
144
|
+
async safeHmget(key, ...fields) {
|
|
117
145
|
try {
|
|
118
146
|
const client = this.getClient();
|
|
119
|
-
await client.
|
|
120
|
-
helpers_1.Logger.debug('Disconnected from Redis');
|
|
147
|
+
return await client.hmget(key, ...fields);
|
|
121
148
|
}
|
|
122
149
|
catch (err) {
|
|
123
|
-
helpers_1.Logger.error('Error
|
|
124
|
-
return;
|
|
150
|
+
helpers_1.Logger.error('Error in hmget:', { err, key, fields });
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
async safeLrange(key, start, stop) {
|
|
155
|
+
try {
|
|
156
|
+
const client = this.getClient();
|
|
157
|
+
return await client.lrange(key, start, stop);
|
|
158
|
+
}
|
|
159
|
+
catch (err) {
|
|
160
|
+
helpers_1.Logger.error('Error in lrange:', { err, key, start, stop });
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
async safeZcount(key, min, max) {
|
|
165
|
+
try {
|
|
166
|
+
const client = this.getClient();
|
|
167
|
+
return await client.zcount(key, min, max);
|
|
125
168
|
}
|
|
169
|
+
catch (err) {
|
|
170
|
+
helpers_1.Logger.error('Error in zcount:', { err, key, min, max });
|
|
171
|
+
return 0;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
async safeZrevrangebyscore(key, max, min, offsetCount) {
|
|
175
|
+
try {
|
|
176
|
+
const client = this.getClient();
|
|
177
|
+
if (offsetCount) {
|
|
178
|
+
return await client.zrevrangebyscore(key, max, min, 'LIMIT', offsetCount.offset, offsetCount.count);
|
|
179
|
+
}
|
|
180
|
+
return await client.zrevrangebyscore(key, max, min);
|
|
181
|
+
}
|
|
182
|
+
catch (err) {
|
|
183
|
+
helpers_1.Logger.error('Error in zrevrangebyscore:', { err, key, max, min, offsetCount });
|
|
184
|
+
return [];
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
createPipeline() {
|
|
188
|
+
const client = this.getClient();
|
|
189
|
+
return client.pipeline();
|
|
126
190
|
}
|
|
127
191
|
}
|
|
128
192
|
exports.RedisClient = RedisClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis-client.js","sourceRoot":"","sources":["../../../../src/clients/generic/redis-client.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"redis-client.js","sourceRoot":"","sources":["../../../../src/clients/generic/redis-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import Redis from 'ioredis';
|
|
1
|
+
import Redis, { ChainableCommander } from 'ioredis';
|
|
2
2
|
export declare class RedisClient {
|
|
3
3
|
private poolSize;
|
|
4
4
|
private pool;
|
|
@@ -8,11 +8,20 @@ export declare class RedisClient {
|
|
|
8
8
|
private createClient;
|
|
9
9
|
private getClient;
|
|
10
10
|
connect(client: Redis): Promise<void>;
|
|
11
|
+
ensureConnected(): Promise<void>;
|
|
12
|
+
disconnect(): Promise<void>;
|
|
11
13
|
safeSet(key: string, value: string, ttlInSeconds?: number): Promise<void>;
|
|
12
14
|
unsafeSet(key: string, value: string, ttlInSeconds?: number): Promise<void>;
|
|
13
15
|
unsafeGet(key: string): Promise<string | null>;
|
|
14
16
|
safeGet(key: string): Promise<string | null>;
|
|
15
17
|
safeBatchGet(keys: string[]): Promise<(string | null)[] | null>;
|
|
16
18
|
del(key: string): Promise<number>;
|
|
17
|
-
|
|
19
|
+
safeHmget(key: string, ...fields: string[]): Promise<(string | null)[] | null>;
|
|
20
|
+
safeLrange(key: string, start: number, stop: number): Promise<string[] | null>;
|
|
21
|
+
safeZcount(key: string, min: number | string, max: number | string): Promise<number>;
|
|
22
|
+
safeZrevrangebyscore(key: string, max: number | string, min: number | string, offsetCount?: {
|
|
23
|
+
offset: number;
|
|
24
|
+
count: number;
|
|
25
|
+
}): Promise<string[]>;
|
|
26
|
+
createPipeline(): ChainableCommander;
|
|
18
27
|
}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import Redis from 'ioredis';
|
|
2
2
|
import { Logger } from '../../helpers';
|
|
3
|
+
function shouldUseTls(host) {
|
|
4
|
+
return host.includes('clustercfg') || host.includes('cache.amazonaws.com');
|
|
5
|
+
}
|
|
3
6
|
export class RedisClient {
|
|
4
7
|
poolSize;
|
|
5
8
|
pool;
|
|
@@ -13,13 +16,15 @@ export class RedisClient {
|
|
|
13
16
|
}
|
|
14
17
|
createClient(host, port) {
|
|
15
18
|
try {
|
|
19
|
+
const useTls = shouldUseTls(host);
|
|
16
20
|
const client = new Redis({
|
|
17
|
-
host
|
|
18
|
-
port
|
|
21
|
+
host,
|
|
22
|
+
port,
|
|
19
23
|
maxRetriesPerRequest: 3,
|
|
20
24
|
commandTimeout: 3000,
|
|
21
25
|
lazyConnect: true,
|
|
22
26
|
keepAlive: 1000,
|
|
27
|
+
...(useTls && { tls: {} }),
|
|
23
28
|
});
|
|
24
29
|
return client;
|
|
25
30
|
}
|
|
@@ -46,6 +51,29 @@ export class RedisClient {
|
|
|
46
51
|
return;
|
|
47
52
|
}
|
|
48
53
|
}
|
|
54
|
+
async ensureConnected() {
|
|
55
|
+
const client = this.getClient();
|
|
56
|
+
if (client.status === 'ready')
|
|
57
|
+
return;
|
|
58
|
+
try {
|
|
59
|
+
await client.connect();
|
|
60
|
+
Logger.debug('Connected to Redis');
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
Logger.error('Error connecting to Redis:', { err });
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
async disconnect() {
|
|
67
|
+
try {
|
|
68
|
+
const client = this.getClient();
|
|
69
|
+
await client.quit();
|
|
70
|
+
Logger.debug('Disconnected from Redis');
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
Logger.error('Error disconnecting from Redis:', { err });
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
49
77
|
async safeSet(key, value, ttlInSeconds) {
|
|
50
78
|
try {
|
|
51
79
|
const client = this.getClient();
|
|
@@ -107,16 +135,52 @@ export class RedisClient {
|
|
|
107
135
|
return 0;
|
|
108
136
|
}
|
|
109
137
|
}
|
|
110
|
-
async
|
|
138
|
+
async safeHmget(key, ...fields) {
|
|
111
139
|
try {
|
|
112
140
|
const client = this.getClient();
|
|
113
|
-
await client.
|
|
114
|
-
Logger.debug('Disconnected from Redis');
|
|
141
|
+
return await client.hmget(key, ...fields);
|
|
115
142
|
}
|
|
116
143
|
catch (err) {
|
|
117
|
-
Logger.error('Error
|
|
118
|
-
return;
|
|
144
|
+
Logger.error('Error in hmget:', { err, key, fields });
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
async safeLrange(key, start, stop) {
|
|
149
|
+
try {
|
|
150
|
+
const client = this.getClient();
|
|
151
|
+
return await client.lrange(key, start, stop);
|
|
152
|
+
}
|
|
153
|
+
catch (err) {
|
|
154
|
+
Logger.error('Error in lrange:', { err, key, start, stop });
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
async safeZcount(key, min, max) {
|
|
159
|
+
try {
|
|
160
|
+
const client = this.getClient();
|
|
161
|
+
return await client.zcount(key, min, max);
|
|
119
162
|
}
|
|
163
|
+
catch (err) {
|
|
164
|
+
Logger.error('Error in zcount:', { err, key, min, max });
|
|
165
|
+
return 0;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
async safeZrevrangebyscore(key, max, min, offsetCount) {
|
|
169
|
+
try {
|
|
170
|
+
const client = this.getClient();
|
|
171
|
+
if (offsetCount) {
|
|
172
|
+
return await client.zrevrangebyscore(key, max, min, 'LIMIT', offsetCount.offset, offsetCount.count);
|
|
173
|
+
}
|
|
174
|
+
return await client.zrevrangebyscore(key, max, min);
|
|
175
|
+
}
|
|
176
|
+
catch (err) {
|
|
177
|
+
Logger.error('Error in zrevrangebyscore:', { err, key, max, min, offsetCount });
|
|
178
|
+
return [];
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
createPipeline() {
|
|
182
|
+
const client = this.getClient();
|
|
183
|
+
return client.pipeline();
|
|
120
184
|
}
|
|
121
185
|
}
|
|
122
186
|
//# sourceMappingURL=redis-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis-client.js","sourceRoot":"","sources":["../../../../src/clients/generic/redis-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"redis-client.js","sourceRoot":"","sources":["../../../../src/clients/generic/redis-client.ts"],"names":[],"mappings":"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"}
|