@loipv/nestjs-kafka 0.0.3 → 0.0.5-beta.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/README.md +105 -0
- package/dist/decorators/index.d.ts +1 -0
- package/dist/decorators/index.js +3 -1
- package/dist/decorators/index.js.map +1 -1
- package/dist/decorators/inject-kafka-client.decorator.d.ts +1 -0
- package/dist/decorators/inject-kafka-client.decorator.js +9 -0
- package/dist/decorators/inject-kafka-client.decorator.js.map +1 -0
- package/dist/discovery/consumer-discovery.service.js +5 -1
- package/dist/discovery/consumer-discovery.service.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces/consumer-options.interface.d.ts +2 -0
- package/dist/interfaces/kafka-module-options.interface.d.ts +6 -0
- package/dist/interfaces/kafka-module-options.interface.js +14 -1
- package/dist/interfaces/kafka-module-options.interface.js.map +1 -1
- package/dist/kafka.module.d.ts +9 -2
- package/dist/kafka.module.js +161 -35
- package/dist/kafka.module.js.map +1 -1
- package/dist/services/consumer-registry.service.d.ts +5 -4
- package/dist/services/consumer-registry.service.js +165 -90
- package/dist/services/consumer-registry.service.js.map +1 -1
- package/dist/services/kafka-client.service.d.ts +28 -17
- package/dist/services/kafka-client.service.js +101 -68
- package/dist/services/kafka-client.service.js.map +1 -1
- package/dist/services/kafka-core.service.d.ts +11 -9
- package/dist/services/kafka-core.service.js +84 -34
- package/dist/services/kafka-core.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -133,6 +133,108 @@ KafkaModule.forRootAsync({
|
|
|
133
133
|
});
|
|
134
134
|
```
|
|
135
135
|
|
|
136
|
+
### Multi-Connection (Multiple Kafka Clusters)
|
|
137
|
+
|
|
138
|
+
Connect to multiple Kafka clusters simultaneously:
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
// Option 1: Multiple forRoot() calls
|
|
142
|
+
@Module({
|
|
143
|
+
imports: [
|
|
144
|
+
// Primary cluster (default connection)
|
|
145
|
+
KafkaModule.forRoot({
|
|
146
|
+
name: 'default', // Optional, 'default' is the default
|
|
147
|
+
clientId: 'my-app',
|
|
148
|
+
brokers: ['primary-kafka:9092'],
|
|
149
|
+
}),
|
|
150
|
+
// Secondary cluster
|
|
151
|
+
KafkaModule.forRoot({
|
|
152
|
+
name: 'analytics',
|
|
153
|
+
clientId: 'my-app-analytics',
|
|
154
|
+
brokers: ['analytics-kafka:9092'],
|
|
155
|
+
}),
|
|
156
|
+
ConsumerModule,
|
|
157
|
+
],
|
|
158
|
+
})
|
|
159
|
+
export class AppModule {}
|
|
160
|
+
|
|
161
|
+
// Option 2: forRootMultiple() for cleaner setup
|
|
162
|
+
@Module({
|
|
163
|
+
imports: [
|
|
164
|
+
KafkaModule.forRootMultiple([
|
|
165
|
+
{
|
|
166
|
+
name: 'default',
|
|
167
|
+
clientId: 'my-app',
|
|
168
|
+
brokers: ['primary-kafka:9092'],
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
name: 'analytics',
|
|
172
|
+
clientId: 'my-app-analytics',
|
|
173
|
+
brokers: ['analytics-kafka:9092'],
|
|
174
|
+
},
|
|
175
|
+
]),
|
|
176
|
+
ConsumerModule,
|
|
177
|
+
],
|
|
178
|
+
})
|
|
179
|
+
export class AppModule {}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
**Using named connections in Consumer:**
|
|
183
|
+
|
|
184
|
+
```typescript
|
|
185
|
+
@Injectable()
|
|
186
|
+
export class EventConsumer {
|
|
187
|
+
// Default connection
|
|
188
|
+
@Consumer('orders')
|
|
189
|
+
async handleOrders(message: KafkaMessagePayload) {
|
|
190
|
+
// Uses 'default' connection
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
// Specific connection
|
|
194
|
+
@Consumer('analytics-events', { connection: 'analytics' })
|
|
195
|
+
async handleAnalytics(message: KafkaMessagePayload) {
|
|
196
|
+
// Uses 'analytics' connection
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
**Using named connections in Producer:**
|
|
202
|
+
|
|
203
|
+
```typescript
|
|
204
|
+
@Injectable()
|
|
205
|
+
export class EventService {
|
|
206
|
+
constructor(
|
|
207
|
+
// Method 1: Use @InjectKafkaClient decorator
|
|
208
|
+
@InjectKafkaClient() private readonly kafka: KafkaClient,
|
|
209
|
+
@InjectKafkaClient('analytics') private readonly analyticsKafka: ConnectionBoundClient,
|
|
210
|
+
) {}
|
|
211
|
+
|
|
212
|
+
async sendToDefault() {
|
|
213
|
+
await this.kafka.send('orders', { value: data });
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
async sendToAnalytics() {
|
|
217
|
+
await this.analyticsKafka.send('events', { value: data });
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// Method 2: Use forConnection() fluent API
|
|
222
|
+
@Injectable()
|
|
223
|
+
export class AnotherService {
|
|
224
|
+
constructor(private readonly kafka: KafkaClient) {}
|
|
225
|
+
|
|
226
|
+
async sendToAnalytics() {
|
|
227
|
+
const analyticsClient = this.kafka.forConnection('analytics');
|
|
228
|
+
await analyticsClient.send('events', { value: data });
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
async sendWithOptions() {
|
|
232
|
+
// Or specify connection in options
|
|
233
|
+
await this.kafka.send('orders', { value: data }, { connection: 'analytics' });
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
```
|
|
237
|
+
|
|
136
238
|
## Consumer Options
|
|
137
239
|
|
|
138
240
|
### Basic Consumer
|
|
@@ -291,6 +393,9 @@ async handleOrders(message: KafkaMessagePayload) {
|
|
|
291
393
|
|
|
292
394
|
```typescript
|
|
293
395
|
interface ConsumerOptions {
|
|
396
|
+
// Multi-connection
|
|
397
|
+
connection?: string; // Default: 'default'
|
|
398
|
+
|
|
294
399
|
// Enable/disable consumer
|
|
295
400
|
disabled?: boolean; // Default: false (skip registration when true)
|
|
296
401
|
|
package/dist/decorators/index.js
CHANGED
|
@@ -14,8 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.Consumer = void 0;
|
|
17
|
+
exports.InjectKafkaClient = exports.Consumer = void 0;
|
|
18
18
|
__exportStar(require("./constants"), exports);
|
|
19
19
|
var consumer_decorator_1 = require("./consumer.decorator");
|
|
20
20
|
Object.defineProperty(exports, "Consumer", { enumerable: true, get: function () { return consumer_decorator_1.Consumer; } });
|
|
21
|
+
var inject_kafka_client_decorator_1 = require("./inject-kafka-client.decorator");
|
|
22
|
+
Object.defineProperty(exports, "InjectKafkaClient", { enumerable: true, get: function () { return inject_kafka_client_decorator_1.InjectKafkaClient; } });
|
|
21
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,2DAAwE;AAA/D,8GAAA,QAAQ,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,2DAAwE;AAA/D,8GAAA,QAAQ,OAAA;AACjB,iFAAoE;AAA3D,kIAAA,iBAAiB,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function InjectKafkaClient(connectionName?: string): ParameterDecorator;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InjectKafkaClient = InjectKafkaClient;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const interfaces_1 = require("../interfaces");
|
|
6
|
+
function InjectKafkaClient(connectionName = interfaces_1.DEFAULT_KAFKA_CONNECTION) {
|
|
7
|
+
return (0, common_1.Inject)((0, interfaces_1.getKafkaClientToken)(connectionName));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=inject-kafka-client.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject-kafka-client.decorator.js","sourceRoot":"","sources":["../../lib/decorators/inject-kafka-client.decorator.ts"],"names":[],"mappings":";;AAmBA,8CAIC;AAvBD,2CAAwC;AACxC,8CAA8E;AAkB9E,SAAgB,iBAAiB,CAC/B,iBAAyB,qCAAwB;IAEjD,OAAO,IAAA,eAAM,EAAC,IAAA,gCAAmB,EAAC,cAAc,CAAC,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -14,6 +14,7 @@ exports.ConsumerDiscoveryService = void 0;
|
|
|
14
14
|
const common_1 = require("@nestjs/common");
|
|
15
15
|
const core_1 = require("@nestjs/core");
|
|
16
16
|
const constants_1 = require("../decorators/constants");
|
|
17
|
+
const interfaces_1 = require("../interfaces");
|
|
17
18
|
let ConsumerDiscoveryService = ConsumerDiscoveryService_1 = class ConsumerDiscoveryService {
|
|
18
19
|
discoveryService;
|
|
19
20
|
reflector;
|
|
@@ -53,17 +54,20 @@ let ConsumerDiscoveryService = ConsumerDiscoveryService_1 = class ConsumerDiscov
|
|
|
53
54
|
this.logger.log(`Skipping disabled consumer: ${metatype.name}.${methodName} for topic: ${metadata.topic}`);
|
|
54
55
|
continue;
|
|
55
56
|
}
|
|
57
|
+
const connection = metadata.options.connection || interfaces_1.DEFAULT_KAFKA_CONNECTION;
|
|
56
58
|
const consumerMetadata = {
|
|
57
59
|
topic: metadata.topic,
|
|
60
|
+
connection,
|
|
58
61
|
options: {
|
|
59
62
|
...metadata.options,
|
|
60
63
|
topic: metadata.topic,
|
|
64
|
+
connection,
|
|
61
65
|
},
|
|
62
66
|
target: instance,
|
|
63
67
|
methodName,
|
|
64
68
|
};
|
|
65
69
|
this.discoveredConsumers.push(consumerMetadata);
|
|
66
|
-
this.logger.log(`Discovered consumer: ${metatype.name}.${methodName} for topic: ${metadata.topic}`);
|
|
70
|
+
this.logger.log(`Discovered consumer: ${metatype.name}.${methodName} for topic: ${metadata.topic} (connection: ${connection})`);
|
|
67
71
|
}
|
|
68
72
|
}
|
|
69
73
|
return this.discoveredConsumers;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consumer-discovery.service.js","sourceRoot":"","sources":["../../lib/discovery/consumer-discovery.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAkE;AAClE,uCAA4E;AAC5E,uDAAkE;
|
|
1
|
+
{"version":3,"file":"consumer-discovery.service.js","sourceRoot":"","sources":["../../lib/discovery/consumer-discovery.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAkE;AAClE,uCAA4E;AAC5E,uDAAkE;AAElE,8CAA2E;AAGpE,IAAM,wBAAwB,gCAA9B,MAAM,wBAAwB;IAKhB;IACA;IACA;IANF,MAAM,GAAG,IAAI,eAAM,CAAC,0BAAwB,CAAC,IAAI,CAAC,CAAC;IAC5D,mBAAmB,GAAuB,EAAE,CAAC;IAErD,YACmB,gBAAkC,EAClC,SAAoB,EACpB,eAAgC;QAFhC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,cAAS,GAAT,SAAS,CAAW;QACpB,oBAAe,GAAf,eAAe,CAAiB;IAChD,CAAC;IAEJ,YAAY;QACV,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,iBAAiB;QACf,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,mBAAmB,CAAC;QAClC,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;QAEvD,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;YAEhC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;YAEvC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC3B,SAAS;YACX,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAW,CAAC;YAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAEtE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,MAAM,SAAS,GAAG,SAAS,CAAC,UAAoC,CAAC,CAAC;gBAElE,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;oBACpC,SAAS;gBACX,CAAC;gBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CACjC,mCAAuB,EACvB,SAAS,CACV,CAAC;gBAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,SAAS;gBACX,CAAC;gBAGD,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,+BAA+B,QAAQ,CAAC,IAAI,IAAI,UAAU,eAAe,QAAQ,CAAC,KAAK,EAAE,CAC1F,CAAC;oBACF,SAAS;gBACX,CAAC;gBAED,MAAM,UAAU,GACd,QAAQ,CAAC,OAAO,CAAC,UAAU,IAAI,qCAAwB,CAAC;gBAE1D,MAAM,gBAAgB,GAAqB;oBACzC,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,UAAU;oBACV,OAAO,EAAE;wBACP,GAAG,QAAQ,CAAC,OAAO;wBACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;wBACrB,UAAU;qBACX;oBAED,MAAM,EAAE,QAAQ;oBAChB,UAAU;iBACX,CAAC;gBAEF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,wBAAwB,QAAQ,CAAC,IAAI,IAAI,UAAU,eAAe,QAAQ,CAAC,KAAK,iBAAiB,UAAU,GAAG,CAC/G,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;CACF,CAAA;AArFY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,mBAAU,GAAE;qCAM0B,uBAAgB;QACvB,gBAAS;QACH,sBAAe;GAPxC,wBAAwB,CAqFpC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { KafkaModule } from './kafka.module';
|
|
2
2
|
export { ConsumerModule } from './consumer.module';
|
|
3
|
-
export { Consumer } from './decorators';
|
|
4
|
-
export { KafkaClient } from './services/kafka-client.service';
|
|
3
|
+
export { Consumer, InjectKafkaClient } from './decorators';
|
|
4
|
+
export { KafkaClient, ConnectionBoundClient, } from './services/kafka-client.service';
|
|
5
5
|
export { KafkaHealthIndicator } from './health/kafka-health-indicator';
|
|
6
6
|
export * from './interfaces';
|
package/dist/index.js
CHANGED
|
@@ -14,15 +14,17 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.KafkaHealthIndicator = exports.KafkaClient = exports.Consumer = exports.ConsumerModule = exports.KafkaModule = void 0;
|
|
17
|
+
exports.KafkaHealthIndicator = exports.ConnectionBoundClient = exports.KafkaClient = exports.InjectKafkaClient = exports.Consumer = exports.ConsumerModule = exports.KafkaModule = void 0;
|
|
18
18
|
var kafka_module_1 = require("./kafka.module");
|
|
19
19
|
Object.defineProperty(exports, "KafkaModule", { enumerable: true, get: function () { return kafka_module_1.KafkaModule; } });
|
|
20
20
|
var consumer_module_1 = require("./consumer.module");
|
|
21
21
|
Object.defineProperty(exports, "ConsumerModule", { enumerable: true, get: function () { return consumer_module_1.ConsumerModule; } });
|
|
22
22
|
var decorators_1 = require("./decorators");
|
|
23
23
|
Object.defineProperty(exports, "Consumer", { enumerable: true, get: function () { return decorators_1.Consumer; } });
|
|
24
|
+
Object.defineProperty(exports, "InjectKafkaClient", { enumerable: true, get: function () { return decorators_1.InjectKafkaClient; } });
|
|
24
25
|
var kafka_client_service_1 = require("./services/kafka-client.service");
|
|
25
26
|
Object.defineProperty(exports, "KafkaClient", { enumerable: true, get: function () { return kafka_client_service_1.KafkaClient; } });
|
|
27
|
+
Object.defineProperty(exports, "ConnectionBoundClient", { enumerable: true, get: function () { return kafka_client_service_1.ConnectionBoundClient; } });
|
|
26
28
|
var kafka_health_indicator_1 = require("./health/kafka-health-indicator");
|
|
27
29
|
Object.defineProperty(exports, "KafkaHealthIndicator", { enumerable: true, get: function () { return kafka_health_indicator_1.KafkaHealthIndicator; } });
|
|
28
30
|
__exportStar(require("./interfaces"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AAGvB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AAGvB,2CAA2D;AAAlD,sGAAA,QAAQ,OAAA;AAAE,+GAAA,iBAAiB,OAAA;AAGpC,wEAGyC;AAFvC,mHAAA,WAAW,OAAA;AACX,6HAAA,qBAAqB,OAAA;AAIvB,0EAAuE;AAA9D,8HAAA,oBAAoB,OAAA;AAG7B,+CAA6B"}
|
|
@@ -17,6 +17,7 @@ export interface ConsumerRetryOptions {
|
|
|
17
17
|
}
|
|
18
18
|
export interface ConsumerOptions {
|
|
19
19
|
topic?: string;
|
|
20
|
+
connection?: string;
|
|
20
21
|
disabled?: boolean;
|
|
21
22
|
deserialize?: boolean;
|
|
22
23
|
groupId?: string;
|
|
@@ -42,6 +43,7 @@ export interface ConsumerOptions {
|
|
|
42
43
|
}
|
|
43
44
|
export interface ConsumerMetadata {
|
|
44
45
|
topic: string;
|
|
46
|
+
connection: string;
|
|
45
47
|
options: ConsumerOptions;
|
|
46
48
|
target: any;
|
|
47
49
|
methodName: string;
|
|
@@ -17,7 +17,9 @@ export interface ProducerConfig {
|
|
|
17
17
|
transactionTimeout?: number;
|
|
18
18
|
maxInFlightRequests?: number;
|
|
19
19
|
}
|
|
20
|
+
export declare const DEFAULT_KAFKA_CONNECTION: string;
|
|
20
21
|
export interface KafkaModuleOptions {
|
|
22
|
+
name?: string;
|
|
21
23
|
clientId: string;
|
|
22
24
|
brokers: string[] | (() => string[] | Promise<string[]>);
|
|
23
25
|
ssl?: boolean | object;
|
|
@@ -31,6 +33,7 @@ export interface KafkaModuleOptions {
|
|
|
31
33
|
logLevel?: 'NOTHING' | 'ERROR' | 'WARN' | 'INFO' | 'DEBUG';
|
|
32
34
|
}
|
|
33
35
|
export interface KafkaModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
|
|
36
|
+
name?: string;
|
|
34
37
|
useFactory?: (...args: any[]) => Promise<KafkaModuleOptions> | KafkaModuleOptions;
|
|
35
38
|
inject?: any[];
|
|
36
39
|
useClass?: Type<KafkaOptionsFactory>;
|
|
@@ -41,3 +44,6 @@ export interface KafkaOptionsFactory {
|
|
|
41
44
|
createKafkaOptions(): Promise<KafkaModuleOptions> | KafkaModuleOptions;
|
|
42
45
|
}
|
|
43
46
|
export declare const KAFKA_MODULE_OPTIONS: unique symbol;
|
|
47
|
+
export declare function getKafkaOptionsToken(name?: string): string;
|
|
48
|
+
export declare function getKafkaCoreToken(name?: string): string;
|
|
49
|
+
export declare function getKafkaClientToken(name?: string): string;
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.KAFKA_MODULE_OPTIONS = void 0;
|
|
3
|
+
exports.KAFKA_MODULE_OPTIONS = exports.DEFAULT_KAFKA_CONNECTION = void 0;
|
|
4
|
+
exports.getKafkaOptionsToken = getKafkaOptionsToken;
|
|
5
|
+
exports.getKafkaCoreToken = getKafkaCoreToken;
|
|
6
|
+
exports.getKafkaClientToken = getKafkaClientToken;
|
|
7
|
+
exports.DEFAULT_KAFKA_CONNECTION = 'default';
|
|
4
8
|
exports.KAFKA_MODULE_OPTIONS = Symbol('KAFKA_MODULE_OPTIONS');
|
|
9
|
+
function getKafkaOptionsToken(name) {
|
|
10
|
+
return `KAFKA_OPTIONS_${name || exports.DEFAULT_KAFKA_CONNECTION}`;
|
|
11
|
+
}
|
|
12
|
+
function getKafkaCoreToken(name) {
|
|
13
|
+
return `KAFKA_CORE_${name || exports.DEFAULT_KAFKA_CONNECTION}`;
|
|
14
|
+
}
|
|
15
|
+
function getKafkaClientToken(name) {
|
|
16
|
+
return `KAFKA_CLIENT_${name || exports.DEFAULT_KAFKA_CONNECTION}`;
|
|
17
|
+
}
|
|
5
18
|
//# sourceMappingURL=kafka-module-options.interface.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kafka-module-options.interface.js","sourceRoot":"","sources":["../../lib/interfaces/kafka-module-options.interface.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"kafka-module-options.interface.js","sourceRoot":"","sources":["../../lib/interfaces/kafka-module-options.interface.ts"],"names":[],"mappings":";;;AAoEA,oDAEC;AAGD,8CAEC;AAGD,kDAEC;AA1DY,QAAA,wBAAwB,GAAW,SAAS,CAAC;AA2C7C,QAAA,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAGnE,SAAgB,oBAAoB,CAAC,IAAa;IAChD,OAAO,iBAAiB,IAAI,IAAI,gCAAwB,EAAE,CAAC;AAC7D,CAAC;AAGD,SAAgB,iBAAiB,CAAC,IAAa;IAC7C,OAAO,cAAc,IAAI,IAAI,gCAAwB,EAAE,CAAC;AAC1D,CAAC;AAGD,SAAgB,mBAAmB,CAAC,IAAa;IAC/C,OAAO,gBAAgB,IAAI,IAAI,gCAAwB,EAAE,CAAC;AAC5D,CAAC"}
|
package/dist/kafka.module.d.ts
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
import { DynamicModule } from '@nestjs/common';
|
|
1
|
+
import { DynamicModule, OnModuleInit } from '@nestjs/common';
|
|
2
2
|
import { KafkaModuleOptions, KafkaModuleAsyncOptions } from './interfaces';
|
|
3
|
-
|
|
3
|
+
import { KafkaCoreService } from './services/kafka-core.service';
|
|
4
|
+
export declare class KafkaModule implements OnModuleInit {
|
|
5
|
+
private readonly kafkaCore;
|
|
6
|
+
private readonly connectionNames?;
|
|
7
|
+
private static isFirstModule;
|
|
8
|
+
constructor(kafkaCore: KafkaCoreService, connectionNames?: string[] | undefined);
|
|
9
|
+
onModuleInit(): void;
|
|
4
10
|
static forRoot(options: KafkaModuleOptions): DynamicModule;
|
|
11
|
+
static forRootMultiple(optionsArray: KafkaModuleOptions[]): DynamicModule;
|
|
5
12
|
static forRootAsync(options: KafkaModuleAsyncOptions): DynamicModule;
|
|
6
13
|
private static createAsyncProviders;
|
|
7
14
|
}
|
package/dist/kafka.module.js
CHANGED
|
@@ -5,6 +5,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
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
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
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
|
+
};
|
|
8
14
|
var KafkaModule_1;
|
|
9
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
16
|
exports.KafkaModule = void 0;
|
|
@@ -21,66 +27,178 @@ const pressure_manager_service_1 = require("./services/pressure-manager.service"
|
|
|
21
27
|
const dlq_service_1 = require("./services/dlq.service");
|
|
22
28
|
const kafka_health_indicator_1 = require("./health/kafka-health-indicator");
|
|
23
29
|
const terminus_1 = require("@nestjs/terminus");
|
|
24
|
-
|
|
30
|
+
const KAFKA_CONNECTION_NAMES = Symbol('KAFKA_CONNECTION_NAMES');
|
|
31
|
+
let KafkaModule = class KafkaModule {
|
|
32
|
+
static { KafkaModule_1 = this; }
|
|
33
|
+
kafkaCore;
|
|
34
|
+
connectionNames;
|
|
35
|
+
static isFirstModule = true;
|
|
36
|
+
constructor(kafkaCore, connectionNames) {
|
|
37
|
+
this.kafkaCore = kafkaCore;
|
|
38
|
+
this.connectionNames = connectionNames;
|
|
39
|
+
}
|
|
40
|
+
onModuleInit() {
|
|
41
|
+
}
|
|
25
42
|
static forRoot(options) {
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
43
|
+
const connectionName = options.name || interfaces_1.DEFAULT_KAFKA_CONNECTION;
|
|
44
|
+
const optionsToken = (0, interfaces_1.getKafkaOptionsToken)(connectionName);
|
|
45
|
+
const clientToken = (0, interfaces_1.getKafkaClientToken)(connectionName);
|
|
46
|
+
const providers = [
|
|
47
|
+
{
|
|
48
|
+
provide: optionsToken,
|
|
49
|
+
useValue: options,
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
provide: `KAFKA_INIT_${connectionName}`,
|
|
53
|
+
useFactory: (kafkaCore) => {
|
|
54
|
+
kafkaCore.registerConnection(options);
|
|
55
|
+
return true;
|
|
56
|
+
},
|
|
57
|
+
inject: [kafka_core_service_1.KafkaCoreService],
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
provide: clientToken,
|
|
61
|
+
useFactory: (kafkaClient) => {
|
|
62
|
+
if (connectionName === interfaces_1.DEFAULT_KAFKA_CONNECTION) {
|
|
63
|
+
return kafkaClient;
|
|
64
|
+
}
|
|
65
|
+
return kafkaClient.forConnection(connectionName);
|
|
66
|
+
},
|
|
67
|
+
inject: [kafka_client_service_1.KafkaClient],
|
|
68
|
+
},
|
|
69
|
+
];
|
|
70
|
+
if (this.isFirstModule) {
|
|
71
|
+
this.isFirstModule = false;
|
|
72
|
+
providers.push({
|
|
73
|
+
provide: interfaces_1.KAFKA_MODULE_OPTIONS,
|
|
74
|
+
useValue: options,
|
|
75
|
+
}, kafka_core_service_1.KafkaCoreService, kafka_client_service_1.KafkaClient, consumer_discovery_service_1.ConsumerDiscoveryService, consumer_registry_service_1.ConsumerRegistryService, batch_processor_service_1.BatchProcessorService, idempotency_service_1.IdempotencyService, pressure_manager_service_1.PressureManagerService, dlq_service_1.DlqService, kafka_health_indicator_1.KafkaHealthIndicator);
|
|
76
|
+
}
|
|
30
77
|
return {
|
|
31
78
|
module: KafkaModule_1,
|
|
32
79
|
imports: [core_1.DiscoveryModule, terminus_1.TerminusModule],
|
|
33
|
-
providers
|
|
34
|
-
optionsProvider,
|
|
35
|
-
kafka_core_service_1.KafkaCoreService,
|
|
36
|
-
kafka_client_service_1.KafkaClient,
|
|
37
|
-
consumer_discovery_service_1.ConsumerDiscoveryService,
|
|
38
|
-
consumer_registry_service_1.ConsumerRegistryService,
|
|
39
|
-
batch_processor_service_1.BatchProcessorService,
|
|
40
|
-
idempotency_service_1.IdempotencyService,
|
|
41
|
-
pressure_manager_service_1.PressureManagerService,
|
|
42
|
-
dlq_service_1.DlqService,
|
|
43
|
-
kafka_health_indicator_1.KafkaHealthIndicator,
|
|
44
|
-
],
|
|
80
|
+
providers,
|
|
45
81
|
exports: [
|
|
82
|
+
optionsToken,
|
|
83
|
+
clientToken,
|
|
84
|
+
kafka_core_service_1.KafkaCoreService,
|
|
46
85
|
kafka_client_service_1.KafkaClient,
|
|
47
86
|
kafka_health_indicator_1.KafkaHealthIndicator,
|
|
48
87
|
consumer_discovery_service_1.ConsumerDiscoveryService,
|
|
49
88
|
consumer_registry_service_1.ConsumerRegistryService,
|
|
50
|
-
interfaces_1.KAFKA_MODULE_OPTIONS,
|
|
51
89
|
],
|
|
52
90
|
};
|
|
53
91
|
}
|
|
92
|
+
static forRootMultiple(optionsArray) {
|
|
93
|
+
const providers = [];
|
|
94
|
+
const exports = [
|
|
95
|
+
kafka_core_service_1.KafkaCoreService,
|
|
96
|
+
kafka_client_service_1.KafkaClient,
|
|
97
|
+
kafka_health_indicator_1.KafkaHealthIndicator,
|
|
98
|
+
consumer_discovery_service_1.ConsumerDiscoveryService,
|
|
99
|
+
consumer_registry_service_1.ConsumerRegistryService,
|
|
100
|
+
];
|
|
101
|
+
for (const options of optionsArray) {
|
|
102
|
+
const connectionName = options.name || interfaces_1.DEFAULT_KAFKA_CONNECTION;
|
|
103
|
+
const optionsToken = (0, interfaces_1.getKafkaOptionsToken)(connectionName);
|
|
104
|
+
const clientToken = (0, interfaces_1.getKafkaClientToken)(connectionName);
|
|
105
|
+
providers.push({
|
|
106
|
+
provide: optionsToken,
|
|
107
|
+
useValue: options,
|
|
108
|
+
}, {
|
|
109
|
+
provide: `KAFKA_INIT_${connectionName}`,
|
|
110
|
+
useFactory: (kafkaCore) => {
|
|
111
|
+
kafkaCore.registerConnection(options);
|
|
112
|
+
return true;
|
|
113
|
+
},
|
|
114
|
+
inject: [kafka_core_service_1.KafkaCoreService],
|
|
115
|
+
}, {
|
|
116
|
+
provide: clientToken,
|
|
117
|
+
useFactory: (kafkaClient) => {
|
|
118
|
+
if (connectionName === interfaces_1.DEFAULT_KAFKA_CONNECTION) {
|
|
119
|
+
return kafkaClient;
|
|
120
|
+
}
|
|
121
|
+
return kafkaClient.forConnection(connectionName);
|
|
122
|
+
},
|
|
123
|
+
inject: [kafka_client_service_1.KafkaClient],
|
|
124
|
+
});
|
|
125
|
+
exports.push(optionsToken);
|
|
126
|
+
exports.push(clientToken);
|
|
127
|
+
}
|
|
128
|
+
const defaultOptions = optionsArray[0];
|
|
129
|
+
providers.push({
|
|
130
|
+
provide: interfaces_1.KAFKA_MODULE_OPTIONS,
|
|
131
|
+
useValue: defaultOptions,
|
|
132
|
+
}, {
|
|
133
|
+
provide: KAFKA_CONNECTION_NAMES,
|
|
134
|
+
useValue: optionsArray.map((o) => o.name || interfaces_1.DEFAULT_KAFKA_CONNECTION),
|
|
135
|
+
}, kafka_core_service_1.KafkaCoreService, kafka_client_service_1.KafkaClient, consumer_discovery_service_1.ConsumerDiscoveryService, consumer_registry_service_1.ConsumerRegistryService, batch_processor_service_1.BatchProcessorService, idempotency_service_1.IdempotencyService, pressure_manager_service_1.PressureManagerService, dlq_service_1.DlqService, kafka_health_indicator_1.KafkaHealthIndicator);
|
|
136
|
+
this.isFirstModule = false;
|
|
137
|
+
return {
|
|
138
|
+
module: KafkaModule_1,
|
|
139
|
+
imports: [core_1.DiscoveryModule, terminus_1.TerminusModule],
|
|
140
|
+
providers,
|
|
141
|
+
exports,
|
|
142
|
+
global: true,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
54
145
|
static forRootAsync(options) {
|
|
55
|
-
const
|
|
146
|
+
const connectionName = options.name || interfaces_1.DEFAULT_KAFKA_CONNECTION;
|
|
147
|
+
const optionsToken = (0, interfaces_1.getKafkaOptionsToken)(connectionName);
|
|
148
|
+
const clientToken = (0, interfaces_1.getKafkaClientToken)(connectionName);
|
|
149
|
+
const asyncProviders = this.createAsyncProviders(options, optionsToken);
|
|
150
|
+
const providers = [
|
|
151
|
+
...asyncProviders,
|
|
152
|
+
{
|
|
153
|
+
provide: `KAFKA_INIT_${connectionName}`,
|
|
154
|
+
useFactory: (kafkaCore, kafkaOptions) => {
|
|
155
|
+
kafkaCore.registerConnection({
|
|
156
|
+
...kafkaOptions,
|
|
157
|
+
name: connectionName,
|
|
158
|
+
});
|
|
159
|
+
return true;
|
|
160
|
+
},
|
|
161
|
+
inject: [kafka_core_service_1.KafkaCoreService, optionsToken],
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
provide: clientToken,
|
|
165
|
+
useFactory: (kafkaClient) => {
|
|
166
|
+
if (connectionName === interfaces_1.DEFAULT_KAFKA_CONNECTION) {
|
|
167
|
+
return kafkaClient;
|
|
168
|
+
}
|
|
169
|
+
return kafkaClient.forConnection(connectionName);
|
|
170
|
+
},
|
|
171
|
+
inject: [kafka_client_service_1.KafkaClient],
|
|
172
|
+
},
|
|
173
|
+
];
|
|
174
|
+
if (this.isFirstModule) {
|
|
175
|
+
this.isFirstModule = false;
|
|
176
|
+
providers.push(kafka_core_service_1.KafkaCoreService, kafka_client_service_1.KafkaClient, consumer_discovery_service_1.ConsumerDiscoveryService, consumer_registry_service_1.ConsumerRegistryService, batch_processor_service_1.BatchProcessorService, idempotency_service_1.IdempotencyService, pressure_manager_service_1.PressureManagerService, dlq_service_1.DlqService, kafka_health_indicator_1.KafkaHealthIndicator);
|
|
177
|
+
}
|
|
56
178
|
return {
|
|
57
179
|
module: KafkaModule_1,
|
|
58
|
-
imports: [...(options.imports || []), core_1.DiscoveryModule],
|
|
59
|
-
providers
|
|
60
|
-
...asyncProviders,
|
|
61
|
-
kafka_core_service_1.KafkaCoreService,
|
|
62
|
-
kafka_client_service_1.KafkaClient,
|
|
63
|
-
consumer_discovery_service_1.ConsumerDiscoveryService,
|
|
64
|
-
consumer_registry_service_1.ConsumerRegistryService,
|
|
65
|
-
batch_processor_service_1.BatchProcessorService,
|
|
66
|
-
idempotency_service_1.IdempotencyService,
|
|
67
|
-
pressure_manager_service_1.PressureManagerService,
|
|
68
|
-
dlq_service_1.DlqService,
|
|
69
|
-
kafka_health_indicator_1.KafkaHealthIndicator,
|
|
70
|
-
],
|
|
180
|
+
imports: [...(options.imports || []), core_1.DiscoveryModule, terminus_1.TerminusModule],
|
|
181
|
+
providers,
|
|
71
182
|
exports: [
|
|
183
|
+
optionsToken,
|
|
184
|
+
clientToken,
|
|
185
|
+
kafka_core_service_1.KafkaCoreService,
|
|
72
186
|
kafka_client_service_1.KafkaClient,
|
|
73
187
|
kafka_health_indicator_1.KafkaHealthIndicator,
|
|
74
188
|
consumer_discovery_service_1.ConsumerDiscoveryService,
|
|
75
189
|
consumer_registry_service_1.ConsumerRegistryService,
|
|
76
|
-
interfaces_1.KAFKA_MODULE_OPTIONS,
|
|
77
190
|
],
|
|
78
191
|
global: options.global ?? true,
|
|
79
192
|
};
|
|
80
193
|
}
|
|
81
|
-
static createAsyncProviders(options) {
|
|
194
|
+
static createAsyncProviders(options, optionsToken) {
|
|
82
195
|
if (options.useFactory) {
|
|
83
196
|
return [
|
|
197
|
+
{
|
|
198
|
+
provide: optionsToken,
|
|
199
|
+
useFactory: options.useFactory,
|
|
200
|
+
inject: options.inject || [],
|
|
201
|
+
},
|
|
84
202
|
{
|
|
85
203
|
provide: interfaces_1.KAFKA_MODULE_OPTIONS,
|
|
86
204
|
useFactory: options.useFactory,
|
|
@@ -93,6 +211,11 @@ let KafkaModule = KafkaModule_1 = class KafkaModule {
|
|
|
93
211
|
throw new Error('Invalid KafkaModuleAsyncOptions');
|
|
94
212
|
}
|
|
95
213
|
return [
|
|
214
|
+
{
|
|
215
|
+
provide: optionsToken,
|
|
216
|
+
useFactory: async (optionsFactory) => await optionsFactory.createKafkaOptions(),
|
|
217
|
+
inject: [useClass],
|
|
218
|
+
},
|
|
96
219
|
{
|
|
97
220
|
provide: interfaces_1.KAFKA_MODULE_OPTIONS,
|
|
98
221
|
useFactory: async (optionsFactory) => await optionsFactory.createKafkaOptions(),
|
|
@@ -105,6 +228,9 @@ let KafkaModule = KafkaModule_1 = class KafkaModule {
|
|
|
105
228
|
exports.KafkaModule = KafkaModule;
|
|
106
229
|
exports.KafkaModule = KafkaModule = KafkaModule_1 = __decorate([
|
|
107
230
|
(0, common_1.Global)(),
|
|
108
|
-
(0, common_1.Module)({})
|
|
231
|
+
(0, common_1.Module)({}),
|
|
232
|
+
__param(1, (0, common_1.Optional)()),
|
|
233
|
+
__param(1, (0, common_1.Inject)(KAFKA_CONNECTION_NAMES)),
|
|
234
|
+
__metadata("design:paramtypes", [kafka_core_service_1.KafkaCoreService, Array])
|
|
109
235
|
], KafkaModule);
|
|
110
236
|
//# sourceMappingURL=kafka.module.js.map
|
package/dist/kafka.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kafka.module.js","sourceRoot":"","sources":["../lib/kafka.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"kafka.module.js","sourceRoot":"","sources":["../lib/kafka.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAQwB;AACxB,uCAA+C;AAC/C,6CAQsB;AACtB,sEAAiE;AACjE,0EAGyC;AACzC,uFAAkF;AAClF,oFAA+E;AAC/E,gFAA2E;AAC3E,wEAAoE;AACpE,kFAA6E;AAC7E,wDAAoD;AACpD,4EAAuE;AACvE,+CAAkD;AAGlD,MAAM,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAIzD,IAAM,WAAW,GAAjB,MAAM,WAAW;;IAIH;IAGA;IANX,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;IAEpC,YACmB,SAA2B,EAG3B,eAA0B;QAH1B,cAAS,GAAT,SAAS,CAAkB;QAG3B,oBAAe,GAAf,eAAe,CAAW;IAC1C,CAAC;IAEJ,YAAY;IAEZ,CAAC;IAKD,MAAM,CAAC,OAAO,CAAC,OAA2B;QACxC,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,IAAI,qCAAwB,CAAC;QAChE,MAAM,YAAY,GAAG,IAAA,iCAAoB,EAAC,cAAc,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,IAAA,gCAAmB,EAAC,cAAc,CAAC,CAAC;QAExD,MAAM,SAAS,GAAe;YAC5B;gBACE,OAAO,EAAE,YAAY;gBACrB,QAAQ,EAAE,OAAO;aAClB;YACD;gBACE,OAAO,EAAE,cAAc,cAAc,EAAE;gBACvC,UAAU,EAAE,CAAC,SAA2B,EAAE,EAAE;oBAC1C,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;oBACtC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM,EAAE,CAAC,qCAAgB,CAAC;aAC3B;YAED;gBACE,OAAO,EAAE,WAAW;gBACpB,UAAU,EAAE,CACV,WAAwB,EACa,EAAE;oBACvC,IAAI,cAAc,KAAK,qCAAwB,EAAE,CAAC;wBAChD,OAAO,WAAW,CAAC;oBACrB,CAAC;oBACD,OAAO,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;gBACnD,CAAC;gBACD,MAAM,EAAE,CAAC,kCAAW,CAAC;aACtB;SACF,CAAC;QAGF,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,SAAS,CAAC,IAAI,CACZ;gBACE,OAAO,EAAE,iCAAoB;gBAC7B,QAAQ,EAAE,OAAO;aAClB,EACD,qCAAgB,EAChB,kCAAW,EACX,qDAAwB,EACxB,mDAAuB,EACvB,+CAAqB,EACrB,wCAAkB,EAClB,iDAAsB,EACtB,wBAAU,EACV,6CAAoB,CACrB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,MAAM,EAAE,aAAW;YACnB,OAAO,EAAE,CAAC,sBAAe,EAAE,yBAAc,CAAC;YAC1C,SAAS;YACT,OAAO,EAAE;gBACP,YAAY;gBACZ,WAAW;gBACX,qCAAgB;gBAChB,kCAAW;gBACX,6CAAoB;gBACpB,qDAAwB;gBACxB,mDAAuB;aACxB;SACF,CAAC;IACJ,CAAC;IAKD,MAAM,CAAC,eAAe,CAAC,YAAkC;QACvD,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,MAAM,OAAO,GAAmC;YAC9C,qCAAgB;YAChB,kCAAW;YACX,6CAAoB;YACpB,qDAAwB;YACxB,mDAAuB;SACxB,CAAC;QAGF,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;YACnC,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,IAAI,qCAAwB,CAAC;YAChE,MAAM,YAAY,GAAG,IAAA,iCAAoB,EAAC,cAAc,CAAC,CAAC;YAC1D,MAAM,WAAW,GAAG,IAAA,gCAAmB,EAAC,cAAc,CAAC,CAAC;YAExD,SAAS,CAAC,IAAI,CACZ;gBACE,OAAO,EAAE,YAAY;gBACrB,QAAQ,EAAE,OAAO;aAClB,EACD;gBACE,OAAO,EAAE,cAAc,cAAc,EAAE;gBACvC,UAAU,EAAE,CAAC,SAA2B,EAAE,EAAE;oBAC1C,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;oBACtC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM,EAAE,CAAC,qCAAgB,CAAC;aAC3B,EAED;gBACE,OAAO,EAAE,WAAW;gBACpB,UAAU,EAAE,CACV,WAAwB,EACa,EAAE;oBACvC,IAAI,cAAc,KAAK,qCAAwB,EAAE,CAAC;wBAChD,OAAO,WAAW,CAAC;oBACrB,CAAC;oBACD,OAAO,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;gBACnD,CAAC;gBACD,MAAM,EAAE,CAAC,kCAAW,CAAC;aACtB,CACF,CAAC;YAEF,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5B,CAAC;QAGD,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACvC,SAAS,CAAC,IAAI,CACZ;YACE,OAAO,EAAE,iCAAoB;YAC7B,QAAQ,EAAE,cAAc;SACzB,EACD;YACE,OAAO,EAAE,sBAAsB;YAC/B,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,qCAAwB,CAAC;SACtE,EACD,qCAAgB,EAChB,kCAAW,EACX,qDAAwB,EACxB,mDAAuB,EACvB,+CAAqB,EACrB,wCAAkB,EAClB,iDAAsB,EACtB,wBAAU,EACV,6CAAoB,CACrB,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAE3B,OAAO;YACL,MAAM,EAAE,aAAW;YACnB,OAAO,EAAE,CAAC,sBAAe,EAAE,yBAAc,CAAC;YAC1C,SAAS;YACT,OAAO;YACP,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;IAKD,MAAM,CAAC,YAAY,CAAC,OAAgC;QAClD,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,IAAI,qCAAwB,CAAC;QAChE,MAAM,YAAY,GAAG,IAAA,iCAAoB,EAAC,cAAc,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,IAAA,gCAAmB,EAAC,cAAc,CAAC,CAAC;QAExD,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAExE,MAAM,SAAS,GAAe;YAC5B,GAAG,cAAc;YACjB;gBACE,OAAO,EAAE,cAAc,cAAc,EAAE;gBACvC,UAAU,EAAE,CACV,SAA2B,EAC3B,YAAgC,EAChC,EAAE;oBACF,SAAS,CAAC,kBAAkB,CAAC;wBAC3B,GAAG,YAAY;wBACf,IAAI,EAAE,cAAc;qBACrB,CAAC,CAAC;oBACH,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM,EAAE,CAAC,qCAAgB,EAAE,YAAY,CAAC;aACzC;YAED;gBACE,OAAO,EAAE,WAAW;gBACpB,UAAU,EAAE,CACV,WAAwB,EACa,EAAE;oBACvC,IAAI,cAAc,KAAK,qCAAwB,EAAE,CAAC;wBAChD,OAAO,WAAW,CAAC;oBACrB,CAAC;oBACD,OAAO,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;gBACnD,CAAC;gBACD,MAAM,EAAE,CAAC,kCAAW,CAAC;aACtB;SACF,CAAC;QAGF,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,SAAS,CAAC,IAAI,CACZ,qCAAgB,EAChB,kCAAW,EACX,qDAAwB,EACxB,mDAAuB,EACvB,+CAAqB,EACrB,wCAAkB,EAClB,iDAAsB,EACtB,wBAAU,EACV,6CAAoB,CACrB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,MAAM,EAAE,aAAW;YACnB,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,sBAAe,EAAE,yBAAc,CAAC;YACtE,SAAS;YACT,OAAO,EAAE;gBACP,YAAY;gBACZ,WAAW;gBACX,qCAAgB;gBAChB,kCAAW;gBACX,6CAAoB;gBACpB,qDAAwB;gBACxB,mDAAuB;aACxB;YACD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI;SAC/B,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,oBAAoB,CACjC,OAAgC,EAChC,YAAoB;QAEpB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO;gBACL;oBACE,OAAO,EAAE,YAAY;oBACrB,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;iBAC7B;gBACD;oBACE,OAAO,EAAE,iCAAoB;oBAC7B,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;iBAC7B;aACF,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;QACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,OAAO;YACL;gBACE,OAAO,EAAE,YAAY;gBACrB,UAAU,EAAE,KAAK,EAAE,cAAmC,EAAE,EAAE,CACxD,MAAM,cAAc,CAAC,kBAAkB,EAAE;gBAC3C,MAAM,EAAE,CAAC,QAAQ,CAAC;aACnB;YACD;gBACE,OAAO,EAAE,iCAAoB;gBAC7B,UAAU,EAAE,KAAK,EAAE,cAAmC,EAAE,EAAE,CACxD,MAAM,cAAc,CAAC,kBAAkB,EAAE;gBAC3C,MAAM,EAAE,CAAC,QAAQ,CAAC;aACnB;YACD,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/D,CAAC;IACJ,CAAC;;AA3RU,kCAAW;sBAAX,WAAW;IAFvB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;IAMN,WAAA,IAAA,iBAAQ,GAAE,CAAA;IACV,WAAA,IAAA,eAAM,EAAC,sBAAsB,CAAC,CAAA;qCAFH,qCAAgB;GAJnC,WAAW,CA4RvB"}
|
|
@@ -12,16 +12,17 @@ export declare class ConsumerRegistryService implements OnApplicationShutdown {
|
|
|
12
12
|
private readonly pressureManager;
|
|
13
13
|
private readonly dlqService;
|
|
14
14
|
private readonly logger;
|
|
15
|
-
private
|
|
15
|
+
private consumerGroups;
|
|
16
16
|
private isShuttingDown;
|
|
17
17
|
constructor(kafkaCore: KafkaCoreService, batchProcessor: BatchProcessorService, idempotencyService: IdempotencyService, pressureManager: PressureManagerService, dlqService: DlqService);
|
|
18
18
|
registerConsumers(consumers: ConsumerMetadata[]): void;
|
|
19
19
|
private registerConsumer;
|
|
20
20
|
private buildRestartOnFailure;
|
|
21
21
|
startAll(): Promise<void>;
|
|
22
|
-
private
|
|
23
|
-
private
|
|
24
|
-
private
|
|
22
|
+
private startConsumerGroup;
|
|
23
|
+
private startMessageGroupConsumer;
|
|
24
|
+
private startBatchGroupConsumer;
|
|
25
|
+
private processBatchMessages;
|
|
25
26
|
private handleError;
|
|
26
27
|
gracefulShutdown(): Promise<void>;
|
|
27
28
|
onApplicationShutdown(): Promise<void>;
|