pp-command-bus 1.0.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/README.md +522 -0
- package/dist/command-bus/command-bus.spec.d.ts +1 -0
- package/dist/command-bus/command-bus.spec.js +398 -0
- package/dist/command-bus/command-bus.spec.js.map +1 -0
- package/dist/command-bus/command.d.ts +24 -0
- package/dist/command-bus/command.js +53 -0
- package/dist/command-bus/command.js.map +1 -0
- package/dist/command-bus/config/command-bus-config.d.ts +40 -0
- package/dist/command-bus/config/command-bus-config.js +59 -0
- package/dist/command-bus/config/command-bus-config.js.map +1 -0
- package/dist/command-bus/config/command-bus-config.spec.d.ts +1 -0
- package/dist/command-bus/config/command-bus-config.spec.js +162 -0
- package/dist/command-bus/config/command-bus-config.spec.js.map +1 -0
- package/dist/command-bus/config/index.d.ts +1 -0
- package/dist/command-bus/config/index.js +9 -0
- package/dist/command-bus/config/index.js.map +1 -0
- package/dist/command-bus/index.d.ts +79 -0
- package/dist/command-bus/index.js +169 -0
- package/dist/command-bus/index.js.map +1 -0
- package/dist/command-bus/job/index.d.ts +6 -0
- package/dist/command-bus/job/index.js +15 -0
- package/dist/command-bus/job/index.js.map +1 -0
- package/dist/command-bus/job/job-options-builder.d.ts +24 -0
- package/dist/command-bus/job/job-options-builder.js +68 -0
- package/dist/command-bus/job/job-options-builder.js.map +1 -0
- package/dist/command-bus/job/job-options-builder.spec.d.ts +1 -0
- package/dist/command-bus/job/job-options-builder.spec.js +163 -0
- package/dist/command-bus/job/job-options-builder.spec.js.map +1 -0
- package/dist/command-bus/job/job-processor.d.ts +33 -0
- package/dist/command-bus/job/job-processor.js +195 -0
- package/dist/command-bus/job/job-processor.js.map +1 -0
- package/dist/command-bus/job/job-processor.spec.d.ts +1 -0
- package/dist/command-bus/job/job-processor.spec.js +352 -0
- package/dist/command-bus/job/job-processor.spec.js.map +1 -0
- package/dist/command-bus/logging/command-logger.d.ts +21 -0
- package/dist/command-bus/logging/command-logger.js +79 -0
- package/dist/command-bus/logging/command-logger.js.map +1 -0
- package/dist/command-bus/logging/command-logger.spec.d.ts +1 -0
- package/dist/command-bus/logging/command-logger.spec.js +245 -0
- package/dist/command-bus/logging/command-logger.spec.js.map +1 -0
- package/dist/command-bus/logging/index.d.ts +5 -0
- package/dist/command-bus/logging/index.js +13 -0
- package/dist/command-bus/logging/index.js.map +1 -0
- package/dist/command-bus/queue/index.d.ts +5 -0
- package/dist/command-bus/queue/index.js +13 -0
- package/dist/command-bus/queue/index.js.map +1 -0
- package/dist/command-bus/queue/queue-manager.d.ts +24 -0
- package/dist/command-bus/queue/queue-manager.js +60 -0
- package/dist/command-bus/queue/queue-manager.js.map +1 -0
- package/dist/command-bus/queue/queue-manager.spec.d.ts +1 -0
- package/dist/command-bus/queue/queue-manager.spec.js +219 -0
- package/dist/command-bus/queue/queue-manager.spec.js.map +1 -0
- package/dist/command-bus/rpc/index.d.ts +5 -0
- package/dist/command-bus/rpc/index.js +13 -0
- package/dist/command-bus/rpc/index.js.map +1 -0
- package/dist/command-bus/rpc/rpc-coordinator.d.ts +45 -0
- package/dist/command-bus/rpc/rpc-coordinator.js +189 -0
- package/dist/command-bus/rpc/rpc-coordinator.js.map +1 -0
- package/dist/command-bus/rpc/rpc-coordinator.spec.d.ts +1 -0
- package/dist/command-bus/rpc/rpc-coordinator.spec.js +286 -0
- package/dist/command-bus/rpc/rpc-coordinator.spec.js.map +1 -0
- package/dist/command-bus/types/index.d.ts +57 -0
- package/dist/command-bus/types/index.js +3 -0
- package/dist/command-bus/types/index.js.map +1 -0
- package/dist/command-bus/worker/index.d.ts +5 -0
- package/dist/command-bus/worker/index.js +13 -0
- package/dist/command-bus/worker/index.js.map +1 -0
- package/dist/command-bus/worker/worker-orchestrator.d.ts +46 -0
- package/dist/command-bus/worker/worker-orchestrator.js +160 -0
- package/dist/command-bus/worker/worker-orchestrator.js.map +1 -0
- package/dist/command-bus/worker/worker-orchestrator.spec.d.ts +1 -0
- package/dist/command-bus/worker/worker-orchestrator.spec.js +293 -0
- package/dist/command-bus/worker/worker-orchestrator.spec.js.map +1 -0
- package/dist/examples/rpc.demo.d.ts +2 -0
- package/dist/examples/rpc.demo.js +235 -0
- package/dist/examples/rpc.demo.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/pp-command-bus-1.0.0.tgz +0 -0
- package/dist/shared/config/base-config.d.ts +43 -0
- package/dist/shared/config/base-config.js +100 -0
- package/dist/shared/config/base-config.js.map +1 -0
- package/dist/shared/config/base-config.spec.d.ts +1 -0
- package/dist/shared/config/base-config.spec.js +118 -0
- package/dist/shared/config/base-config.spec.js.map +1 -0
- package/dist/shared/config/index.d.ts +1 -0
- package/dist/shared/config/index.js +9 -0
- package/dist/shared/config/index.js.map +1 -0
- package/dist/shared/logging/index.d.ts +2 -0
- package/dist/shared/logging/index.js +8 -0
- package/dist/shared/logging/index.js.map +1 -0
- package/dist/shared/logging/log-level.d.ts +36 -0
- package/dist/shared/logging/log-level.js +53 -0
- package/dist/shared/logging/log-level.js.map +1 -0
- package/dist/shared/logging/logger.d.ts +42 -0
- package/dist/shared/logging/logger.js +63 -0
- package/dist/shared/logging/logger.js.map +1 -0
- package/dist/shared/logging/logger.spec.d.ts +1 -0
- package/dist/shared/logging/logger.spec.js +89 -0
- package/dist/shared/logging/logger.spec.js.map +1 -0
- package/dist/shared/types.d.ts +26 -0
- package/dist/shared/types.js +6 -0
- package/dist/shared/types.js.map +1 -0
- package/package.json +93 -0
|
@@ -0,0 +1,235 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.runRpcDemo = runRpcDemo;
|
|
16
|
+
const command_1 = __importDefault(require("../command-bus/command"));
|
|
17
|
+
const command_bus_1 = __importDefault(require("../command-bus"));
|
|
18
|
+
const command_bus_config_1 = __importDefault(require("../command-bus/config/command-bus-config"));
|
|
19
|
+
/**
|
|
20
|
+
* Przykład synchronicznego wywołania komendy (RPC) z CommandBus
|
|
21
|
+
* Example of synchronous command invocation (RPC) with CommandBus
|
|
22
|
+
*/
|
|
23
|
+
// ========== KOMENDY RPC ==========
|
|
24
|
+
/**
|
|
25
|
+
* Komenda do kalkulacji matematycznej
|
|
26
|
+
* Command for mathematical calculation
|
|
27
|
+
*/
|
|
28
|
+
class CalculateCommand extends command_1.default {
|
|
29
|
+
constructor(a, b, operation) {
|
|
30
|
+
super();
|
|
31
|
+
this.a = a;
|
|
32
|
+
this.b = b;
|
|
33
|
+
this.operation = operation;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Komenda do walidacji danych użytkownika
|
|
38
|
+
* Command to validate user data
|
|
39
|
+
*/
|
|
40
|
+
class ValidateUserCommand extends command_1.default {
|
|
41
|
+
constructor(email, age) {
|
|
42
|
+
super();
|
|
43
|
+
this.email = email;
|
|
44
|
+
this.age = age;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Komenda do pobrania informacji o użytkowniku
|
|
49
|
+
* Command to fetch user information
|
|
50
|
+
*/
|
|
51
|
+
class GetUserInfoCommand extends command_1.default {
|
|
52
|
+
constructor(userId) {
|
|
53
|
+
super();
|
|
54
|
+
this.userId = userId;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// ========== DEMO ==========
|
|
58
|
+
function runRpcDemo() {
|
|
59
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
+
var _a;
|
|
61
|
+
const redisUrl = (_a = process.env.REDIS_URL) !== null && _a !== void 0 ? _a : 'redis://localhost:6379';
|
|
62
|
+
const commandBusConfig = new command_bus_config_1.default({
|
|
63
|
+
redisUrl,
|
|
64
|
+
logger: console,
|
|
65
|
+
});
|
|
66
|
+
const commandBus = new command_bus_1.default(commandBusConfig);
|
|
67
|
+
console.log('🚀 RPC Demo - Synchroniczne wywołania komend\n');
|
|
68
|
+
// ========== REJESTRACJA HANDLERÓW ==========
|
|
69
|
+
console.log('=== Rejestracja handlerów ===\n');
|
|
70
|
+
// Handler dla kalkulacji - zwraca wynik obliczeń
|
|
71
|
+
yield commandBus.handle(CalculateCommand, (command) => __awaiter(this, void 0, void 0, function* () {
|
|
72
|
+
console.log(`🔢 [Handler] Obliczam: ${command.a} ${command.operation} ${command.b}`);
|
|
73
|
+
yield new Promise((resolve) => setTimeout(resolve, 500)); // Symulacja przetwarzania
|
|
74
|
+
switch (command.operation) {
|
|
75
|
+
case 'add':
|
|
76
|
+
return command.a + command.b;
|
|
77
|
+
case 'subtract':
|
|
78
|
+
return command.a - command.b;
|
|
79
|
+
case 'multiply':
|
|
80
|
+
return command.a * command.b;
|
|
81
|
+
case 'divide':
|
|
82
|
+
if (command.b === 0) {
|
|
83
|
+
throw new Error('Nie można dzielić przez zero');
|
|
84
|
+
}
|
|
85
|
+
return command.a / command.b;
|
|
86
|
+
default:
|
|
87
|
+
throw new Error(`Nieznana operacja: ${command.operation}`);
|
|
88
|
+
}
|
|
89
|
+
}));
|
|
90
|
+
// Handler dla walidacji - zwraca wynik walidacji
|
|
91
|
+
yield commandBus.handle(ValidateUserCommand, (command) => __awaiter(this, void 0, void 0, function* () {
|
|
92
|
+
console.log(`✅ [Handler] Waliduje użytkownika: ${command.email}, wiek: ${command.age}`);
|
|
93
|
+
yield new Promise((resolve) => setTimeout(resolve, 200)); // Symulacja walidacji
|
|
94
|
+
const errors = [];
|
|
95
|
+
// Walidacja email
|
|
96
|
+
if (!command.email.includes('@')) {
|
|
97
|
+
errors.push('Nieprawidłowy adres email');
|
|
98
|
+
}
|
|
99
|
+
// Walidacja wieku
|
|
100
|
+
if (command.age < 0 || command.age > 150) {
|
|
101
|
+
errors.push('Nieprawidłowy wiek');
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
isValid: errors.length === 0,
|
|
105
|
+
errors,
|
|
106
|
+
user: {
|
|
107
|
+
email: command.email,
|
|
108
|
+
age: command.age,
|
|
109
|
+
status: errors.length === 0 ? 'valid' : 'invalid',
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
}));
|
|
113
|
+
// Handler dla informacji o użytkowniku - zwraca dane użytkownika
|
|
114
|
+
yield commandBus.handle(GetUserInfoCommand, (command) => __awaiter(this, void 0, void 0, function* () {
|
|
115
|
+
console.log(`👤 [Handler] Pobieram informacje o użytkowniku: ${command.userId}`);
|
|
116
|
+
yield new Promise((resolve) => setTimeout(resolve, 300)); // Symulacja zapytania do bazy
|
|
117
|
+
// Symulacja danych z bazy danych
|
|
118
|
+
const users = {
|
|
119
|
+
'user-1': { name: 'Jan Kowalski', email: 'jan.kowalski@example.com', role: 'admin' },
|
|
120
|
+
'user-2': { name: 'Anna Nowak', email: 'anna.nowak@example.com', role: 'user' },
|
|
121
|
+
'user-3': {
|
|
122
|
+
name: 'Piotr Wiśniewski',
|
|
123
|
+
email: 'piotr.wisniewski@example.com',
|
|
124
|
+
role: 'moderator',
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
if (!users[command.userId]) {
|
|
128
|
+
throw new Error(`Użytkownik ${command.userId} nie istnieje`);
|
|
129
|
+
}
|
|
130
|
+
return users[command.userId];
|
|
131
|
+
}));
|
|
132
|
+
// ========== SYNCHRONICZNE WYWOŁANIA RPC ==========
|
|
133
|
+
console.log('=== Synchroniczne wywołania RPC ===\n');
|
|
134
|
+
try {
|
|
135
|
+
// 1. Kalkulacja matematyczna
|
|
136
|
+
console.log('1. Kalkulacja matematyczna:');
|
|
137
|
+
const addResult = yield commandBus.call(new CalculateCommand(15, 7, 'add'), 5000);
|
|
138
|
+
console.log(` Wynik dodawania: ${addResult}`);
|
|
139
|
+
const multiplyResult = yield commandBus.call(new CalculateCommand(8, 6, 'multiply'), 5000);
|
|
140
|
+
console.log(` Wynik mnożenia: ${multiplyResult}`);
|
|
141
|
+
const divideResult = yield commandBus.call(new CalculateCommand(20, 4, 'divide'), 5000);
|
|
142
|
+
console.log(` Wynik dzielenia: ${divideResult}\n`);
|
|
143
|
+
// 2. Walidacja użytkownika - poprawne dane
|
|
144
|
+
console.log('2. Walidacja użytkownika (poprawne dane):');
|
|
145
|
+
const validationResult = yield commandBus.call(new ValidateUserCommand('jan.kowalski@polskiepolisy.pl', 35), 5000);
|
|
146
|
+
console.log(' Wynik walidacji:', JSON.stringify(validationResult, null, 2));
|
|
147
|
+
// 3. Walidacja użytkownika - niepoprawne dane
|
|
148
|
+
console.log('\n3. Walidacja użytkownika (niepoprawne dane):');
|
|
149
|
+
const invalidValidationResult = yield commandBus.call(new ValidateUserCommand('nieprawidlowy-email', -5), 5000);
|
|
150
|
+
console.log(' Wynik walidacji:', JSON.stringify(invalidValidationResult, null, 2));
|
|
151
|
+
// 4. Pobieranie informacji o użytkowniku
|
|
152
|
+
console.log('\n4. Pobieranie informacji o użytkowniku:');
|
|
153
|
+
const userInfo = yield commandBus.call(new GetUserInfoCommand('user-1'), 5000);
|
|
154
|
+
console.log(' Informacje o użytkowniku:', JSON.stringify(userInfo, null, 2));
|
|
155
|
+
// 5. Wiele równoległych wywołań RPC
|
|
156
|
+
console.log('\n5. Równoległe wywołania RPC:');
|
|
157
|
+
const [result1, result2, result3] = yield Promise.all([
|
|
158
|
+
commandBus.call(new CalculateCommand(10, 3, 'add'), 5000),
|
|
159
|
+
commandBus.call(new GetUserInfoCommand('user-2'), 5000),
|
|
160
|
+
commandBus.call(new ValidateUserCommand('anna@example.com', 28), 5000),
|
|
161
|
+
]);
|
|
162
|
+
console.log(` Równoległe wyniki:`);
|
|
163
|
+
console.log(` - Kalkulacja: ${result1}`);
|
|
164
|
+
console.log(` - Użytkownik: ${JSON.stringify(result2)}`);
|
|
165
|
+
console.log(` - Walidacja: valid = ${result3.isValid}`);
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
console.error('❌ Błąd RPC:', error instanceof Error ? error.message : error);
|
|
169
|
+
}
|
|
170
|
+
// ========== OBSŁUGA BŁĘDÓW ==========
|
|
171
|
+
console.log('\n=== Obsługa błędów RPC ===\n');
|
|
172
|
+
try {
|
|
173
|
+
// Błąd w handlerze - dzielenie przez zero
|
|
174
|
+
console.log('6. Test obsługi błędu (dzielenie przez zero):');
|
|
175
|
+
yield commandBus.call(new CalculateCommand(10, 0, 'divide'), 5000);
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
console.log(` ✅ Poprawnie przechwycono błąd: ${error instanceof Error ? error.message : error}`);
|
|
179
|
+
}
|
|
180
|
+
try {
|
|
181
|
+
// Błąd - nieistniejący użytkownik
|
|
182
|
+
console.log('\n7. Test obsługi błędu (nieistniejący użytkownik):');
|
|
183
|
+
yield commandBus.call(new GetUserInfoCommand('user-999'), 5000);
|
|
184
|
+
}
|
|
185
|
+
catch (error) {
|
|
186
|
+
console.log(` ✅ Poprawnie przechwycono błąd: ${error instanceof Error ? error.message : error}`);
|
|
187
|
+
}
|
|
188
|
+
try {
|
|
189
|
+
// Test timeout
|
|
190
|
+
console.log('\n8. Test timeout (100ms):');
|
|
191
|
+
yield commandBus.call(new CalculateCommand(1, 1, 'add'), 100); // Krótki timeout
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
if (error instanceof Error && error.message.includes('timeout')) {
|
|
195
|
+
console.log(` ✅ Poprawnie obsłużono timeout: ${error.message}`);
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
console.log(` ⚠️ Nieoczekiwany błąd: ${error instanceof Error ? error.message : error}`);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
// ========== PORÓWNANIE Z ASYNCHRONICZNYM DISPATCH ==========
|
|
202
|
+
console.log('\n=== Porównanie: RPC vs Async Dispatch ===\n');
|
|
203
|
+
try {
|
|
204
|
+
console.log('RPC (synchroniczne - czekamy na wynik):');
|
|
205
|
+
const startRpc = Date.now();
|
|
206
|
+
const rpcResult = yield commandBus.call(new CalculateCommand(100, 50, 'add'), 5000);
|
|
207
|
+
const rpcTime = Date.now() - startRpc;
|
|
208
|
+
console.log(` Wynik RPC: ${rpcResult}, czas: ${rpcTime}ms`);
|
|
209
|
+
}
|
|
210
|
+
catch (error) {
|
|
211
|
+
console.error(` ⚠️ Nieoczekiwany błąd: ${error instanceof Error ? error.message : error}`);
|
|
212
|
+
}
|
|
213
|
+
console.log('\nAsync Dispatch (fire-and-forget - nie czekamy na wynik):');
|
|
214
|
+
const startDispatch = Date.now();
|
|
215
|
+
yield commandBus.dispatch(new CalculateCommand(100, 50, 'add'));
|
|
216
|
+
const dispatchTime = Date.now() - startDispatch;
|
|
217
|
+
console.log(` Dispatch wysłane, czas: ${dispatchTime}ms (bez czekania na wynik)`);
|
|
218
|
+
// ========== ZAKOŃCZENIE ==========
|
|
219
|
+
console.log('\n=== Demo zakończone ===');
|
|
220
|
+
console.log('✅ RPC pozwala na synchroniczne wywołanie komend z otrzymaniem wyniku');
|
|
221
|
+
console.log('✅ Obsługa błędów, timeoutów i równoległych wywołań');
|
|
222
|
+
console.log('✅ Kompatybilność wsteczna - dispatch() nadal działa asynchronicznie\n');
|
|
223
|
+
// Zamknij połączenia
|
|
224
|
+
yield commandBus.close();
|
|
225
|
+
process.exit(0);
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
// Uruchom demo
|
|
229
|
+
if (require.main === module) {
|
|
230
|
+
runRpcDemo().catch((error) => {
|
|
231
|
+
console.error('Fatal error:', error);
|
|
232
|
+
process.exit(1);
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=rpc.demo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc.demo.js","sourceRoot":"","sources":["../../src/examples/rpc.demo.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PP Command Bus - Distributed Command Bus library
|
|
3
|
+
*
|
|
4
|
+
* Biblioteka do obsługi rozproszonych komend z wykorzystaniem BullMQ i Redis/DragonflyDB.
|
|
5
|
+
* Wspiera wzorzec CQRS, RPC calls i job queuing.
|
|
6
|
+
*/
|
|
7
|
+
export { default as CommandBus } from './command-bus';
|
|
8
|
+
export { default as Command } from './command-bus/command';
|
|
9
|
+
export { default as CommandBusConfig } from './command-bus/config/command-bus-config';
|
|
10
|
+
export type { ILogger, TDict, TCallable, TCallableAsync } from './shared/types';
|
|
11
|
+
export type { MemoryStats, RpcMetadata, CommandHandler, JobOptions, WorkerProcessor, } from './command-bus/types';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* PP Command Bus - Distributed Command Bus library
|
|
4
|
+
*
|
|
5
|
+
* Biblioteka do obsługi rozproszonych komend z wykorzystaniem BullMQ i Redis/DragonflyDB.
|
|
6
|
+
* Wspiera wzorzec CQRS, RPC calls i job queuing.
|
|
7
|
+
*/
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.CommandBusConfig = exports.Command = exports.CommandBus = void 0;
|
|
13
|
+
// Główne eksporty
|
|
14
|
+
var command_bus_1 = require("./command-bus");
|
|
15
|
+
Object.defineProperty(exports, "CommandBus", { enumerable: true, get: function () { return __importDefault(command_bus_1).default; } });
|
|
16
|
+
var command_1 = require("./command-bus/command");
|
|
17
|
+
Object.defineProperty(exports, "Command", { enumerable: true, get: function () { return __importDefault(command_1).default; } });
|
|
18
|
+
var command_bus_config_1 = require("./command-bus/config/command-bus-config");
|
|
19
|
+
Object.defineProperty(exports, "CommandBusConfig", { enumerable: true, get: function () { return __importDefault(command_bus_config_1).default; } });
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;AAEH,kBAAkB;AAClB,6CAAsD;AAA7C,0HAAA,OAAO,OAAc;AAC9B,iDAA2D;AAAlD,mHAAA,OAAO,OAAW;AAC3B,8EAAsF;AAA7E,uIAAA,OAAO,OAAoB"}
|
|
Binary file
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { ConnectionOptions } from 'bullmq';
|
|
2
|
+
import type { ILogger } from '../types';
|
|
3
|
+
import type { LogLevelType } from '../logging/log-level';
|
|
4
|
+
/**
|
|
5
|
+
* Bazowa klasa konfiguracji dla EventBus i CommandBus
|
|
6
|
+
*/
|
|
7
|
+
export default class BaseConfig {
|
|
8
|
+
/**
|
|
9
|
+
* URL połączenia do DragonflyDB/Redis
|
|
10
|
+
*/
|
|
11
|
+
redisUrl: string;
|
|
12
|
+
/**
|
|
13
|
+
* Poziom logowania (debug, log, warn, error)
|
|
14
|
+
* Domyślnie 'log' - loguje log, warn, error (bez debug)
|
|
15
|
+
*/
|
|
16
|
+
logLevel: LogLevelType;
|
|
17
|
+
/**
|
|
18
|
+
* Logger do użycia (domyślnie wbudowany Logger z console)
|
|
19
|
+
*/
|
|
20
|
+
logger: ILogger;
|
|
21
|
+
constructor(params?: Partial<BaseConfig>);
|
|
22
|
+
/**
|
|
23
|
+
* Zwraca opcje połączenia Redis na podstawie URL
|
|
24
|
+
*/
|
|
25
|
+
getRedisOptions(): ConnectionOptions;
|
|
26
|
+
/**
|
|
27
|
+
* Zwraca opcje połączenia Redis dla Worker'ów BullMQ
|
|
28
|
+
* Worker'y wymagają maxRetriesPerRequest: null dla poprawnego działania blocking operations
|
|
29
|
+
*/
|
|
30
|
+
getRedisOptionsForWorker(): ConnectionOptions;
|
|
31
|
+
/**
|
|
32
|
+
* Waliduje konfigurację
|
|
33
|
+
*/
|
|
34
|
+
protected validate(): void;
|
|
35
|
+
/**
|
|
36
|
+
* Parsuje string na liczbę z wartością domyślną
|
|
37
|
+
*/
|
|
38
|
+
protected parseIntWithDefault(value: string | undefined, defaultValue: number): number;
|
|
39
|
+
/**
|
|
40
|
+
* Parsuje string na boolean z wartością domyślną
|
|
41
|
+
*/
|
|
42
|
+
protected parseBoolWithDefault(value: string | undefined, defaultValue: boolean): boolean;
|
|
43
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const logger_1 = require("../logging/logger");
|
|
4
|
+
/**
|
|
5
|
+
* Bazowa klasa konfiguracji dla EventBus i CommandBus
|
|
6
|
+
*/
|
|
7
|
+
class BaseConfig {
|
|
8
|
+
constructor(params) {
|
|
9
|
+
var _a, _b;
|
|
10
|
+
/**
|
|
11
|
+
* URL połączenia do DragonflyDB/Redis
|
|
12
|
+
*/
|
|
13
|
+
this.redisUrl = (_a = process.env.REDIS_URL) !== null && _a !== void 0 ? _a : 'redis://localhost:6379';
|
|
14
|
+
// Ustaw logLevel przed utworzeniem loggera
|
|
15
|
+
const initialLogLevel = (_b = process.env.LOG_LEVEL) !== null && _b !== void 0 ? _b : 'log';
|
|
16
|
+
this.logLevel = initialLogLevel;
|
|
17
|
+
// Utwórz logger z odpowiednim poziomem
|
|
18
|
+
this.logger = new logger_1.Logger(console, this.logLevel);
|
|
19
|
+
if (params) {
|
|
20
|
+
// Zapamię tај logLevel przed merge params
|
|
21
|
+
const originalLogLevel = this.logLevel;
|
|
22
|
+
Object.keys(params).forEach((key) => {
|
|
23
|
+
this[key] = params[key];
|
|
24
|
+
});
|
|
25
|
+
// Jeśli logLevel został nadpisany, utwórz nowy logger
|
|
26
|
+
// Porównujemy z oryginalnym logLevel (przed merge)
|
|
27
|
+
if (params.logLevel && params.logLevel !== originalLogLevel) {
|
|
28
|
+
this.logger = new logger_1.Logger(console, params.logLevel);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// Walidacja konfiguracji
|
|
32
|
+
this.validate();
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Zwraca opcje połączenia Redis na podstawie URL
|
|
36
|
+
*/
|
|
37
|
+
getRedisOptions() {
|
|
38
|
+
try {
|
|
39
|
+
const url = new URL(this.redisUrl);
|
|
40
|
+
const options = {
|
|
41
|
+
host: url.hostname,
|
|
42
|
+
port: parseInt(url.port, 10) || 6379,
|
|
43
|
+
};
|
|
44
|
+
if (url.username) {
|
|
45
|
+
options.username = url.username;
|
|
46
|
+
}
|
|
47
|
+
if (url.password) {
|
|
48
|
+
options.password = url.password;
|
|
49
|
+
}
|
|
50
|
+
if (url.pathname && url.pathname.length > 1) {
|
|
51
|
+
const db = parseInt(url.pathname.substring(1), 10);
|
|
52
|
+
if (!isNaN(db)) {
|
|
53
|
+
options.db = db;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return options;
|
|
57
|
+
}
|
|
58
|
+
catch (_a) {
|
|
59
|
+
throw new Error('Invalid Redis URL');
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Zwraca opcje połączenia Redis dla Worker'ów BullMQ
|
|
64
|
+
* Worker'y wymagają maxRetriesPerRequest: null dla poprawnego działania blocking operations
|
|
65
|
+
*/
|
|
66
|
+
getRedisOptionsForWorker() {
|
|
67
|
+
const options = this.getRedisOptions();
|
|
68
|
+
return Object.assign(Object.assign({}, options), { maxRetriesPerRequest: null });
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Waliduje konfigurację
|
|
72
|
+
*/
|
|
73
|
+
validate() {
|
|
74
|
+
try {
|
|
75
|
+
new URL(this.redisUrl);
|
|
76
|
+
}
|
|
77
|
+
catch (_a) {
|
|
78
|
+
throw new Error('Invalid Redis URL');
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Parsuje string na liczbę z wartością domyślną
|
|
83
|
+
*/
|
|
84
|
+
parseIntWithDefault(value, defaultValue) {
|
|
85
|
+
if (!value)
|
|
86
|
+
return defaultValue;
|
|
87
|
+
const parsed = parseInt(value, 10);
|
|
88
|
+
return isNaN(parsed) ? defaultValue : parsed;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Parsuje string na boolean z wartością domyślną
|
|
92
|
+
*/
|
|
93
|
+
parseBoolWithDefault(value, defaultValue) {
|
|
94
|
+
if (!value)
|
|
95
|
+
return defaultValue;
|
|
96
|
+
return value.toLowerCase() === 'true' || value === '1';
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.default = BaseConfig;
|
|
100
|
+
//# sourceMappingURL=base-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-config.js","sourceRoot":"","sources":["../../../src/shared/config/base-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const base_config_1 = __importDefault(require("./base-config"));
|
|
7
|
+
const logger_1 = require("../logging/logger");
|
|
8
|
+
describe('BaseConfig', () => {
|
|
9
|
+
const originalEnv = process.env;
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
// Reset zmiennych środowiskowych
|
|
12
|
+
process.env = Object.assign({}, originalEnv);
|
|
13
|
+
});
|
|
14
|
+
afterEach(() => {
|
|
15
|
+
process.env = originalEnv;
|
|
16
|
+
});
|
|
17
|
+
describe('konstruktor', () => {
|
|
18
|
+
it('powinno używać domyślnych wartości', () => {
|
|
19
|
+
// When
|
|
20
|
+
const config = new base_config_1.default();
|
|
21
|
+
// Then
|
|
22
|
+
expect(config.redisUrl).toBe('redis://localhost:6379');
|
|
23
|
+
expect(config.logger).toBeInstanceOf(logger_1.Logger);
|
|
24
|
+
expect(config.logLevel).toBe('log');
|
|
25
|
+
});
|
|
26
|
+
it('powinno wczytać konfigurację ze zmiennych środowiskowych', () => {
|
|
27
|
+
// Given
|
|
28
|
+
process.env.REDIS_URL = 'redis://dragonfly:6380';
|
|
29
|
+
// When
|
|
30
|
+
const config = new base_config_1.default();
|
|
31
|
+
// Then
|
|
32
|
+
expect(config.redisUrl).toBe('redis://dragonfly:6380');
|
|
33
|
+
});
|
|
34
|
+
it('powinno nadpisać wartości przez parametry konstruktora', () => {
|
|
35
|
+
// Given
|
|
36
|
+
const customLogger = {
|
|
37
|
+
log: jest.fn(),
|
|
38
|
+
error: jest.fn(),
|
|
39
|
+
warn: jest.fn(),
|
|
40
|
+
debug: jest.fn(),
|
|
41
|
+
};
|
|
42
|
+
// When
|
|
43
|
+
const config = new base_config_1.default({
|
|
44
|
+
redisUrl: 'redis://custom:6379',
|
|
45
|
+
logger: customLogger,
|
|
46
|
+
});
|
|
47
|
+
// Then
|
|
48
|
+
expect(config.redisUrl).toBe('redis://custom:6379');
|
|
49
|
+
expect(config.logger).toBe(customLogger);
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
describe('getRedisOptions', () => {
|
|
53
|
+
it('powinno zwrócić opcje połączenia Redis z URL', () => {
|
|
54
|
+
// Given
|
|
55
|
+
const config = new base_config_1.default({
|
|
56
|
+
redisUrl: 'redis://user:pass@dragonfly.example.com:6380/0',
|
|
57
|
+
});
|
|
58
|
+
// When
|
|
59
|
+
const options = config.getRedisOptions();
|
|
60
|
+
// Then
|
|
61
|
+
expect(options).toEqual({
|
|
62
|
+
host: 'dragonfly.example.com',
|
|
63
|
+
port: 6380,
|
|
64
|
+
username: 'user',
|
|
65
|
+
password: 'pass',
|
|
66
|
+
db: 0,
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
it('powinno obsłużyć URL bez autoryzacji', () => {
|
|
70
|
+
// Given
|
|
71
|
+
const config = new base_config_1.default({
|
|
72
|
+
redisUrl: 'redis://localhost:6379',
|
|
73
|
+
});
|
|
74
|
+
// When
|
|
75
|
+
const options = config.getRedisOptions();
|
|
76
|
+
// Then
|
|
77
|
+
expect(options).toEqual({
|
|
78
|
+
host: 'localhost',
|
|
79
|
+
port: 6379,
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
it('powinno obsłużyć URL z bazą danych ale bez autoryzacji', () => {
|
|
83
|
+
// Given
|
|
84
|
+
const config = new base_config_1.default({
|
|
85
|
+
redisUrl: 'redis://localhost:6379/2',
|
|
86
|
+
});
|
|
87
|
+
// When
|
|
88
|
+
const options = config.getRedisOptions();
|
|
89
|
+
// Then
|
|
90
|
+
expect(options).toEqual({
|
|
91
|
+
host: 'localhost',
|
|
92
|
+
port: 6379,
|
|
93
|
+
db: 2,
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
it('powinno obsłużyć nieprawidłowy URL podczas tworzenia konfiguracji', () => {
|
|
97
|
+
// When & Then
|
|
98
|
+
expect(() => new base_config_1.default({
|
|
99
|
+
redisUrl: 'invalid-url',
|
|
100
|
+
})).toThrow('Invalid Redis URL');
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
describe('walidacja', () => {
|
|
104
|
+
it('powinno zwalidować konfigurację przy tworzeniu', () => {
|
|
105
|
+
// Given
|
|
106
|
+
process.env.REDIS_URL = 'redis://valid:6379';
|
|
107
|
+
// When & Then
|
|
108
|
+
expect(() => new base_config_1.default()).not.toThrow();
|
|
109
|
+
});
|
|
110
|
+
it('powinno rzucić błąd przy nieprawidłowym URL Redis', () => {
|
|
111
|
+
// Given
|
|
112
|
+
process.env.REDIS_URL = 'not-a-url';
|
|
113
|
+
// When & Then
|
|
114
|
+
expect(() => new base_config_1.default()).toThrow('Invalid Redis URL');
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
//# sourceMappingURL=base-config.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-config.spec.js","sourceRoot":"","sources":["../../../src/shared/config/base-config.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as BaseConfig } from './base-config';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.BaseConfig = void 0;
|
|
7
|
+
var base_config_1 = require("./base-config");
|
|
8
|
+
Object.defineProperty(exports, "BaseConfig", { enumerable: true, get: function () { return __importDefault(base_config_1).default; } });
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/config/index.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAsD;AAA7C,0HAAA,OAAO,OAAc"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Logger = exports.LogLevel = void 0;
|
|
4
|
+
var log_level_1 = require("./log-level");
|
|
5
|
+
Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function () { return log_level_1.LogLevel; } });
|
|
6
|
+
var logger_1 = require("./logger");
|
|
7
|
+
Object.defineProperty(exports, "Logger", { enumerable: true, get: function () { return logger_1.Logger; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/logging/index.ts"],"names":[],"mappings":";;;AAAA,yCAA0D;AAAjD,qGAAA,QAAQ,OAAA;AACjB,mCAAkC;AAAzB,gGAAA,MAAM,OAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Poziomy logowania dla wbudowanego loggera
|
|
3
|
+
*/
|
|
4
|
+
export declare class LogLevel {
|
|
5
|
+
readonly name: string;
|
|
6
|
+
readonly value: number;
|
|
7
|
+
/**
|
|
8
|
+
* DEBUG - najniższy poziom, szczegółowe informacje diagnostyczne
|
|
9
|
+
*/
|
|
10
|
+
static readonly DEBUG: LogLevel;
|
|
11
|
+
/**
|
|
12
|
+
* LOG - standardowe logi informacyjne
|
|
13
|
+
*/
|
|
14
|
+
static readonly LOG: LogLevel;
|
|
15
|
+
/**
|
|
16
|
+
* WARN - ostrzeżenia, potencjalne problemy
|
|
17
|
+
*/
|
|
18
|
+
static readonly WARN: LogLevel;
|
|
19
|
+
/**
|
|
20
|
+
* ERROR - błędy wymagające uwagi
|
|
21
|
+
*/
|
|
22
|
+
static readonly ERROR: LogLevel;
|
|
23
|
+
private constructor();
|
|
24
|
+
/**
|
|
25
|
+
* Sprawdza czy dany poziom jest aktywny przy obecnym poziomie logowania
|
|
26
|
+
*/
|
|
27
|
+
isActive(currentLevel: LogLevel): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Konwertuje string na LogLevel
|
|
30
|
+
*/
|
|
31
|
+
static fromString(level: string): LogLevel;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Typ dla poziomów logowania
|
|
35
|
+
*/
|
|
36
|
+
export type LogLevelType = 'debug' | 'log' | 'warn' | 'error';
|