@rsdk/kafka.common 4.0.0-next.7 → 4.0.0-next.8
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/CHANGELOG.md +6 -0
- package/dist/client/constants.d.ts +2 -0
- package/dist/client/constants.js +6 -0
- package/dist/client/constants.js.map +1 -0
- package/dist/client/decorators/inject-kafka.decorator.d.ts +1 -0
- package/dist/client/decorators/inject-kafka.decorator.js +8 -0
- package/dist/client/decorators/inject-kafka.decorator.js.map +1 -0
- package/dist/client/decorators/inject-producer.decorator.d.ts +1 -0
- package/dist/client/decorators/inject-producer.decorator.js +8 -0
- package/dist/client/decorators/inject-producer.decorator.js.map +1 -0
- package/dist/client/kafka-client.module.js +5 -5
- package/dist/client/kafka-client.module.js.map +1 -1
- package/dist/client/kafka.base-indicator.d.ts +10 -0
- package/dist/client/{kafka.healthcheck.js → kafka.base-indicator.js} +18 -18
- package/dist/client/kafka.base-indicator.js.map +1 -0
- package/dist/{metadata → client}/kafka.metadata.d.ts +9 -5
- package/dist/client/kafka.metadata.js +10 -0
- package/dist/client/kafka.metadata.js.map +1 -0
- package/dist/client/providers/kafka-producer.provider.d.ts +2 -0
- package/dist/client/providers/kafka-producer.provider.js +19 -0
- package/dist/client/providers/kafka-producer.provider.js.map +1 -0
- package/dist/client/providers/kafka.provider.d.ts +2 -0
- package/dist/client/providers/kafka.provider.js +24 -0
- package/dist/client/providers/kafka.provider.js.map +1 -0
- package/dist/client/providers/topics.service.d.ts +8 -0
- package/dist/{exceptions/payload-format-validator.exception.js → client/providers/topics.service.js} +22 -18
- package/dist/client/providers/topics.service.js.map +1 -0
- package/dist/event.type.d.ts +13 -0
- package/dist/event.type.js +6 -0
- package/dist/event.type.js.map +1 -1
- package/dist/exceptions/missing-topics.exception.d.ts +12 -0
- package/dist/exceptions/missing-topics.exception.js +21 -0
- package/dist/exceptions/missing-topics.exception.js.map +1 -0
- package/dist/exceptions/payload-format.exception.d.ts +5 -0
- package/dist/exceptions/payload-format.exception.js +11 -0
- package/dist/exceptions/payload-format.exception.js.map +1 -0
- package/dist/exceptions/unknown-kafka.exception.d.ts +4 -0
- package/dist/exceptions/unknown-kafka.exception.js +17 -0
- package/dist/exceptions/unknown-kafka.exception.js.map +1 -0
- package/dist/index.d.ts +14 -10
- package/dist/index.js +24 -19
- package/dist/index.js.map +1 -1
- package/dist/payload-format.d.ts +21 -0
- package/dist/payload-format.js +32 -1
- package/dist/payload-format.js.map +1 -1
- package/dist/{create-logger-adapter.fn.d.ts → utils/create-logger-adapter.fn.d.ts} +3 -0
- package/dist/{create-logger-adapter.fn.js → utils/create-logger-adapter.fn.js} +3 -0
- package/dist/utils/create-logger-adapter.fn.js.map +1 -0
- package/dist/utils/event.codec.d.ts +22 -0
- package/dist/utils/event.codec.js +32 -0
- package/dist/utils/event.codec.js.map +1 -0
- package/dist/utils/handle-kafka.error.fn.d.ts +1 -0
- package/dist/utils/handle-kafka.error.fn.js +15 -0
- package/dist/utils/handle-kafka.error.fn.js.map +1 -0
- package/dist/utils/retry-policy.infinite.d.ts +2 -0
- package/dist/{retry-policy.js → utils/retry-policy.infinite.js} +3 -3
- package/dist/utils/retry-policy.infinite.js.map +1 -0
- package/package.json +4 -4
- package/src/client/constants.ts +2 -0
- package/src/client/decorators/inject-kafka.decorator.ts +6 -0
- package/src/client/decorators/inject-producer.decorator.ts +6 -0
- package/src/client/kafka-client.module.ts +5 -6
- package/src/client/{kafka.healthcheck.ts → kafka.base-indicator.ts} +17 -18
- package/src/{metadata → client}/kafka.metadata.ts +12 -5
- package/src/client/providers/kafka-producer.provider.ts +23 -0
- package/src/client/providers/kafka.provider.ts +24 -0
- package/src/client/providers/topics.service.ts +23 -0
- package/src/event.type.ts +16 -0
- package/src/exceptions/missing-topics.exception.ts +19 -0
- package/src/exceptions/payload-format.exception.ts +10 -0
- package/src/exceptions/unknown-kafka.exception.ts +13 -0
- package/src/index.ts +20 -12
- package/src/payload-format.ts +38 -0
- package/src/{create-logger-adapter.fn.ts → utils/create-logger-adapter.fn.ts} +3 -0
- package/src/utils/event.codec.ts +34 -0
- package/src/utils/handle-kafka.error.fn.ts +17 -0
- package/src/utils/retry-policy.infinite.ts +8 -0
- package/tsconfig.json +0 -1
- package/dist/client/kafka.client.d.ts +0 -7
- package/dist/client/kafka.client.js +0 -43
- package/dist/client/kafka.client.js.map +0 -1
- package/dist/client/kafka.healthcheck.d.ts +0 -9
- package/dist/client/kafka.healthcheck.js.map +0 -1
- package/dist/create-logger-adapter.fn.js.map +0 -1
- package/dist/exception.d.ts +0 -32
- package/dist/exception.js +0 -61
- package/dist/exception.js.map +0 -1
- package/dist/exceptions/payload-format-validator.exception.d.ts +0 -4
- package/dist/exceptions/payload-format-validator.exception.js.map +0 -1
- package/dist/metadata/kafka-metadata.module.d.ts +0 -2
- package/dist/metadata/kafka-metadata.module.js +0 -21
- package/dist/metadata/kafka-metadata.module.js.map +0 -1
- package/dist/metadata/kafka-metadata.provider.d.ts +0 -8
- package/dist/metadata/kafka-metadata.provider.js +0 -42
- package/dist/metadata/kafka-metadata.provider.js.map +0 -1
- package/dist/metadata/kafka.metadata.js +0 -10
- package/dist/metadata/kafka.metadata.js.map +0 -1
- package/dist/retry-policy.d.ts +0 -6
- package/dist/retry-policy.js.map +0 -1
- package/dist/validators/payload-format.validator.d.ts +0 -3
- package/dist/validators/payload-format.validator.js +0 -14
- package/dist/validators/payload-format.validator.js.map +0 -1
- package/src/client/kafka.client.ts +0 -49
- package/src/exception.ts +0 -67
- package/src/exceptions/payload-format-validator.exception.ts +0 -17
- package/src/metadata/kafka-metadata.module.ts +0 -9
- package/src/metadata/kafka-metadata.provider.ts +0 -36
- package/src/retry-policy.ts +0 -6
- package/src/validators/payload-format.validator.ts +0 -18
package/tsconfig.json
CHANGED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { FactoryProvider } from '@nestjs/common';
|
|
2
|
-
export declare const KAFKA_CLIENT_INJECTION_TOKEN: unique symbol;
|
|
3
|
-
export declare const KAFKA_PRODUCER_INJECTION_TOKEN: unique symbol;
|
|
4
|
-
export declare const InjectKafka: () => ParameterDecorator;
|
|
5
|
-
export declare const InjectKafkaProducer: () => ParameterDecorator;
|
|
6
|
-
export declare const KafkaClient: FactoryProvider;
|
|
7
|
-
export declare const KafkaProducer: FactoryProvider;
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.KafkaProducer = exports.KafkaClient = exports.InjectKafkaProducer = exports.InjectKafka = exports.KAFKA_PRODUCER_INJECTION_TOKEN = exports.KAFKA_CLIENT_INJECTION_TOKEN = void 0;
|
|
4
|
-
const common_1 = require("@nestjs/common");
|
|
5
|
-
const core_1 = require("@rsdk/core");
|
|
6
|
-
const logging_1 = require("@rsdk/logging");
|
|
7
|
-
const kafkajs_1 = require("kafkajs");
|
|
8
|
-
const create_logger_adapter_fn_1 = require("../create-logger-adapter.fn");
|
|
9
|
-
const retry_policy_1 = require("../retry-policy");
|
|
10
|
-
const kafka_config_1 = require("./kafka.config");
|
|
11
|
-
exports.KAFKA_CLIENT_INJECTION_TOKEN = Symbol('KafkaClient');
|
|
12
|
-
exports.KAFKA_PRODUCER_INJECTION_TOKEN = Symbol('KafkaProducer');
|
|
13
|
-
const InjectKafka = () => (0, common_1.Inject)(exports.KAFKA_CLIENT_INJECTION_TOKEN);
|
|
14
|
-
exports.InjectKafka = InjectKafka;
|
|
15
|
-
const InjectKafkaProducer = () => (0, common_1.Inject)(exports.KAFKA_PRODUCER_INJECTION_TOKEN);
|
|
16
|
-
exports.InjectKafkaProducer = InjectKafkaProducer;
|
|
17
|
-
exports.KafkaClient = {
|
|
18
|
-
inject: [kafka_config_1.KafkaConfig, core_1.APP_NAME],
|
|
19
|
-
provide: exports.KAFKA_CLIENT_INJECTION_TOKEN,
|
|
20
|
-
useFactory(config, name) {
|
|
21
|
-
const logger = logging_1.LoggerFactory.create('NativeKafkaProducer');
|
|
22
|
-
return new kafkajs_1.Kafka({
|
|
23
|
-
clientId: `${name}-${process.pid}`,
|
|
24
|
-
brokers: config.brokers,
|
|
25
|
-
logCreator: (0, create_logger_adapter_fn_1.createLoggerAdapter)(logger),
|
|
26
|
-
retry: retry_policy_1.retryPolicy,
|
|
27
|
-
});
|
|
28
|
-
},
|
|
29
|
-
};
|
|
30
|
-
exports.KafkaProducer = {
|
|
31
|
-
inject: [exports.KAFKA_CLIENT_INJECTION_TOKEN],
|
|
32
|
-
provide: exports.KAFKA_PRODUCER_INJECTION_TOKEN,
|
|
33
|
-
async useFactory(kafka) {
|
|
34
|
-
const producer = kafka.producer({
|
|
35
|
-
allowAutoTopicCreation: false,
|
|
36
|
-
createPartitioner: kafkajs_1.Partitioners.DefaultPartitioner,
|
|
37
|
-
retry: { retries: 1 },
|
|
38
|
-
});
|
|
39
|
-
await producer.connect();
|
|
40
|
-
return { ...producer, onModuleDestroy: () => producer.disconnect() };
|
|
41
|
-
},
|
|
42
|
-
};
|
|
43
|
-
//# sourceMappingURL=kafka.client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kafka.client.js","sourceRoot":"","sources":["../../src/client/kafka.client.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AACxC,qCAAsC;AACtC,2CAA8C;AAE9C,qCAA8C;AAE9C,0EAAkE;AAClE,kDAA8C;AAE9C,iDAA6C;AAEhC,QAAA,4BAA4B,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AACrD,QAAA,8BAA8B,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAE/D,MAAM,WAAW,GAAG,GAAuB,EAAE,CAClD,IAAA,eAAM,EAAC,oCAA4B,CAAC,CAAC;AAD1B,QAAA,WAAW,eACe;AAChC,MAAM,mBAAmB,GAAG,GAAuB,EAAE,CAC1D,IAAA,eAAM,EAAC,sCAA8B,CAAC,CAAC;AAD5B,QAAA,mBAAmB,uBACS;AAE5B,QAAA,WAAW,GAAoB;IAC1C,MAAM,EAAE,CAAC,0BAAW,EAAE,eAAQ,CAAC;IAC/B,OAAO,EAAE,oCAA4B;IACrC,UAAU,CAAC,MAAmB,EAAE,IAAY;QAC1C,MAAM,MAAM,GAAG,uBAAa,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAE3D,OAAO,IAAI,eAAK,CAAC;YACf,QAAQ,EAAE,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE;YAClC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,UAAU,EAAE,IAAA,8CAAmB,EAAC,MAAM,CAAC;YACvC,KAAK,EAAE,0BAAW;SACnB,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEW,QAAA,aAAa,GAAoB;IAC5C,MAAM,EAAE,CAAC,oCAA4B,CAAC;IACtC,OAAO,EAAE,sCAA8B;IACvC,KAAK,CAAC,UAAU,CAAC,KAAY;QAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YAC9B,sBAAsB,EAAE,KAAK;YAC7B,iBAAiB,EAAE,sBAAY,CAAC,kBAAkB;YAClD,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;SACtB,CAAC,CAAC;QAEH,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,EAAE,GAAG,QAAQ,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC;IACvE,CAAC;CACF,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { CheckResult } from '@rsdk/core';
|
|
2
|
-
import type { Kafka } from 'kafkajs';
|
|
3
|
-
export declare class KafkaHealthcheck {
|
|
4
|
-
readonly kafkaClient: Kafka;
|
|
5
|
-
readonly neededTopics: string[];
|
|
6
|
-
constructor(kafkaClient: Kafka, neededTopics: string[]);
|
|
7
|
-
getMissingTopics(): Promise<string[]>;
|
|
8
|
-
check(): Promise<CheckResult>;
|
|
9
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kafka.healthcheck.js","sourceRoot":"","sources":["../../src/client/kafka.healthcheck.ts"],"names":[],"mappings":";;;AAAA,qCAAyC;AAGzC,MAAa,gBAAgB;IAEhB;IACA;IAFX,YACW,WAAkB,EAClB,YAAsB;QADtB,gBAAW,GAAX,WAAW,CAAO;QAClB,iBAAY,GAAZ,YAAY,CAAU;IAC9B,CAAC;IAEJ,KAAK,CAAC,gBAAgB;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACnC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;SACtB,CAAC,CAAC;QAEH,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QAEtB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;QAExC,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAC7B,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC/C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI;YACF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5B,OAAO,kBAAW,CAAC,IAAI,CAAC;oBACtB,aAAa;iBACd,CAAC,CAAC;aACJ;YACD,OAAO,kBAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SAC3B;QAAC,OAAO,KAAc,EAAE;YACvB,OAAO,kBAAW,CAAC,IAAI,CAAC;gBACtB,KAAK,EAAG,KAAe,CAAC,OAAO;aAChC,CAAC,CAAC;SACJ;IACH,CAAC;CACF;AApCD,4CAoCC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-logger-adapter.fn.js","sourceRoot":"","sources":["../src/create-logger-adapter.fn.ts"],"names":[],"mappings":";;;AAAA,yCAA2C;AAG3C,qCAAmC;AAE5B,MAAM,mBAAmB,GAC9B,CAAC,MAAe,EAAc,EAAE,CAChC,CAAC,SAAmB,EAAE,EAAE,CACxB,CAAC,KAAe,EAAQ,EAAE;IACxB,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC;IACtC,MAAM,MAAM,GAAG;QACb,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,GAAG,GAAG;KACP,CAAC;IAEF,QAAQ,KAAK,CAAC,KAAK,EAAE;QACnB,KAAK,kBAAQ,CAAC,KAAK;YACjB,sFAAsF;YACtF,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvC,KAAK,kBAAQ,CAAC,KAAK;YACjB,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvC,KAAK,kBAAQ,CAAC,IAAI;YAChB,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,KAAK,kBAAQ,CAAC,IAAI;YAChB,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,KAAK,kBAAQ,CAAC,OAAO;YACnB,OAAO;QACT;YACE,IAAA,oBAAW,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC5B;AACH,CAAC,CAAC;AAzBS,QAAA,mBAAmB,uBAyB5B"}
|
package/dist/exception.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { InternalException } from '@rsdk/core';
|
|
2
|
-
declare class ServerKafkaException extends InternalException {
|
|
3
|
-
}
|
|
4
|
-
export declare class ServerKafkaExceptionFactory {
|
|
5
|
-
readonly pattern: string;
|
|
6
|
-
readonly props?: {
|
|
7
|
-
details?: unknown;
|
|
8
|
-
cause?: unknown;
|
|
9
|
-
} | undefined;
|
|
10
|
-
constructor(pattern: string, props?: {
|
|
11
|
-
details?: unknown;
|
|
12
|
-
cause?: unknown;
|
|
13
|
-
} | undefined);
|
|
14
|
-
unknown(): UnknownException;
|
|
15
|
-
missingTopics(): MissingTopics;
|
|
16
|
-
wrapAndThrow(error: unknown): never;
|
|
17
|
-
}
|
|
18
|
-
export declare class MissingTopics extends ServerKafkaException {
|
|
19
|
-
readonly topics: string[];
|
|
20
|
-
readonly props?: {
|
|
21
|
-
details?: unknown;
|
|
22
|
-
cause?: unknown;
|
|
23
|
-
} | undefined;
|
|
24
|
-
constructor(topics: string[], props?: {
|
|
25
|
-
details?: unknown;
|
|
26
|
-
cause?: unknown;
|
|
27
|
-
} | undefined);
|
|
28
|
-
}
|
|
29
|
-
export declare class UnknownException extends ServerKafkaException {
|
|
30
|
-
constructor(cause: unknown, pattern: string, details?: unknown);
|
|
31
|
-
}
|
|
32
|
-
export {};
|
package/dist/exception.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UnknownException = exports.MissingTopics = exports.ServerKafkaExceptionFactory = void 0;
|
|
4
|
-
const core_1 = require("@rsdk/core");
|
|
5
|
-
const kafkajs_1 = require("kafkajs");
|
|
6
|
-
class ServerKafkaException extends core_1.InternalException {
|
|
7
|
-
}
|
|
8
|
-
class ServerKafkaExceptionFactory {
|
|
9
|
-
pattern;
|
|
10
|
-
props;
|
|
11
|
-
constructor(pattern, props) {
|
|
12
|
-
this.pattern = pattern;
|
|
13
|
-
this.props = props;
|
|
14
|
-
}
|
|
15
|
-
unknown() {
|
|
16
|
-
return new UnknownException(this.props?.cause, this.pattern, this.props?.details);
|
|
17
|
-
}
|
|
18
|
-
missingTopics() {
|
|
19
|
-
return new MissingTopics([this.pattern], this.props);
|
|
20
|
-
}
|
|
21
|
-
wrapAndThrow(error) {
|
|
22
|
-
if (!(error instanceof kafkajs_1.KafkaJSProtocolError)) {
|
|
23
|
-
throw this.unknown();
|
|
24
|
-
}
|
|
25
|
-
// https://github.com/tulios/kafkajs/blob/master/src/protocol/error.js#L26
|
|
26
|
-
if (error.code === 3) {
|
|
27
|
-
throw this.missingTopics();
|
|
28
|
-
}
|
|
29
|
-
throw this.unknown();
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
exports.ServerKafkaExceptionFactory = ServerKafkaExceptionFactory;
|
|
33
|
-
class MissingTopics extends ServerKafkaException {
|
|
34
|
-
topics;
|
|
35
|
-
props;
|
|
36
|
-
constructor(topics, props) {
|
|
37
|
-
super('Expected topics or partitions is missing!', {
|
|
38
|
-
details: {
|
|
39
|
-
topics,
|
|
40
|
-
details: props?.details,
|
|
41
|
-
},
|
|
42
|
-
cause: props?.cause,
|
|
43
|
-
});
|
|
44
|
-
this.topics = topics;
|
|
45
|
-
this.props = props;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
exports.MissingTopics = MissingTopics;
|
|
49
|
-
class UnknownException extends ServerKafkaException {
|
|
50
|
-
constructor(cause, pattern, details) {
|
|
51
|
-
super('Unknown exception from ServerKafka!', {
|
|
52
|
-
details: {
|
|
53
|
-
pattern,
|
|
54
|
-
details: details,
|
|
55
|
-
},
|
|
56
|
-
cause,
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
exports.UnknownException = UnknownException;
|
|
61
|
-
//# sourceMappingURL=exception.js.map
|
package/dist/exception.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"exception.js","sourceRoot":"","sources":["../src/exception.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AAC/C,qCAA+C;AAE/C,MAAM,oBAAqB,SAAQ,wBAAiB;CAAG;AAEvD,MAAa,2BAA2B;IAE3B;IACA;IAFX,YACW,OAAe,EACf,KAGR;QAJQ,YAAO,GAAP,OAAO,CAAQ;QACf,UAAK,GAAL,KAAK,CAGb;IACA,CAAC;IAEJ,OAAO;QACL,OAAO,IAAI,gBAAgB,CACzB,IAAI,CAAC,KAAK,EAAE,KAAK,EACjB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EAAE,OAAO,CACpB,CAAC;IACJ,CAAC;IAED,aAAa;QACX,OAAO,IAAI,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;IAED,YAAY,CAAC,KAAc;QACzB,IAAI,CAAC,CAAC,KAAK,YAAY,8BAAoB,CAAC,EAAE;YAC5C,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;SACtB;QACD,0EAA0E;QAC1E,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;YACpB,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;SAC5B;QACD,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;CACF;AA/BD,kEA+BC;AAED,MAAa,aAAc,SAAQ,oBAAoB;IAE1C;IACA;IAFX,YACW,MAAgB,EAChB,KAGR;QAED,KAAK,CAAC,2CAA2C,EAAE;YACjD,OAAO,EAAE;gBACP,MAAM;gBACN,OAAO,EAAE,KAAK,EAAE,OAAO;aACxB;YACD,KAAK,EAAE,KAAK,EAAE,KAAK;SACpB,CAAC,CAAC;QAZM,WAAM,GAAN,MAAM,CAAU;QAChB,UAAK,GAAL,KAAK,CAGb;IASH,CAAC;CACF;AAhBD,sCAgBC;AAED,MAAa,gBAAiB,SAAQ,oBAAoB;IACxD,YAAY,KAAc,EAAE,OAAe,EAAE,OAAiB;QAC5D,KAAK,CAAC,qCAAqC,EAAE;YAC3C,OAAO,EAAE;gBACP,OAAO;gBACP,OAAO,EAAE,OAAO;aACjB;YACD,KAAK;SACN,CAAC,CAAC;IACL,CAAC;CACF;AAVD,4CAUC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"payload-format-validator.exception.js","sourceRoot":"","sources":["../../src/exceptions/payload-format-validator.exception.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAoC;AACpC,qCAA2D;AAOpD,IAAM,6BAA6B,GAAnC,MAAM,6BAA8B,SAAQ,yBAAkB;IACnE,YAAY,KAAa,EAAE,aAAuB;QAChD,KAAK,CAAC,IAAA,aAAI,EAAA;qCACuB,KAAK,cAAc,aAAa,CAAC,IAAI,CACpE,GAAG,CACJ;KACA,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AARY,sEAA6B;wCAA7B,6BAA6B;IALzC,IAAA,gBAAS,EAAC;QACT,WAAW,EAAE,IAAA,aAAI,EAAA;;GAEhB;KACF,CAAC;;GACW,6BAA6B,CAQzC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.KafkaMetadataModule = void 0;
|
|
10
|
-
const common_1 = require("@nestjs/common");
|
|
11
|
-
const kafka_metadata_provider_1 = require("./kafka-metadata.provider");
|
|
12
|
-
let KafkaMetadataModule = class KafkaMetadataModule {
|
|
13
|
-
};
|
|
14
|
-
exports.KafkaMetadataModule = KafkaMetadataModule;
|
|
15
|
-
exports.KafkaMetadataModule = KafkaMetadataModule = __decorate([
|
|
16
|
-
(0, common_1.Module)({
|
|
17
|
-
providers: [kafka_metadata_provider_1.KafkaMetadataProvider],
|
|
18
|
-
exports: [kafka_metadata_provider_1.KafkaMetadataProvider],
|
|
19
|
-
})
|
|
20
|
-
], KafkaMetadataModule);
|
|
21
|
-
//# sourceMappingURL=kafka-metadata.module.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kafka-metadata.module.js","sourceRoot":"","sources":["../../src/metadata/kafka-metadata.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAExC,uEAAkE;AAM3D,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;CAAG,CAAA;AAAtB,kDAAmB;8BAAnB,mBAAmB;IAJ/B,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,+CAAqB,CAAC;QAClC,OAAO,EAAE,CAAC,+CAAqB,CAAC;KACjC,CAAC;GACW,mBAAmB,CAAG"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { RsdkMetadataProvider } from '@rsdk/metadata';
|
|
2
|
-
export declare class KafkaMetadataProvider {
|
|
3
|
-
private readonly rsdkMetadataProvider;
|
|
4
|
-
constructor(rsdkMetadataProvider: RsdkMetadataProvider);
|
|
5
|
-
getProducedTopics(): string[];
|
|
6
|
-
getConsumedTopics(): string[];
|
|
7
|
-
private getResources;
|
|
8
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.KafkaMetadataProvider = void 0;
|
|
13
|
-
const common_1 = require("@nestjs/common");
|
|
14
|
-
const metadata_1 = require("@rsdk/metadata");
|
|
15
|
-
const kafka_metadata_1 = require("./kafka.metadata");
|
|
16
|
-
let KafkaMetadataProvider = class KafkaMetadataProvider {
|
|
17
|
-
rsdkMetadataProvider;
|
|
18
|
-
constructor(rsdkMetadataProvider) {
|
|
19
|
-
this.rsdkMetadataProvider = rsdkMetadataProvider;
|
|
20
|
-
}
|
|
21
|
-
getProducedTopics() {
|
|
22
|
-
const resources = this.getResources();
|
|
23
|
-
return resources
|
|
24
|
-
.filter(({ value: { type } }) => type === kafka_metadata_1.KafkaTopicType.Produce)
|
|
25
|
-
.map((value) => value.value.topicName);
|
|
26
|
-
}
|
|
27
|
-
getConsumedTopics() {
|
|
28
|
-
const resources = this.getResources();
|
|
29
|
-
return resources
|
|
30
|
-
.filter(({ value: { type } }) => type === kafka_metadata_1.KafkaTopicType.Consume)
|
|
31
|
-
.map((value) => value.value.topicName);
|
|
32
|
-
}
|
|
33
|
-
getResources() {
|
|
34
|
-
return this.rsdkMetadataProvider.get(kafka_metadata_1.KAFKA_TOPIC_RSDK_METADATA_SCOPE);
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
exports.KafkaMetadataProvider = KafkaMetadataProvider;
|
|
38
|
-
exports.KafkaMetadataProvider = KafkaMetadataProvider = __decorate([
|
|
39
|
-
(0, common_1.Injectable)(),
|
|
40
|
-
__metadata("design:paramtypes", [metadata_1.RsdkMetadataProvider])
|
|
41
|
-
], KafkaMetadataProvider);
|
|
42
|
-
//# sourceMappingURL=kafka-metadata.provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kafka-metadata.provider.js","sourceRoot":"","sources":["../../src/metadata/kafka-metadata.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,6CAAsD;AAGtD,qDAG0B;AAGnB,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IACH;IAA7B,YAA6B,oBAA0C;QAA1C,yBAAoB,GAApB,oBAAoB,CAAsB;IAAG,CAAC;IAE3E,iBAAiB;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEtC,OAAO,SAAS;aACb,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,+BAAc,CAAC,OAAO,CAAC;aAChE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,iBAAiB;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEtC,OAAO,SAAS;aACb,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,+BAAc,CAAC,OAAO,CAAC;aAChE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAEO,YAAY;QAClB,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAClC,gDAA+B,CAChC,CAAC;IACJ,CAAC;CACF,CAAA;AAxBY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;qCAEwC,+BAAoB;GAD5D,qBAAqB,CAwBjC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.KAFKA_TOPIC_RSDK_METADATA_SCOPE = exports.KafkaTopicType = void 0;
|
|
4
|
-
var KafkaTopicType;
|
|
5
|
-
(function (KafkaTopicType) {
|
|
6
|
-
KafkaTopicType[KafkaTopicType["Consume"] = 0] = "Consume";
|
|
7
|
-
KafkaTopicType[KafkaTopicType["Produce"] = 1] = "Produce";
|
|
8
|
-
})(KafkaTopicType || (exports.KafkaTopicType = KafkaTopicType = {}));
|
|
9
|
-
exports.KAFKA_TOPIC_RSDK_METADATA_SCOPE = 'kafka-topic';
|
|
10
|
-
//# sourceMappingURL=kafka.metadata.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kafka.metadata.js","sourceRoot":"","sources":["../../src/metadata/kafka.metadata.ts"],"names":[],"mappings":";;;AAEA,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,yDAAO,CAAA;IACP,yDAAO,CAAA;AACT,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAiBY,QAAA,+BAA+B,GAAG,aAAa,CAAC"}
|
package/dist/retry-policy.d.ts
DELETED
package/dist/retry-policy.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"retry-policy.js","sourceRoot":"","sources":["../src/retry-policy.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG;IACzB,YAAY,EAAE,GAAG;IACjB,OAAO,EAAE,MAAM,CAAC,iBAAiB;IACjC,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,EAAE;CACf,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.assertIsPayloadFormat = exports.isValidPayloadFormat = void 0;
|
|
4
|
-
const payload_format_validator_exception_1 = require("../exceptions/payload-format-validator.exception");
|
|
5
|
-
const payload_format_1 = require("../payload-format");
|
|
6
|
-
const isValidPayloadFormat = (value) => Object.values(payload_format_1.PayloadFormat).includes(value);
|
|
7
|
-
exports.isValidPayloadFormat = isValidPayloadFormat;
|
|
8
|
-
const assertIsPayloadFormat = (value) => {
|
|
9
|
-
if (!(0, exports.isValidPayloadFormat)(value)) {
|
|
10
|
-
throw new payload_format_validator_exception_1.InvalidPayloadFormatException(value, Object.values(payload_format_1.PayloadFormat));
|
|
11
|
-
}
|
|
12
|
-
};
|
|
13
|
-
exports.assertIsPayloadFormat = assertIsPayloadFormat;
|
|
14
|
-
//# sourceMappingURL=payload-format.validator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"payload-format.validator.js","sourceRoot":"","sources":["../../src/validators/payload-format.validator.ts"],"names":[],"mappings":";;;AAAA,yGAAiG;AACjG,sDAAkD;AAE3C,MAAM,oBAAoB,GAAG,CAClC,KAA6B,EACL,EAAE,CAC1B,MAAM,CAAC,MAAM,CAAC,8BAAa,CAAC,CAAC,QAAQ,CAAC,KAAsB,CAAC,CAAC;AAHnD,QAAA,oBAAoB,wBAG+B;AAEzD,MAAM,qBAAqB,GAAG,CACnC,KAA6B,EACG,EAAE;IAClC,IAAI,CAAC,IAAA,4BAAoB,EAAC,KAAK,CAAC,EAAE;QAChC,MAAM,IAAI,kEAA6B,CACrC,KAAK,EACL,MAAM,CAAC,MAAM,CAAC,8BAAa,CAAC,CAC7B,CAAC;KACH;AACH,CAAC,CAAC;AATW,QAAA,qBAAqB,yBAShC"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import type { FactoryProvider, OnModuleDestroy } from '@nestjs/common';
|
|
2
|
-
import { Inject } from '@nestjs/common';
|
|
3
|
-
import { APP_NAME } from '@rsdk/core';
|
|
4
|
-
import { LoggerFactory } from '@rsdk/logging';
|
|
5
|
-
import type { Producer } from 'kafkajs';
|
|
6
|
-
import { Kafka, Partitioners } from 'kafkajs';
|
|
7
|
-
|
|
8
|
-
import { createLoggerAdapter } from '../create-logger-adapter.fn';
|
|
9
|
-
import { retryPolicy } from '../retry-policy';
|
|
10
|
-
|
|
11
|
-
import { KafkaConfig } from './kafka.config';
|
|
12
|
-
|
|
13
|
-
export const KAFKA_CLIENT_INJECTION_TOKEN = Symbol('KafkaClient');
|
|
14
|
-
export const KAFKA_PRODUCER_INJECTION_TOKEN = Symbol('KafkaProducer');
|
|
15
|
-
|
|
16
|
-
export const InjectKafka = (): ParameterDecorator =>
|
|
17
|
-
Inject(KAFKA_CLIENT_INJECTION_TOKEN);
|
|
18
|
-
export const InjectKafkaProducer = (): ParameterDecorator =>
|
|
19
|
-
Inject(KAFKA_PRODUCER_INJECTION_TOKEN);
|
|
20
|
-
|
|
21
|
-
export const KafkaClient: FactoryProvider = {
|
|
22
|
-
inject: [KafkaConfig, APP_NAME],
|
|
23
|
-
provide: KAFKA_CLIENT_INJECTION_TOKEN,
|
|
24
|
-
useFactory(config: KafkaConfig, name: string): Kafka {
|
|
25
|
-
const logger = LoggerFactory.create('NativeKafkaProducer');
|
|
26
|
-
|
|
27
|
-
return new Kafka({
|
|
28
|
-
clientId: `${name}-${process.pid}`,
|
|
29
|
-
brokers: config.brokers,
|
|
30
|
-
logCreator: createLoggerAdapter(logger),
|
|
31
|
-
retry: retryPolicy,
|
|
32
|
-
});
|
|
33
|
-
},
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
export const KafkaProducer: FactoryProvider = {
|
|
37
|
-
inject: [KAFKA_CLIENT_INJECTION_TOKEN],
|
|
38
|
-
provide: KAFKA_PRODUCER_INJECTION_TOKEN,
|
|
39
|
-
async useFactory(kafka: Kafka): Promise<Producer & OnModuleDestroy> {
|
|
40
|
-
const producer = kafka.producer({
|
|
41
|
-
allowAutoTopicCreation: false,
|
|
42
|
-
createPartitioner: Partitioners.DefaultPartitioner,
|
|
43
|
-
retry: { retries: 1 },
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
await producer.connect();
|
|
47
|
-
return { ...producer, onModuleDestroy: () => producer.disconnect() };
|
|
48
|
-
},
|
|
49
|
-
};
|
package/src/exception.ts
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { InternalException } from '@rsdk/core';
|
|
2
|
-
import { KafkaJSProtocolError } from 'kafkajs';
|
|
3
|
-
|
|
4
|
-
class ServerKafkaException extends InternalException {}
|
|
5
|
-
|
|
6
|
-
export class ServerKafkaExceptionFactory {
|
|
7
|
-
constructor(
|
|
8
|
-
readonly pattern: string,
|
|
9
|
-
readonly props?: {
|
|
10
|
-
details?: unknown;
|
|
11
|
-
cause?: unknown;
|
|
12
|
-
},
|
|
13
|
-
) {}
|
|
14
|
-
|
|
15
|
-
unknown(): UnknownException {
|
|
16
|
-
return new UnknownException(
|
|
17
|
-
this.props?.cause,
|
|
18
|
-
this.pattern,
|
|
19
|
-
this.props?.details,
|
|
20
|
-
);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
missingTopics(): MissingTopics {
|
|
24
|
-
return new MissingTopics([this.pattern], this.props);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
wrapAndThrow(error: unknown): never {
|
|
28
|
-
if (!(error instanceof KafkaJSProtocolError)) {
|
|
29
|
-
throw this.unknown();
|
|
30
|
-
}
|
|
31
|
-
// https://github.com/tulios/kafkajs/blob/master/src/protocol/error.js#L26
|
|
32
|
-
if (error.code === 3) {
|
|
33
|
-
throw this.missingTopics();
|
|
34
|
-
}
|
|
35
|
-
throw this.unknown();
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export class MissingTopics extends ServerKafkaException {
|
|
40
|
-
constructor(
|
|
41
|
-
readonly topics: string[],
|
|
42
|
-
readonly props?: {
|
|
43
|
-
details?: unknown;
|
|
44
|
-
cause?: unknown;
|
|
45
|
-
},
|
|
46
|
-
) {
|
|
47
|
-
super('Expected topics or partitions is missing!', {
|
|
48
|
-
details: {
|
|
49
|
-
topics,
|
|
50
|
-
details: props?.details,
|
|
51
|
-
},
|
|
52
|
-
cause: props?.cause,
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
export class UnknownException extends ServerKafkaException {
|
|
58
|
-
constructor(cause: unknown, pattern: string, details?: unknown) {
|
|
59
|
-
super('Unknown exception from ServerKafka!', {
|
|
60
|
-
details: {
|
|
61
|
-
pattern,
|
|
62
|
-
details: details,
|
|
63
|
-
},
|
|
64
|
-
cause,
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { text } from '@rsdk/common';
|
|
2
|
-
import { BootstrapException, Exception } from '@rsdk/core';
|
|
3
|
-
|
|
4
|
-
@Exception({
|
|
5
|
-
description: text`
|
|
6
|
-
PayloadFormat has wrong value.
|
|
7
|
-
`,
|
|
8
|
-
})
|
|
9
|
-
export class InvalidPayloadFormatException extends BootstrapException {
|
|
10
|
-
constructor(value: string, allowedValues: string[]) {
|
|
11
|
-
super(text`
|
|
12
|
-
PayloadFormat has wrong value: ${value}, allowed: ${allowedValues.join(
|
|
13
|
-
',',
|
|
14
|
-
)}.
|
|
15
|
-
`);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@nestjs/common';
|
|
2
|
-
import type { Resource } from '@rsdk/metadata';
|
|
3
|
-
import { RsdkMetadataProvider } from '@rsdk/metadata';
|
|
4
|
-
|
|
5
|
-
import type { KafkaTopicMetadata } from './kafka.metadata';
|
|
6
|
-
import {
|
|
7
|
-
KAFKA_TOPIC_RSDK_METADATA_SCOPE,
|
|
8
|
-
KafkaTopicType,
|
|
9
|
-
} from './kafka.metadata';
|
|
10
|
-
|
|
11
|
-
@Injectable()
|
|
12
|
-
export class KafkaMetadataProvider {
|
|
13
|
-
constructor(private readonly rsdkMetadataProvider: RsdkMetadataProvider) {}
|
|
14
|
-
|
|
15
|
-
getProducedTopics(): string[] {
|
|
16
|
-
const resources = this.getResources();
|
|
17
|
-
|
|
18
|
-
return resources
|
|
19
|
-
.filter(({ value: { type } }) => type === KafkaTopicType.Produce)
|
|
20
|
-
.map((value) => value.value.topicName);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
getConsumedTopics(): string[] {
|
|
24
|
-
const resources = this.getResources();
|
|
25
|
-
|
|
26
|
-
return resources
|
|
27
|
-
.filter(({ value: { type } }) => type === KafkaTopicType.Consume)
|
|
28
|
-
.map((value) => value.value.topicName);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
private getResources(): Resource<KafkaTopicMetadata>[] {
|
|
32
|
-
return this.rsdkMetadataProvider.get<KafkaTopicMetadata>(
|
|
33
|
-
KAFKA_TOPIC_RSDK_METADATA_SCOPE,
|
|
34
|
-
);
|
|
35
|
-
}
|
|
36
|
-
}
|
package/src/retry-policy.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { InvalidPayloadFormatException } from '../exceptions/payload-format-validator.exception';
|
|
2
|
-
import { PayloadFormat } from '../payload-format';
|
|
3
|
-
|
|
4
|
-
export const isValidPayloadFormat = (
|
|
5
|
-
value: string | PayloadFormat,
|
|
6
|
-
): value is PayloadFormat =>
|
|
7
|
-
Object.values(PayloadFormat).includes(value as PayloadFormat);
|
|
8
|
-
|
|
9
|
-
export const assertIsPayloadFormat = (
|
|
10
|
-
value: PayloadFormat | string,
|
|
11
|
-
): asserts value is PayloadFormat => {
|
|
12
|
-
if (!isValidPayloadFormat(value)) {
|
|
13
|
-
throw new InvalidPayloadFormatException(
|
|
14
|
-
value,
|
|
15
|
-
Object.values(PayloadFormat),
|
|
16
|
-
);
|
|
17
|
-
}
|
|
18
|
-
};
|