@edirect/redis 9.0.9 → 9.1.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.
@@ -1,155 +1,166 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.RedisService = void 0;
16
- const common_1 = require("@nestjs/common");
17
- const config_1 = require("@edirect/config");
18
- const logger_1 = require("@edirect/logger");
19
- const constants_1 = require("./constants");
20
- let RedisService = class RedisService {
21
- constructor(redisClient, configService, loggerService) {
22
- this.redisClient = redisClient;
23
- this.configService = configService;
24
- this.loggerService = loggerService;
25
- }
26
- get(key) {
27
- return new Promise((resolve, reject) => {
28
- this.redisClient.get(key, (error, data) => {
29
- if (error) {
30
- this.loggerService.error('Error when executing GET command in redis', JSON.stringify(error));
31
- return reject(error);
32
- }
33
- try {
34
- resolve(JSON.parse(data));
35
- }
36
- catch (_) {
37
- resolve(data);
38
- }
39
- });
40
- });
41
- }
42
- mget(keys) {
43
- return new Promise((resolve, reject) => {
44
- this.redisClient.mget(keys, (error, data) => {
45
- if (error) {
46
- this.loggerService.error('Error when executing MGET command in redis', JSON.stringify(error));
47
- return reject(error);
48
- }
49
- try {
50
- resolve(data.map((item) => JSON.parse(item)));
51
- }
52
- catch (_) {
53
- resolve(data);
54
- }
55
- });
56
- });
57
- }
58
- hget(hash, field) {
59
- return new Promise((resolve, reject) => {
60
- this.redisClient.hget(hash, field, (error, data) => {
61
- if (error) {
62
- this.loggerService.error('Error when executing HGET command in redis', JSON.stringify(error));
63
- return reject(error);
64
- }
65
- return resolve(data);
66
- });
67
- });
68
- }
69
- hgetall(hash) {
70
- return new Promise((resolve, reject) => {
71
- this.redisClient.hgetall(hash, (error, data) => {
72
- if (error) {
73
- this.loggerService.error('Error when executing HGETALL command in redis', JSON.stringify(error));
74
- return reject(error);
75
- }
76
- return resolve(data);
77
- });
78
- });
79
- }
80
- set(key, data, ttl) {
81
- return new Promise((resolve, reject) => {
82
- if (data instanceof Object)
83
- data = JSON.stringify(data);
84
- if (!ttl)
85
- ttl = parseInt(this.configService.get('REDIS_TTL') || '0', 10);
86
- if (ttl > 0)
87
- return this.redisClient.set(key, data, 'EX', ttl, (error) => {
88
- if (error) {
89
- this.loggerService.error('Error when executing SET command in redis', JSON.stringify(error));
90
- return reject(error);
91
- }
92
- return resolve();
93
- });
94
- this.redisClient.set(key, data, (error) => {
95
- if (error) {
96
- return reject(error);
97
- }
98
- return resolve();
99
- });
100
- });
101
- }
102
- del(key) {
103
- return new Promise((resolve, reject) => {
104
- this.redisClient.del(key, (error) => {
105
- if (error) {
106
- this.loggerService.error('Error when executing DEL command in redis', JSON.stringify(error));
107
- return reject(error);
108
- }
109
- return resolve();
110
- });
111
- });
112
- }
113
- setnx(key, data) {
114
- return new Promise((resolve, reject) => {
115
- if (data instanceof Object)
116
- data = JSON.stringify(data);
117
- this.redisClient.setnx(key, data, (error, res) => {
118
- if (error) {
119
- this.loggerService.error('Error when executing SETNX command in redis', JSON.stringify(error));
120
- return reject(error);
121
- }
122
- return resolve(res === 1);
123
- });
124
- });
125
- }
126
- ping() {
127
- return this.redisClient.connected;
128
- }
129
- keys(key) {
130
- return new Promise((resolve, reject) => {
131
- this.redisClient.keys(key, (error, data) => {
132
- if (error) {
133
- this.loggerService.error('Error when executing KEYS command in redis', JSON.stringify(error));
134
- return reject(error);
135
- }
136
- try {
137
- resolve(JSON.parse(data));
138
- }
139
- catch (_) {
140
- resolve(data);
141
- }
142
- });
143
- });
144
- }
145
- };
146
- RedisService = __decorate([
147
- (0, common_1.Injectable)(),
148
- __param(0, (0, common_1.Inject)(constants_1.REDIS_CLIENT_KEY)),
149
- __param(1, (0, common_1.Inject)(config_1.ConfigService)),
150
- __param(2, (0, common_1.Inject)(logger_1.LoggerService)),
151
- __metadata("design:paramtypes", [Object, config_1.ConfigService,
152
- logger_1.LoggerService])
153
- ], RedisService);
154
- exports.RedisService = RedisService;
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.RedisService = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const config_1 = require("@edirect/config");
18
+ const logger_1 = require("@edirect/logger");
19
+ const constants_1 = require("./constants");
20
+ let RedisService = class RedisService {
21
+ constructor(redisClient, configService, loggerService) {
22
+ this.redisClient = redisClient;
23
+ this.configService = configService;
24
+ this.loggerService = loggerService;
25
+ }
26
+ get(key) {
27
+ return new Promise((resolve, reject) => {
28
+ this.redisClient.get(key, (error, data) => {
29
+ if (error) {
30
+ this.loggerService.error('Error when executing GET command in redis', JSON.stringify(error));
31
+ return reject(error);
32
+ }
33
+ try {
34
+ resolve(JSON.parse(data));
35
+ }
36
+ catch (_) {
37
+ resolve(data);
38
+ }
39
+ });
40
+ });
41
+ }
42
+ mget(keys) {
43
+ return new Promise((resolve, reject) => {
44
+ this.redisClient.mget(keys, (error, data) => {
45
+ if (error) {
46
+ this.loggerService.error('Error when executing MGET command in redis', JSON.stringify(error));
47
+ return reject(error);
48
+ }
49
+ try {
50
+ resolve(data.map((item) => JSON.parse(item)));
51
+ }
52
+ catch (_) {
53
+ resolve(data);
54
+ }
55
+ });
56
+ });
57
+ }
58
+ hget(hash, field) {
59
+ return new Promise((resolve, reject) => {
60
+ this.redisClient.hget(hash, field, (error, data) => {
61
+ if (error) {
62
+ this.loggerService.error('Error when executing HGET command in redis', JSON.stringify(error));
63
+ return reject(error);
64
+ }
65
+ return resolve(data);
66
+ });
67
+ });
68
+ }
69
+ hgetall(hash) {
70
+ return new Promise((resolve, reject) => {
71
+ this.redisClient.hgetall(hash, (error, data) => {
72
+ if (error) {
73
+ this.loggerService.error('Error when executing HGETALL command in redis', JSON.stringify(error));
74
+ return reject(error);
75
+ }
76
+ return resolve(data);
77
+ });
78
+ });
79
+ }
80
+ set(key, data, ttl) {
81
+ return new Promise((resolve, reject) => {
82
+ if (data instanceof Object)
83
+ data = JSON.stringify(data);
84
+ if (!ttl)
85
+ ttl = parseInt(this.configService.get('REDIS_TTL') || '0', 10);
86
+ if (ttl > 0)
87
+ return this.redisClient.set(key, data, 'EX', ttl, (error) => {
88
+ if (error) {
89
+ this.loggerService.error('Error when executing SET command in redis', JSON.stringify(error));
90
+ return reject(error);
91
+ }
92
+ return resolve();
93
+ });
94
+ this.redisClient.set(key, data, (error) => {
95
+ if (error) {
96
+ return reject(error);
97
+ }
98
+ return resolve();
99
+ });
100
+ });
101
+ }
102
+ del(key) {
103
+ return new Promise((resolve, reject) => {
104
+ this.redisClient.del(key, (error) => {
105
+ if (error) {
106
+ this.loggerService.error('Error when executing DEL command in redis', JSON.stringify(error));
107
+ return reject(error);
108
+ }
109
+ return resolve();
110
+ });
111
+ });
112
+ }
113
+ setnx(key, data) {
114
+ return new Promise((resolve, reject) => {
115
+ if (data instanceof Object)
116
+ data = JSON.stringify(data);
117
+ this.redisClient.setnx(key, data, (error, res) => {
118
+ if (error) {
119
+ this.loggerService.error('Error when executing SETNX command in redis', JSON.stringify(error));
120
+ return reject(error);
121
+ }
122
+ return resolve(res === 1);
123
+ });
124
+ });
125
+ }
126
+ ping() {
127
+ return this.redisClient.connected;
128
+ }
129
+ asyncPing() {
130
+ return new Promise((resolve, reject) => {
131
+ this.redisClient.ping((error, res) => {
132
+ if (error) {
133
+ this.loggerService.error('Error when executing PING command in redis', JSON.stringify(error));
134
+ return reject(error);
135
+ }
136
+ return resolve(res === 'PONG');
137
+ });
138
+ });
139
+ }
140
+ keys(key) {
141
+ return new Promise((resolve, reject) => {
142
+ this.redisClient.keys(key, (error, data) => {
143
+ if (error) {
144
+ this.loggerService.error('Error when executing KEYS command in redis', JSON.stringify(error));
145
+ return reject(error);
146
+ }
147
+ try {
148
+ resolve(JSON.parse(data));
149
+ }
150
+ catch (_) {
151
+ resolve(data);
152
+ }
153
+ });
154
+ });
155
+ }
156
+ };
157
+ RedisService = __decorate([
158
+ (0, common_1.Injectable)(),
159
+ __param(0, (0, common_1.Inject)(constants_1.REDIS_CLIENT_KEY)),
160
+ __param(1, (0, common_1.Inject)(config_1.ConfigService)),
161
+ __param(2, (0, common_1.Inject)(logger_1.LoggerService)),
162
+ __metadata("design:paramtypes", [Object, config_1.ConfigService,
163
+ logger_1.LoggerService])
164
+ ], RedisService);
165
+ exports.RedisService = RedisService;
155
166
  //# sourceMappingURL=redis.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"redis.service.js","sourceRoot":"","sources":["../src/redis.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redis.service.js","sourceRoot":"","sources":["../src/redis.service.ts"],"names":[],"mappings":"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"}