mormati-redis 0.1.16 → 0.1.17
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/modules/broadcast/publish.service.d.ts +3 -1
- package/dist/modules/broadcast/publish.service.js +8 -5
- package/dist/modules/broadcast/publish.service.js.map +1 -1
- package/dist/modules/broadcast/subscribe.service.d.ts +3 -1
- package/dist/modules/broadcast/subscribe.service.js +23 -20
- package/dist/modules/broadcast/subscribe.service.js.map +1 -1
- package/dist/modules/cache/cache.service.d.ts +3 -1
- package/dist/modules/cache/cache.service.js +14 -11
- package/dist/modules/cache/cache.service.js.map +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { RedisService } from '../redis/redis.service';
|
|
2
|
+
import { LoggerService } from 'mormati-common';
|
|
2
3
|
import { BroadcastStats } from './broadcast.type';
|
|
3
4
|
export declare class PublishService {
|
|
4
5
|
private readonly redisService;
|
|
6
|
+
private readonly loggerService;
|
|
5
7
|
private readonly serverId;
|
|
6
8
|
private publishedTotal;
|
|
7
9
|
private publishedToBroadcast;
|
|
8
10
|
private publishedToUser;
|
|
9
11
|
private publishedToRoom;
|
|
10
12
|
private publishedError;
|
|
11
|
-
constructor(redisService: RedisService);
|
|
13
|
+
constructor(redisService: RedisService, loggerService: LoggerService);
|
|
12
14
|
broadcastToAll(event: string, data: any): Promise<boolean>;
|
|
13
15
|
broadcastToRoom(room: string, event: string, data: any): Promise<boolean>;
|
|
14
16
|
broadcastToUser(userId: string, event: string, data: any): Promise<boolean>;
|
|
@@ -12,10 +12,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.PublishService = void 0;
|
|
13
13
|
const common_1 = require("@nestjs/common");
|
|
14
14
|
const redis_service_1 = require("../redis/redis.service");
|
|
15
|
+
const mormati_common_1 = require("mormati-common");
|
|
15
16
|
const broadcast_const_1 = require("./broadcast.const");
|
|
16
17
|
let PublishService = class PublishService {
|
|
17
|
-
constructor(redisService) {
|
|
18
|
+
constructor(redisService, loggerService) {
|
|
18
19
|
this.redisService = redisService;
|
|
20
|
+
this.loggerService = loggerService;
|
|
19
21
|
this.publishedTotal = 0;
|
|
20
22
|
this.publishedToBroadcast = 0;
|
|
21
23
|
this.publishedToUser = 0;
|
|
@@ -38,7 +40,7 @@ let PublishService = class PublishService {
|
|
|
38
40
|
return true;
|
|
39
41
|
}
|
|
40
42
|
catch (error) {
|
|
41
|
-
|
|
43
|
+
this.loggerService.error(error, "## Error: 'broadcastToAll' in PublishService");
|
|
42
44
|
this.publishedError++;
|
|
43
45
|
return false;
|
|
44
46
|
}
|
|
@@ -59,7 +61,7 @@ let PublishService = class PublishService {
|
|
|
59
61
|
return true;
|
|
60
62
|
}
|
|
61
63
|
catch (error) {
|
|
62
|
-
|
|
64
|
+
this.loggerService.error(error, "## Error: 'broadcastToRoom' in PublishService");
|
|
63
65
|
this.publishedError++;
|
|
64
66
|
return false;
|
|
65
67
|
}
|
|
@@ -80,7 +82,7 @@ let PublishService = class PublishService {
|
|
|
80
82
|
return true;
|
|
81
83
|
}
|
|
82
84
|
catch (error) {
|
|
83
|
-
|
|
85
|
+
this.loggerService.error(error, "## Error: 'broadcastToUser' in PublishService");
|
|
84
86
|
this.publishedError++;
|
|
85
87
|
return false;
|
|
86
88
|
}
|
|
@@ -117,6 +119,7 @@ let PublishService = class PublishService {
|
|
|
117
119
|
exports.PublishService = PublishService;
|
|
118
120
|
exports.PublishService = PublishService = __decorate([
|
|
119
121
|
(0, common_1.Injectable)(),
|
|
120
|
-
__metadata("design:paramtypes", [redis_service_1.RedisService
|
|
122
|
+
__metadata("design:paramtypes", [redis_service_1.RedisService,
|
|
123
|
+
mormati_common_1.LoggerService])
|
|
121
124
|
], PublishService);
|
|
122
125
|
//# sourceMappingURL=publish.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.service.js","sourceRoot":"","sources":["../../../../../libs/redis/src/modules/broadcast/publish.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,0DAAsD;
|
|
1
|
+
{"version":3,"file":"publish.service.js","sourceRoot":"","sources":["../../../../../libs/redis/src/modules/broadcast/publish.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { Server } from 'socket.io';
|
|
2
2
|
import { OnModuleInit, OnModuleDestroy } from '@nestjs/common';
|
|
3
3
|
import { RedisConnection } from '../redis/redis.connection';
|
|
4
|
+
import { LoggerService } from 'mormati-common';
|
|
4
5
|
export declare class SubscribeService implements OnModuleInit, OnModuleDestroy {
|
|
5
6
|
private readonly redisConnection;
|
|
7
|
+
private readonly loggerService;
|
|
6
8
|
private server;
|
|
7
9
|
private readonly subscriber;
|
|
8
|
-
constructor(redisConnection: RedisConnection);
|
|
10
|
+
constructor(redisConnection: RedisConnection, loggerService: LoggerService);
|
|
9
11
|
onModuleInit(): Promise<void>;
|
|
10
12
|
onModuleDestroy(): Promise<void>;
|
|
11
13
|
setServer(server: Server): void;
|
|
@@ -12,13 +12,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.SubscribeService = void 0;
|
|
13
13
|
const common_1 = require("@nestjs/common");
|
|
14
14
|
const redis_connection_1 = require("../redis/redis.connection");
|
|
15
|
+
const mormati_common_1 = require("mormati-common");
|
|
15
16
|
const broadcast_const_1 = require("./broadcast.const");
|
|
16
17
|
let SubscribeService = class SubscribeService {
|
|
17
|
-
constructor(redisConnection) {
|
|
18
|
+
constructor(redisConnection, loggerService) {
|
|
18
19
|
this.redisConnection = redisConnection;
|
|
19
|
-
|
|
20
|
+
this.loggerService = loggerService;
|
|
21
|
+
this.loggerService.log('[SubscribeService] Redis Pub/Sub Connection Initializing..');
|
|
20
22
|
this.subscriber = this.redisConnection.getClient().duplicate();
|
|
21
|
-
|
|
23
|
+
this.loggerService.log('[SubscribeService] Redis Pub/Sub Connection Initialized!');
|
|
22
24
|
}
|
|
23
25
|
async onModuleInit() {
|
|
24
26
|
const SUBSCRIBE_CHANNELS = [
|
|
@@ -26,7 +28,7 @@ let SubscribeService = class SubscribeService {
|
|
|
26
28
|
broadcast_const_1.BROADCAST_CHANNEL_ROOM,
|
|
27
29
|
broadcast_const_1.BROADCAST_CHANNEL_USER
|
|
28
30
|
];
|
|
29
|
-
|
|
31
|
+
this.loggerService.log('[SubscribeService] Redis Pub/Sub Channels Subscribing..');
|
|
30
32
|
await this.subscriber.subscribe(...SUBSCRIBE_CHANNELS);
|
|
31
33
|
this.subscriber.on('message', (channel, message) => {
|
|
32
34
|
switch (channel) {
|
|
@@ -40,10 +42,10 @@ let SubscribeService = class SubscribeService {
|
|
|
40
42
|
this.handleBroadcastRoomMessage(message);
|
|
41
43
|
break;
|
|
42
44
|
default:
|
|
43
|
-
|
|
45
|
+
this.loggerService.log('[SubscribeService] Redis Pub/Sub Unhandled incoming message');
|
|
44
46
|
}
|
|
45
47
|
});
|
|
46
|
-
|
|
48
|
+
this.loggerService.log('[SubscribeService] Redis Pub/Sub Channels Subscribed!');
|
|
47
49
|
}
|
|
48
50
|
async onModuleDestroy() {
|
|
49
51
|
const UNSUBSCRIBE_CHANNELS = [
|
|
@@ -51,52 +53,52 @@ let SubscribeService = class SubscribeService {
|
|
|
51
53
|
broadcast_const_1.BROADCAST_CHANNEL_ROOM,
|
|
52
54
|
broadcast_const_1.BROADCAST_CHANNEL_USER
|
|
53
55
|
];
|
|
54
|
-
|
|
56
|
+
this.loggerService.log('[SubscribeService] Redis Pub/Sub Channels Unsubscribing..');
|
|
55
57
|
await this.subscriber.unsubscribe(...UNSUBSCRIBE_CHANNELS);
|
|
56
58
|
await this.subscriber.quit();
|
|
57
|
-
|
|
59
|
+
this.loggerService.log('[SubscribeService] Redis Pub/Sub Channels Unsubscribed!');
|
|
58
60
|
}
|
|
59
61
|
setServer(server) {
|
|
60
|
-
|
|
62
|
+
this.loggerService.log('[SubscribeService] Redis Pub/Sub + WebSocket server Attaching..');
|
|
61
63
|
this.server = server;
|
|
62
|
-
|
|
64
|
+
this.loggerService.log('[SubscribeService] Redis Pub/Sub + WebSocket server Attached!');
|
|
63
65
|
}
|
|
64
66
|
handleBroadcastMessage(message) {
|
|
65
67
|
try {
|
|
66
68
|
if (!this.server) {
|
|
67
|
-
|
|
69
|
+
this.loggerService.log('[SubscribeService] Redis Pub/Sub + WebSocket server Not Attached, skipping broadcast! [1]');
|
|
68
70
|
return;
|
|
69
71
|
}
|
|
70
72
|
const parsed = JSON.parse(message);
|
|
71
73
|
const { event, data } = parsed;
|
|
72
74
|
this.server.emit(event, data);
|
|
73
75
|
if (data?.log)
|
|
74
|
-
|
|
76
|
+
this.loggerService.log(`[SubscribeService] Redis Pub/Sub Broadcasting to WebSocket! [Event: ${event}]`);
|
|
75
77
|
}
|
|
76
78
|
catch (error) {
|
|
77
|
-
|
|
79
|
+
this.loggerService.error(error, `[SubscribeService] Error while Redis Pub/Sub Broadcasting to WebSocket [1]'`);
|
|
78
80
|
}
|
|
79
81
|
}
|
|
80
82
|
handleBroadcastRoomMessage(message) {
|
|
81
83
|
try {
|
|
82
84
|
if (!this.server) {
|
|
83
|
-
|
|
85
|
+
this.loggerService.log('[SubscribeService] Redis Pub/Sub + WebSocket server Not Attached, skipping broadcast! [2]');
|
|
84
86
|
return;
|
|
85
87
|
}
|
|
86
88
|
const parsed = JSON.parse(message);
|
|
87
89
|
const { room, event, data } = parsed;
|
|
88
90
|
this.server.to(room).emit(event, data);
|
|
89
91
|
if (data?.log)
|
|
90
|
-
|
|
92
|
+
this.loggerService.log(`[SubscribeService] Redis Pub/Sub Broadcasting to WebSocket! [Event: ${event}] [Room: ${room}]`);
|
|
91
93
|
}
|
|
92
94
|
catch (error) {
|
|
93
|
-
|
|
95
|
+
this.loggerService.error(error, `[SubscribeService] Error while Redis Pub/Sub Broadcasting to WebSocket [2]'`);
|
|
94
96
|
}
|
|
95
97
|
}
|
|
96
98
|
handleUserBroadcastMessage(message) {
|
|
97
99
|
try {
|
|
98
100
|
if (!this.server) {
|
|
99
|
-
|
|
101
|
+
this.loggerService.log('[SubscribeService] Redis Pub/Sub + WebSocket server Not Attached, skipping broadcast! [3]');
|
|
100
102
|
return;
|
|
101
103
|
}
|
|
102
104
|
const parsed = JSON.parse(message);
|
|
@@ -106,16 +108,17 @@ let SubscribeService = class SubscribeService {
|
|
|
106
108
|
.filter((socket) => socket.data.userId === userId)
|
|
107
109
|
.forEach((socket) => socket.emit(event, data));
|
|
108
110
|
if (data?.log)
|
|
109
|
-
|
|
111
|
+
this.loggerService.log(`[SubscribeService] Redis Pub/Sub Broadcasting to WebSocket! [Event: ${event}] [User: ${userId}]`);
|
|
110
112
|
}
|
|
111
113
|
catch (error) {
|
|
112
|
-
|
|
114
|
+
this.loggerService.error(error, `[SubscribeService] Error while Redis Pub/Sub Broadcasting to WebSocket [3]'`);
|
|
113
115
|
}
|
|
114
116
|
}
|
|
115
117
|
};
|
|
116
118
|
exports.SubscribeService = SubscribeService;
|
|
117
119
|
exports.SubscribeService = SubscribeService = __decorate([
|
|
118
120
|
(0, common_1.Injectable)(),
|
|
119
|
-
__metadata("design:paramtypes", [redis_connection_1.RedisConnection
|
|
121
|
+
__metadata("design:paramtypes", [redis_connection_1.RedisConnection,
|
|
122
|
+
mormati_common_1.LoggerService])
|
|
120
123
|
], SubscribeService);
|
|
121
124
|
//# sourceMappingURL=subscribe.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscribe.service.js","sourceRoot":"","sources":["../../../../../libs/redis/src/modules/broadcast/subscribe.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,2CAA2E;AAC3E,gEAA4D;
|
|
1
|
+
{"version":3,"file":"subscribe.service.js","sourceRoot":"","sources":["../../../../../libs/redis/src/modules/broadcast/subscribe.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { RedisService } from '../redis/redis.service';
|
|
2
|
+
import { LoggerService } from 'mormati-common';
|
|
2
3
|
import { CacheKeyProps, CacheMetadata, CacheResultWithMetadata, CacheStats } from './cache.type';
|
|
3
4
|
export declare class CacheService {
|
|
4
5
|
private readonly redisService;
|
|
6
|
+
private readonly loggerService;
|
|
5
7
|
private readonly hashPrefix;
|
|
6
8
|
private cacheHits;
|
|
7
9
|
private cacheMisses;
|
|
8
10
|
private cacheErrors;
|
|
9
|
-
constructor(redisService: RedisService);
|
|
11
|
+
constructor(redisService: RedisService, loggerService: LoggerService);
|
|
10
12
|
generateCacheKey(props: CacheKeyProps): string;
|
|
11
13
|
setCache<T>(key: string, data: T): Promise<boolean>;
|
|
12
14
|
getCache<T>(key: string): Promise<T | null>;
|
|
@@ -12,11 +12,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.CacheService = void 0;
|
|
13
13
|
const common_1 = require("@nestjs/common");
|
|
14
14
|
const redis_service_1 = require("../redis/redis.service");
|
|
15
|
+
const mormati_common_1 = require("mormati-common");
|
|
15
16
|
const cache_utils_1 = require("./cache.utils");
|
|
16
17
|
const cache_const_1 = require("./cache.const");
|
|
17
18
|
let CacheService = class CacheService {
|
|
18
|
-
constructor(redisService) {
|
|
19
|
+
constructor(redisService, loggerService) {
|
|
19
20
|
this.redisService = redisService;
|
|
21
|
+
this.loggerService = loggerService;
|
|
20
22
|
this.hashPrefix = cache_const_1.CACHE_HASH_PREFIX;
|
|
21
23
|
this.cacheHits = 0;
|
|
22
24
|
this.cacheMisses = 0;
|
|
@@ -43,7 +45,7 @@ let CacheService = class CacheService {
|
|
|
43
45
|
return hashs.join(':');
|
|
44
46
|
}
|
|
45
47
|
catch (error) {
|
|
46
|
-
|
|
48
|
+
this.loggerService.error(error, "## Error: 'generateCacheKey' in CacheService");
|
|
47
49
|
this.cacheErrors++;
|
|
48
50
|
return `${this.hashPrefix}:error:${Date.now()}:${hashs.join(':')}`;
|
|
49
51
|
}
|
|
@@ -55,7 +57,7 @@ let CacheService = class CacheService {
|
|
|
55
57
|
return true;
|
|
56
58
|
}
|
|
57
59
|
catch (error) {
|
|
58
|
-
|
|
60
|
+
this.loggerService.error(error, "## Error: 'setCache' in CacheService");
|
|
59
61
|
this.cacheErrors++;
|
|
60
62
|
return false;
|
|
61
63
|
}
|
|
@@ -68,7 +70,7 @@ let CacheService = class CacheService {
|
|
|
68
70
|
return JSON.parse(cached);
|
|
69
71
|
}
|
|
70
72
|
catch (error) {
|
|
71
|
-
|
|
73
|
+
this.loggerService.error(error, "## Error: 'getCache' in CacheService");
|
|
72
74
|
this.cacheErrors++;
|
|
73
75
|
return null;
|
|
74
76
|
}
|
|
@@ -88,7 +90,7 @@ let CacheService = class CacheService {
|
|
|
88
90
|
return result;
|
|
89
91
|
}
|
|
90
92
|
catch (error) {
|
|
91
|
-
|
|
93
|
+
this.loggerService.error(error, "## Error: 'getCacheKeys' in CacheService");
|
|
92
94
|
this.cacheErrors++;
|
|
93
95
|
return result;
|
|
94
96
|
}
|
|
@@ -105,7 +107,7 @@ let CacheService = class CacheService {
|
|
|
105
107
|
return true;
|
|
106
108
|
}
|
|
107
109
|
catch (error) {
|
|
108
|
-
|
|
110
|
+
this.loggerService.error(error, "## Error: 'deleteCache' in CacheService");
|
|
109
111
|
this.cacheErrors++;
|
|
110
112
|
return false;
|
|
111
113
|
}
|
|
@@ -118,7 +120,7 @@ let CacheService = class CacheService {
|
|
|
118
120
|
return response.keys;
|
|
119
121
|
}
|
|
120
122
|
catch (error) {
|
|
121
|
-
|
|
123
|
+
this.loggerService.error(error, "## Error: 'deleteAllCacheByPattern' in CacheService");
|
|
122
124
|
this.cacheErrors++;
|
|
123
125
|
return [];
|
|
124
126
|
}
|
|
@@ -131,7 +133,7 @@ let CacheService = class CacheService {
|
|
|
131
133
|
return response.keys;
|
|
132
134
|
}
|
|
133
135
|
catch (error) {
|
|
134
|
-
|
|
136
|
+
this.loggerService.error(error, "## Error: 'deleteAllCache' in CacheService");
|
|
135
137
|
this.cacheErrors++;
|
|
136
138
|
return [];
|
|
137
139
|
}
|
|
@@ -145,7 +147,7 @@ let CacheService = class CacheService {
|
|
|
145
147
|
return await this.setCache(key, dataWithMetaData);
|
|
146
148
|
}
|
|
147
149
|
catch (error) {
|
|
148
|
-
|
|
150
|
+
this.loggerService.error(error, "## Error: 'setCacheWithMetadata' in CacheService");
|
|
149
151
|
this.cacheErrors++;
|
|
150
152
|
return false;
|
|
151
153
|
}
|
|
@@ -174,7 +176,7 @@ let CacheService = class CacheService {
|
|
|
174
176
|
return dataWithMetaData;
|
|
175
177
|
}
|
|
176
178
|
catch (error) {
|
|
177
|
-
|
|
179
|
+
this.loggerService.error(error, "## Error: 'getCacheWithMetadata' in CacheService");
|
|
178
180
|
this.cacheErrors++;
|
|
179
181
|
return null;
|
|
180
182
|
}
|
|
@@ -201,6 +203,7 @@ let CacheService = class CacheService {
|
|
|
201
203
|
exports.CacheService = CacheService;
|
|
202
204
|
exports.CacheService = CacheService = __decorate([
|
|
203
205
|
(0, common_1.Injectable)(),
|
|
204
|
-
__metadata("design:paramtypes", [redis_service_1.RedisService
|
|
206
|
+
__metadata("design:paramtypes", [redis_service_1.RedisService,
|
|
207
|
+
mormati_common_1.LoggerService])
|
|
205
208
|
], CacheService);
|
|
206
209
|
//# sourceMappingURL=cache.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.service.js","sourceRoot":"","sources":["../../../../../libs/redis/src/modules/cache/cache.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,0DAAsD;
|
|
1
|
+
{"version":3,"file":"cache.service.js","sourceRoot":"","sources":["../../../../../libs/redis/src/modules/cache/cache.service.ts"],"names":[],"mappings":"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"}
|