pp-command-bus 1.1.0 → 1.2.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/command-bus/command-bus.spec.js +17 -3
- package/dist/command-bus/command-bus.spec.js.map +1 -1
- package/dist/command-bus/config/command-bus-config.d.ts +6 -0
- package/dist/command-bus/config/command-bus-config.js +4 -0
- package/dist/command-bus/config/command-bus-config.js.map +1 -1
- package/dist/command-bus/index.d.ts +1 -2
- package/dist/command-bus/index.js +15 -12
- package/dist/command-bus/index.js.map +1 -1
- package/dist/command-bus/job/job-processor.d.ts +10 -10
- package/dist/command-bus/job/job-processor.js +28 -113
- package/dist/command-bus/job/job-processor.js.map +1 -1
- package/dist/command-bus/job/job-processor.spec.js +28 -107
- package/dist/command-bus/job/job-processor.spec.js.map +1 -1
- package/dist/command-bus/rpc/index.d.ts +3 -0
- package/dist/command-bus/rpc/index.js +4 -1
- package/dist/command-bus/rpc/index.js.map +1 -1
- package/dist/command-bus/rpc/payload-compression.service.d.ts +32 -0
- package/dist/command-bus/rpc/payload-compression.service.js +109 -0
- package/dist/command-bus/rpc/payload-compression.service.js.map +1 -0
- package/dist/command-bus/rpc/payload-compression.service.spec.js +233 -0
- package/dist/command-bus/rpc/payload-compression.service.spec.js.map +1 -0
- package/dist/command-bus/rpc/rpc-coordinator.d.ts +35 -16
- package/dist/command-bus/rpc/rpc-coordinator.js +138 -89
- package/dist/command-bus/rpc/rpc-coordinator.js.map +1 -1
- package/dist/command-bus/rpc/rpc-coordinator.spec.js +195 -431
- package/dist/command-bus/rpc/rpc-coordinator.spec.js.map +1 -1
- package/dist/command-bus/types/index.d.ts +6 -4
- package/dist/command-bus/worker/worker-benchmark.d.ts +2 -1
- package/dist/command-bus/worker/worker-benchmark.js +34 -41
- package/dist/command-bus/worker/worker-benchmark.js.map +1 -1
- package/dist/command-bus/worker/worker-benchmark.spec.js +25 -15
- package/dist/command-bus/worker/worker-benchmark.spec.js.map +1 -1
- package/dist/command-bus/worker/worker-metrics-collector.d.ts +60 -49
- package/dist/command-bus/worker/worker-metrics-collector.js +176 -193
- package/dist/command-bus/worker/worker-metrics-collector.js.map +1 -1
- package/dist/command-bus/worker/worker-orchestrator.d.ts +1 -1
- package/dist/command-bus/worker/worker-orchestrator.js +20 -25
- package/dist/command-bus/worker/worker-orchestrator.js.map +1 -1
- package/dist/command-bus/worker/worker-orchestrator.spec.js +32 -28
- package/dist/command-bus/worker/worker-orchestrator.spec.js.map +1 -1
- package/dist/pp-command-bus-1.2.1.tgz +0 -0
- package/package.json +1 -1
- package/dist/command-bus/worker/worker-metrics-collector.spec.js +0 -315
- package/dist/command-bus/worker/worker-metrics-collector.spec.js.map +0 -1
- package/dist/pp-command-bus-1.1.0.tgz +0 -0
- /package/dist/command-bus/{worker/worker-metrics-collector.spec.d.ts → rpc/payload-compression.service.spec.d.ts} +0 -0
|
@@ -24,11 +24,11 @@ class TestCommand extends command_1.default {
|
|
|
24
24
|
describe('JobProcessor', () => {
|
|
25
25
|
let jobProcessor;
|
|
26
26
|
let mockCommandHandlers;
|
|
27
|
-
let
|
|
27
|
+
let mockRedisConnection;
|
|
28
28
|
let mockLogger;
|
|
29
29
|
let mockJobOptionsBuilder;
|
|
30
|
+
let mockCompressionService;
|
|
30
31
|
let mockCommandLogger;
|
|
31
|
-
let mockReplyQueue;
|
|
32
32
|
beforeEach(() => {
|
|
33
33
|
jest.clearAllMocks();
|
|
34
34
|
mockLogger = {
|
|
@@ -37,22 +37,24 @@ describe('JobProcessor', () => {
|
|
|
37
37
|
warn: jest.fn(),
|
|
38
38
|
debug: jest.fn(),
|
|
39
39
|
};
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
close: jest.fn().mockResolvedValue(undefined),
|
|
43
|
-
};
|
|
44
|
-
mockQueueManager = {
|
|
45
|
-
createQueue: jest.fn().mockReturnValue(mockReplyQueue),
|
|
46
|
-
queueExists: jest.fn().mockResolvedValue(true), // Domyślnie kolejka istnieje
|
|
40
|
+
mockRedisConnection = {
|
|
41
|
+
publish: jest.fn().mockResolvedValue(1), // Redis publish zwraca liczbę subscribers
|
|
47
42
|
};
|
|
48
43
|
mockJobOptionsBuilder = {
|
|
49
44
|
buildRpcReplyOptions: jest.fn().mockReturnValue({}),
|
|
50
45
|
};
|
|
46
|
+
mockCompressionService = {
|
|
47
|
+
compress: jest.fn().mockImplementation((payload) => Promise.resolve({
|
|
48
|
+
data: JSON.stringify(payload),
|
|
49
|
+
compressed: false,
|
|
50
|
+
})),
|
|
51
|
+
decompress: jest.fn().mockResolvedValue({}),
|
|
52
|
+
};
|
|
51
53
|
mockCommandLogger = {
|
|
52
54
|
logCommand: jest.fn().mockResolvedValue(undefined),
|
|
53
55
|
};
|
|
54
56
|
mockCommandHandlers = {};
|
|
55
|
-
jobProcessor = new job_processor_1.default(mockCommandHandlers,
|
|
57
|
+
jobProcessor = new job_processor_1.default(mockCommandHandlers, mockRedisConnection, mockLogger, mockJobOptionsBuilder, mockCompressionService, mockCommandLogger);
|
|
56
58
|
});
|
|
57
59
|
describe('process - standardowy job', () => {
|
|
58
60
|
it('powinno przetworzyć komendę i wywołać handler', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -148,8 +150,9 @@ describe('JobProcessor', () => {
|
|
|
148
150
|
mockCommandHandlers[commandName] = mockHandler;
|
|
149
151
|
const rpcMetadata = {
|
|
150
152
|
correlationId: 'correlation-123',
|
|
151
|
-
|
|
153
|
+
responseChannel: 'rpc:response:test',
|
|
152
154
|
timestamp: Date.now(),
|
|
155
|
+
compressed: true,
|
|
153
156
|
};
|
|
154
157
|
const job = {
|
|
155
158
|
id: 'job-123',
|
|
@@ -160,21 +163,15 @@ describe('JobProcessor', () => {
|
|
|
160
163
|
const actualResult = yield jobProcessor.process(job, commandName);
|
|
161
164
|
// Then
|
|
162
165
|
expect(actualResult).toEqual(result);
|
|
163
|
-
expect(
|
|
164
|
-
expect(mockReplyQueue.add).toHaveBeenCalledWith('rpc-response', {
|
|
166
|
+
expect(mockRedisConnection.publish).toHaveBeenCalledWith('rpc:response:test', JSON.stringify({
|
|
165
167
|
correlationId: 'correlation-123',
|
|
166
168
|
result,
|
|
167
169
|
error: null,
|
|
168
|
-
}, {});
|
|
169
|
-
expect(mockLogger.debug).toHaveBeenCalledWith('Odpowiedź RPC wysłana', expect.objectContaining({
|
|
170
|
-
commandName,
|
|
171
|
-
correlationId: 'correlation-123',
|
|
172
170
|
}));
|
|
173
|
-
|
|
174
|
-
expect(mockReplyQueue.close).toHaveBeenCalled();
|
|
175
|
-
expect(mockLogger.debug).toHaveBeenCalledWith('Tymczasowa kolejka RPC zamknięta', expect.objectContaining({
|
|
171
|
+
expect(mockLogger.debug).toHaveBeenCalledWith('Odpowiedź RPC opublikowana przez Pub/Sub', expect.objectContaining({
|
|
176
172
|
commandName,
|
|
177
173
|
correlationId: 'correlation-123',
|
|
174
|
+
responseChannel: 'rpc:response:test',
|
|
178
175
|
}));
|
|
179
176
|
}));
|
|
180
177
|
it('powinno wysłać błąd RPC gdy handler rzuci błąd', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -186,8 +183,9 @@ describe('JobProcessor', () => {
|
|
|
186
183
|
mockCommandHandlers[commandName] = mockHandler;
|
|
187
184
|
const rpcMetadata = {
|
|
188
185
|
correlationId: 'correlation-123',
|
|
189
|
-
|
|
186
|
+
responseChannel: 'rpc:response:test',
|
|
190
187
|
timestamp: Date.now(),
|
|
188
|
+
compressed: true,
|
|
191
189
|
};
|
|
192
190
|
const job = {
|
|
193
191
|
id: 'job-123',
|
|
@@ -196,21 +194,10 @@ describe('JobProcessor', () => {
|
|
|
196
194
|
};
|
|
197
195
|
// When & Then
|
|
198
196
|
yield expect(jobProcessor.process(job, commandName)).rejects.toThrow('Handler failed');
|
|
199
|
-
expect(
|
|
197
|
+
expect(mockRedisConnection.publish).toHaveBeenCalledWith('rpc:response:test', JSON.stringify({
|
|
200
198
|
correlationId: 'correlation-123',
|
|
201
199
|
result: null,
|
|
202
200
|
error: 'Handler failed',
|
|
203
|
-
}, {});
|
|
204
|
-
expect(mockLogger.error).toHaveBeenCalledWith('Błąd RPC wysłany do nadawcy', expect.objectContaining({
|
|
205
|
-
commandName,
|
|
206
|
-
correlationId: 'correlation-123',
|
|
207
|
-
error: 'Handler failed',
|
|
208
|
-
}));
|
|
209
|
-
// Weryfikacja że kolejka została zamknięta nawet przy błędzie
|
|
210
|
-
expect(mockReplyQueue.close).toHaveBeenCalled();
|
|
211
|
-
expect(mockLogger.debug).toHaveBeenCalledWith('Tymczasowa kolejka RPC zamknięta (po błędzie)', expect.objectContaining({
|
|
212
|
-
commandName,
|
|
213
|
-
correlationId: 'correlation-123',
|
|
214
201
|
}));
|
|
215
202
|
}));
|
|
216
203
|
it('powinno zalogować błąd gdy nie udało się wysłać odpowiedzi RPC', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -220,12 +207,13 @@ describe('JobProcessor', () => {
|
|
|
220
207
|
const result = { success: true };
|
|
221
208
|
const mockHandler = jest.fn().mockResolvedValue(result);
|
|
222
209
|
mockCommandHandlers[commandName] = mockHandler;
|
|
223
|
-
const
|
|
224
|
-
|
|
210
|
+
const publishError = new Error('Redis publish error');
|
|
211
|
+
mockRedisConnection.publish.mockRejectedValueOnce(publishError);
|
|
225
212
|
const rpcMetadata = {
|
|
226
213
|
correlationId: 'correlation-123',
|
|
227
|
-
|
|
214
|
+
responseChannel: 'rpc:response:test',
|
|
228
215
|
timestamp: Date.now(),
|
|
216
|
+
compressed: true,
|
|
229
217
|
};
|
|
230
218
|
const job = {
|
|
231
219
|
id: 'job-123',
|
|
@@ -235,80 +223,13 @@ describe('JobProcessor', () => {
|
|
|
235
223
|
// When
|
|
236
224
|
yield jobProcessor.process(job, commandName);
|
|
237
225
|
// Then
|
|
238
|
-
expect(mockLogger.error).toHaveBeenCalledWith('Nie udało się
|
|
226
|
+
expect(mockLogger.error).toHaveBeenCalledWith('Nie udało się opublikować odpowiedzi RPC', expect.objectContaining({
|
|
239
227
|
commandName,
|
|
240
228
|
correlationId: 'correlation-123',
|
|
241
|
-
error: '
|
|
242
|
-
}));
|
|
243
|
-
}));
|
|
244
|
-
it('NIE powinno wysyłać odpowiedzi RPC gdy kolejka odpowiedzi już nie istnieje', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
245
|
-
// Given
|
|
246
|
-
const command = new TestCommand('test data');
|
|
247
|
-
const commandName = 'TestCommand';
|
|
248
|
-
const result = { success: true };
|
|
249
|
-
const mockHandler = jest.fn().mockResolvedValue(result);
|
|
250
|
-
mockCommandHandlers[commandName] = mockHandler;
|
|
251
|
-
// Mock queueExists - kolejka nie istnieje (timeout usunął)
|
|
252
|
-
mockQueueManager.queueExists = jest.fn().mockResolvedValue(false);
|
|
253
|
-
const rpcMetadata = {
|
|
254
|
-
correlationId: 'correlation-timeout',
|
|
255
|
-
replyQueue: 'rpc-reply-timeout',
|
|
256
|
-
timestamp: Date.now(),
|
|
257
|
-
};
|
|
258
|
-
const job = {
|
|
259
|
-
id: 'job-123',
|
|
260
|
-
data: Object.assign(Object.assign({}, command), { __rpcMetadata: rpcMetadata }),
|
|
261
|
-
attemptsMade: 0,
|
|
262
|
-
};
|
|
263
|
-
// When
|
|
264
|
-
const actualResult = yield jobProcessor.process(job, commandName);
|
|
265
|
-
// Then
|
|
266
|
-
expect(actualResult).toEqual(result);
|
|
267
|
-
expect(mockQueueManager.queueExists).toHaveBeenCalledWith('rpc-reply-timeout');
|
|
268
|
-
// Nie powinno próbować tworzyć kolejki
|
|
269
|
-
expect(mockQueueManager.createQueue).not.toHaveBeenCalled();
|
|
270
|
-
// Nie powinno próbować wysyłać odpowiedzi
|
|
271
|
-
expect(mockReplyQueue.add).not.toHaveBeenCalled();
|
|
272
|
-
// Powinno zalogować warning
|
|
273
|
-
expect(mockLogger.warn).toHaveBeenCalledWith('Kolejka odpowiedzi RPC już nie istnieje - pomijam wysyłkę', expect.objectContaining({
|
|
274
|
-
commandName,
|
|
275
|
-
correlationId: 'correlation-timeout',
|
|
276
|
-
replyQueue: 'rpc-reply-timeout',
|
|
277
|
-
}));
|
|
278
|
-
}));
|
|
279
|
-
it('NIE powinno wysyłać błędu RPC gdy kolejka odpowiedzi już nie istnieje', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
280
|
-
// Given
|
|
281
|
-
const command = new TestCommand('test data');
|
|
282
|
-
const commandName = 'TestCommand';
|
|
283
|
-
const handlerError = new Error('Handler failed');
|
|
284
|
-
const mockHandler = jest.fn().mockRejectedValue(handlerError);
|
|
285
|
-
mockCommandHandlers[commandName] = mockHandler;
|
|
286
|
-
// Mock queueExists - kolejka nie istnieje (timeout usunął)
|
|
287
|
-
mockQueueManager.queueExists = jest.fn().mockResolvedValue(false);
|
|
288
|
-
const rpcMetadata = {
|
|
289
|
-
correlationId: 'correlation-timeout',
|
|
290
|
-
replyQueue: 'rpc-reply-timeout',
|
|
291
|
-
timestamp: Date.now(),
|
|
292
|
-
};
|
|
293
|
-
const job = {
|
|
294
|
-
id: 'job-123',
|
|
295
|
-
data: Object.assign(Object.assign({}, command), { __rpcMetadata: rpcMetadata }),
|
|
296
|
-
attemptsMade: 0,
|
|
297
|
-
};
|
|
298
|
-
// When & Then
|
|
299
|
-
yield expect(jobProcessor.process(job, commandName)).rejects.toThrow('Handler failed');
|
|
300
|
-
expect(mockQueueManager.queueExists).toHaveBeenCalledWith('rpc-reply-timeout');
|
|
301
|
-
// Nie powinno próbować tworzyć kolejki
|
|
302
|
-
expect(mockQueueManager.createQueue).not.toHaveBeenCalled();
|
|
303
|
-
// Nie powinno próbować wysyłać błędu
|
|
304
|
-
expect(mockReplyQueue.add).not.toHaveBeenCalled();
|
|
305
|
-
// Powinno zalogować warning
|
|
306
|
-
expect(mockLogger.warn).toHaveBeenCalledWith('Kolejka odpowiedzi RPC już nie istnieje - pomijam wysyłkę błędu', expect.objectContaining({
|
|
307
|
-
commandName,
|
|
308
|
-
correlationId: 'correlation-timeout',
|
|
309
|
-
replyQueue: 'rpc-reply-timeout',
|
|
229
|
+
error: 'Redis publish error',
|
|
310
230
|
}));
|
|
311
231
|
}));
|
|
232
|
+
// Testy dla queueExists zostały usunięte - Pub/Sub nie wymaga sprawdzania istnienia kolejki
|
|
312
233
|
});
|
|
313
234
|
describe('rekonstrukcja dat', () => {
|
|
314
235
|
it('powinno zrekonstruować daty w komendzie', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -344,7 +265,7 @@ describe('JobProcessor', () => {
|
|
|
344
265
|
describe('process bez commandLogger', () => {
|
|
345
266
|
it('powinno działać gdy commandLogger nie jest dostępny', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
346
267
|
// Given
|
|
347
|
-
const jobProcessorWithoutLogger = new job_processor_1.default(mockCommandHandlers,
|
|
268
|
+
const jobProcessorWithoutLogger = new job_processor_1.default(mockCommandHandlers, mockRedisConnection, mockLogger, mockJobOptionsBuilder, mockCompressionService);
|
|
348
269
|
const command = new TestCommand('test data');
|
|
349
270
|
const commandName = 'TestCommand';
|
|
350
271
|
const mockHandler = jest.fn().mockResolvedValue({ success: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-processor.spec.js","sourceRoot":"","sources":["../../../src/command-bus/job/job-processor.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"job-processor.spec.js","sourceRoot":"","sources":["../../../src/command-bus/job/job-processor.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Moduł RPC (Request-Response Pattern)
|
|
3
3
|
* Eksportuje RpcCoordinator do zarządzania wywołaniami RPC
|
|
4
|
+
* Eksportuje PayloadCompressionService do kompresji payloadów
|
|
4
5
|
*/
|
|
5
6
|
export { default as RpcCoordinator } from './rpc-coordinator';
|
|
7
|
+
export { default as PayloadCompressionService } from './payload-compression.service';
|
|
8
|
+
export type { CompressionResult } from './payload-compression.service';
|
|
@@ -3,11 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.RpcCoordinator = void 0;
|
|
6
|
+
exports.PayloadCompressionService = exports.RpcCoordinator = void 0;
|
|
7
7
|
/**
|
|
8
8
|
* Moduł RPC (Request-Response Pattern)
|
|
9
9
|
* Eksportuje RpcCoordinator do zarządzania wywołaniami RPC
|
|
10
|
+
* Eksportuje PayloadCompressionService do kompresji payloadów
|
|
10
11
|
*/
|
|
11
12
|
var rpc_coordinator_1 = require("./rpc-coordinator");
|
|
12
13
|
Object.defineProperty(exports, "RpcCoordinator", { enumerable: true, get: function () { return __importDefault(rpc_coordinator_1).default; } });
|
|
14
|
+
var payload_compression_service_1 = require("./payload-compression.service");
|
|
15
|
+
Object.defineProperty(exports, "PayloadCompressionService", { enumerable: true, get: function () { return __importDefault(payload_compression_service_1).default; } });
|
|
13
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/command-bus/rpc/index.ts"],"names":[],"mappings":";;;;;;AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/command-bus/rpc/index.ts"],"names":[],"mappings":";;;;;;AAAA;;;;GAIG;AACH,qDAA8D;AAArD,kIAAA,OAAO,OAAkB;AAClC,6EAAqF;AAA5E,yJAAA,OAAO,OAA6B"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { ILogger } from '../../shared/types';
|
|
2
|
+
/**
|
|
3
|
+
* Wynik kompresji payloadu
|
|
4
|
+
*/
|
|
5
|
+
export interface CompressionResult {
|
|
6
|
+
data: string;
|
|
7
|
+
compressed: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Serwis kompresji payloadów RPC
|
|
11
|
+
* Automatycznie kompresuje payloady większe niż threshold za pomocą gzip (async)
|
|
12
|
+
* Używa async gzip aby nie blokować event loop Node.js
|
|
13
|
+
*/
|
|
14
|
+
export default class PayloadCompressionService {
|
|
15
|
+
private readonly threshold;
|
|
16
|
+
private readonly logger;
|
|
17
|
+
constructor(threshold: number, logger: ILogger);
|
|
18
|
+
/**
|
|
19
|
+
* Kompresuje payload jeśli przekracza threshold (async - nie blokuje event loop)
|
|
20
|
+
* @param payload - Dane do kompresji
|
|
21
|
+
* @returns Promise z obiektem zawierającym data (JSON lub base64 gzip) i flagą compressed
|
|
22
|
+
*/
|
|
23
|
+
compress(payload: unknown): Promise<CompressionResult>;
|
|
24
|
+
/**
|
|
25
|
+
* Dekompresuje payload na podstawie flagi compressed (async - nie blokuje event loop)
|
|
26
|
+
* @param data - Dane do dekompresji (JSON string lub base64 gzip)
|
|
27
|
+
* @param compressed - Czy dane są skompresowane
|
|
28
|
+
* @returns Promise ze zdeserializowanym obiektem
|
|
29
|
+
* @throws Error jeśli dekompresja lub parsowanie się nie powiedzie
|
|
30
|
+
*/
|
|
31
|
+
decompress(data: string, compressed: boolean): Promise<unknown>;
|
|
32
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const zlib_1 = require("zlib");
|
|
13
|
+
const util_1 = require("util");
|
|
14
|
+
/**
|
|
15
|
+
* Async wersje funkcji zlib (nie blokują event loop)
|
|
16
|
+
*/
|
|
17
|
+
const gzipAsync = (0, util_1.promisify)(zlib_1.gzip);
|
|
18
|
+
const gunzipAsync = (0, util_1.promisify)(zlib_1.gunzip);
|
|
19
|
+
/**
|
|
20
|
+
* Serwis kompresji payloadów RPC
|
|
21
|
+
* Automatycznie kompresuje payloady większe niż threshold za pomocą gzip (async)
|
|
22
|
+
* Używa async gzip aby nie blokować event loop Node.js
|
|
23
|
+
*/
|
|
24
|
+
class PayloadCompressionService {
|
|
25
|
+
constructor(threshold, logger) {
|
|
26
|
+
this.threshold = threshold;
|
|
27
|
+
this.logger = logger;
|
|
28
|
+
this.logger.debug('PayloadCompressionService utworzony', {
|
|
29
|
+
threshold: `${threshold} bytes`,
|
|
30
|
+
timestamp: new Date().toISOString(),
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Kompresuje payload jeśli przekracza threshold (async - nie blokuje event loop)
|
|
35
|
+
* @param payload - Dane do kompresji
|
|
36
|
+
* @returns Promise z obiektem zawierającym data (JSON lub base64 gzip) i flagą compressed
|
|
37
|
+
*/
|
|
38
|
+
compress(payload) {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
// Serializuj do JSON
|
|
41
|
+
const json = JSON.stringify(payload);
|
|
42
|
+
const originalSize = Buffer.byteLength(json, 'utf8');
|
|
43
|
+
// Sprawdź czy przekracza threshold
|
|
44
|
+
if (originalSize <= this.threshold) {
|
|
45
|
+
this.logger.debug('Payload NIE skompresowany (poniżej threshold)', {
|
|
46
|
+
originalSize,
|
|
47
|
+
threshold: this.threshold,
|
|
48
|
+
timestamp: new Date().toISOString(),
|
|
49
|
+
});
|
|
50
|
+
return {
|
|
51
|
+
data: json,
|
|
52
|
+
compressed: false,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
// Kompresuj gzip (async - nie blokuje event loop)
|
|
56
|
+
const compressed = yield gzipAsync(Buffer.from(json, 'utf8'));
|
|
57
|
+
const compressedBase64 = compressed.toString('base64');
|
|
58
|
+
const compressedSize = Buffer.byteLength(compressedBase64, 'utf8');
|
|
59
|
+
const compressionRatio = Math.round(((originalSize - compressedSize) / originalSize) * 100);
|
|
60
|
+
this.logger.debug('Payload skompresowany gzip', {
|
|
61
|
+
originalSize,
|
|
62
|
+
compressedSize,
|
|
63
|
+
compressionRatio: `${compressionRatio}%`,
|
|
64
|
+
timestamp: new Date().toISOString(),
|
|
65
|
+
});
|
|
66
|
+
return {
|
|
67
|
+
data: compressedBase64,
|
|
68
|
+
compressed: true,
|
|
69
|
+
};
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Dekompresuje payload na podstawie flagi compressed (async - nie blokuje event loop)
|
|
74
|
+
* @param data - Dane do dekompresji (JSON string lub base64 gzip)
|
|
75
|
+
* @param compressed - Czy dane są skompresowane
|
|
76
|
+
* @returns Promise ze zdeserializowanym obiektem
|
|
77
|
+
* @throws Error jeśli dekompresja lub parsowanie się nie powiedzie
|
|
78
|
+
*/
|
|
79
|
+
decompress(data, compressed) {
|
|
80
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
81
|
+
if (!compressed) {
|
|
82
|
+
// Proste parsowanie JSON
|
|
83
|
+
return JSON.parse(data);
|
|
84
|
+
}
|
|
85
|
+
// Dekompresja gzip (async - nie blokuje event loop)
|
|
86
|
+
try {
|
|
87
|
+
const compressedBuffer = Buffer.from(data, 'base64');
|
|
88
|
+
const decompressed = yield gunzipAsync(compressedBuffer);
|
|
89
|
+
const json = decompressed.toString('utf8');
|
|
90
|
+
this.logger.debug('Payload zdekompresowany', {
|
|
91
|
+
compressedSize: data.length,
|
|
92
|
+
decompressedSize: json.length,
|
|
93
|
+
timestamp: new Date().toISOString(),
|
|
94
|
+
});
|
|
95
|
+
return JSON.parse(json);
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
this.logger.error('Błąd dekompresji payloadu', {
|
|
99
|
+
error: error instanceof Error ? error.message : String(error),
|
|
100
|
+
dataLength: data.length,
|
|
101
|
+
timestamp: new Date().toISOString(),
|
|
102
|
+
});
|
|
103
|
+
throw new Error('Failed to decompress payload');
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.default = PayloadCompressionService;
|
|
109
|
+
//# sourceMappingURL=payload-compression.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload-compression.service.js","sourceRoot":"","sources":["../../../src/command-bus/rpc/payload-compression.service.ts"],"names":[],"mappings":"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"}
|