@cryptexlabs/codex-nodejs-common 0.2.1 → 0.2.4
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/lib/package.json +1 -1
- package/lib/src/config/default-config.js +1 -1
- package/lib/src/config/default-config.js.map +1 -1
- package/lib/src/config/kafka-config.d.ts +2 -1
- package/lib/src/config/kafka-config.interface.d.ts +1 -0
- package/lib/src/config/kafka-config.js +4 -1
- package/lib/src/config/kafka-config.js.map +1 -1
- package/lib/src/pipe/uuidv4.array.validation.pipe.d.ts +6 -0
- package/lib/src/pipe/uuidv4.array.validation.pipe.js +32 -0
- package/lib/src/pipe/uuidv4.array.validation.pipe.js.map +1 -0
- package/lib/src/pipe/uuidv4.validation.pipe.d.ts +6 -0
- package/lib/src/pipe/uuidv4.validation.pipe.js +32 -0
- package/lib/src/pipe/uuidv4.validation.pipe.js.map +1 -0
- package/lib/src/service/consumer/consumer.service.d.ts +1 -1
- package/lib/src/service/consumer/consumer.service.js +9 -9
- package/lib/src/service/consumer/consumer.service.js.map +1 -1
- package/lib/src/service/elasticsearch/elasticsearch.initializer.d.ts +2 -1
- package/lib/src/service/elasticsearch/elasticsearch.initializer.js +8 -3
- package/lib/src/service/elasticsearch/elasticsearch.initializer.js.map +1 -1
- package/lib/src/service/kafka/kafka.service.d.ts +1 -0
- package/lib/src/service/kafka/kafka.service.js +2 -0
- package/lib/src/service/kafka/kafka.service.js.map +1 -1
- package/lib/src/util/string.util.d.ts +5 -4
- package/lib/src/util/string.util.js +3 -0
- package/lib/src/util/string.util.js.map +1 -1
- package/package.json +1 -1
- package/src/config/default-config.ts +2 -1
- package/src/config/kafka-config.interface.ts +1 -0
- package/src/config/kafka-config.ts +6 -1
- package/src/pipe/uuidv4.array.validation.pipe.ts +23 -0
- package/src/pipe/uuidv4.validation.pipe.ts +23 -0
- package/src/service/consumer/consumer.service.ts +5 -7
- package/src/service/elasticsearch/elasticsearch.initializer.ts +11 -3
- package/src/service/kafka/kafka.service.ts +2 -1
- package/src/util/string.util.ts +8 -4
package/lib/package.json
CHANGED
|
@@ -105,7 +105,7 @@ let DefaultConfig = class DefaultConfig {
|
|
|
105
105
|
}
|
|
106
106
|
get kafka() {
|
|
107
107
|
return new kafka_config_1.KafkaConfig(process.env.KAFKA_ENABLED, process.env.KAFKA_HOST, process.env.KAFKA_PORT, process.env.KAFKA_USERNAME, process.env.KAFKA_PASSWORD, process.env.SASL_MECHANISM, process.env.KAFKA_TOPICS_CONFIG_PATH ||
|
|
108
|
-
`${this._appPath}/config/topics.yaml`, process.env.KAFKA_CLIENT_ID || process.env.POD_NAME || this.appName);
|
|
108
|
+
`${this._appPath}/config/topics.yaml`, process.env.KAFKA_CLIENT_ID || process.env.POD_NAME || this.appName, process.env.KAFKA_DEFAULT_PARTITIONS);
|
|
109
109
|
}
|
|
110
110
|
get environmentName() {
|
|
111
111
|
return process.env.ENV_NAME;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-config.js","sourceRoot":"","sources":["../../../src/config/default-config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"default-config.js","sourceRoot":"","sources":["../../../src/config/default-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,5 +9,6 @@ export declare class KafkaConfig extends EndpointConfig implements KafkaConfigIn
|
|
|
9
9
|
readonly clientId: string;
|
|
10
10
|
enabled: boolean;
|
|
11
11
|
saslMechanism: SASLMechanism;
|
|
12
|
-
|
|
12
|
+
defaultPartitions: number;
|
|
13
|
+
constructor(enabled: string, host: string, port: string, username: string, password: string, saslMechanism: string, topicsConfigPath: string, clientId: string, defaultPartitions?: string);
|
|
13
14
|
}
|
|
@@ -4,7 +4,7 @@ exports.KafkaConfig = void 0;
|
|
|
4
4
|
const endpoint_config_1 = require("./endpoint-config");
|
|
5
5
|
const config_boolean_enum_1 = require("./config-boolean.enum");
|
|
6
6
|
class KafkaConfig extends endpoint_config_1.EndpointConfig {
|
|
7
|
-
constructor(enabled, host, port, username, password, saslMechanism, topicsConfigPath, clientId) {
|
|
7
|
+
constructor(enabled, host, port, username, password, saslMechanism, topicsConfigPath, clientId, defaultPartitions) {
|
|
8
8
|
super(host, port);
|
|
9
9
|
this.host = host;
|
|
10
10
|
this.username = username;
|
|
@@ -13,6 +13,9 @@ class KafkaConfig extends endpoint_config_1.EndpointConfig {
|
|
|
13
13
|
this.clientId = clientId;
|
|
14
14
|
this.saslMechanism = saslMechanism;
|
|
15
15
|
this.enabled = enabled === config_boolean_enum_1.ConfigBooleanEnum.TRUE;
|
|
16
|
+
this.defaultPartitions = defaultPartitions
|
|
17
|
+
? parseInt(defaultPartitions, 10)
|
|
18
|
+
: 3;
|
|
16
19
|
}
|
|
17
20
|
}
|
|
18
21
|
exports.KafkaConfig = KafkaConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kafka-config.js","sourceRoot":"","sources":["../../../src/config/kafka-config.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;AACnD,+DAA0D;AAI1D,MAAa,WACX,SAAQ,gCAAc;
|
|
1
|
+
{"version":3,"file":"kafka-config.js","sourceRoot":"","sources":["../../../src/config/kafka-config.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;AACnD,+DAA0D;AAI1D,MAAa,WACX,SAAQ,gCAAc;IAOtB,YACE,OAAe,EACC,IAAY,EAC5B,IAAY,EACI,QAAgB,EAChB,QAAgB,EAChC,aAAqB,EACL,gBAAwB,EACxB,QAAgB,EAChC,iBAA0B;QAE1B,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QATF,SAAI,GAAJ,IAAI,CAAQ;QAEZ,aAAQ,GAAR,QAAQ,CAAQ;QAChB,aAAQ,GAAR,QAAQ,CAAQ;QAEhB,qBAAgB,GAAhB,gBAAgB,CAAQ;QACxB,aAAQ,GAAR,QAAQ,CAAQ;QAIhC,IAAI,CAAC,aAAa,GAAG,aAA8B,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,OAAO,KAAK,uCAAiB,CAAC,IAAI,CAAC;QAClD,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;YACxC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,EAAE,EAAE,CAAC;YACjC,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;CACF;AA1BD,kCA0BC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
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.Uuidv4ArrayValidationPipe = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const Joi = require("joi");
|
|
15
|
+
let Uuidv4ArrayValidationPipe = class Uuidv4ArrayValidationPipe {
|
|
16
|
+
constructor() {
|
|
17
|
+
this._schema = Joi.array().items(Joi.string().uuid({ version: "uuidv4" }));
|
|
18
|
+
}
|
|
19
|
+
transform(value, metadata) {
|
|
20
|
+
const { error } = this._schema.validate(value.data);
|
|
21
|
+
if (error) {
|
|
22
|
+
throw new common_1.BadRequestException(error.message);
|
|
23
|
+
}
|
|
24
|
+
return value;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
Uuidv4ArrayValidationPipe = __decorate([
|
|
28
|
+
common_1.Injectable(),
|
|
29
|
+
__metadata("design:paramtypes", [])
|
|
30
|
+
], Uuidv4ArrayValidationPipe);
|
|
31
|
+
exports.Uuidv4ArrayValidationPipe = Uuidv4ArrayValidationPipe;
|
|
32
|
+
//# sourceMappingURL=uuidv4.array.validation.pipe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uuidv4.array.validation.pipe.js","sourceRoot":"","sources":["../../../src/pipe/uuidv4.array.validation.pipe.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAKwB;AACxB,2BAA2B;AAG3B,IAAa,yBAAyB,GAAtC,MAAa,yBAAyB;IAEpC;QACE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;IAEM,SAAS,CAAC,KAAU,EAAE,QAA0B;QACrD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,KAAK,EAAE;YACT,MAAM,IAAI,4BAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC9C;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAA;AAbY,yBAAyB;IADrC,mBAAU,EAAE;;GACA,yBAAyB,CAarC;AAbY,8DAAyB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
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.Uuidv4ValidationPipe = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const Joi = require("joi");
|
|
15
|
+
let Uuidv4ValidationPipe = class Uuidv4ValidationPipe {
|
|
16
|
+
constructor() {
|
|
17
|
+
this._schema = Joi.string().uuid({ version: "uuidv4" });
|
|
18
|
+
}
|
|
19
|
+
transform(value, metadata) {
|
|
20
|
+
const { error } = this._schema.validate(value.data);
|
|
21
|
+
if (error) {
|
|
22
|
+
throw new common_1.BadRequestException(error.message);
|
|
23
|
+
}
|
|
24
|
+
return value;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
Uuidv4ValidationPipe = __decorate([
|
|
28
|
+
common_1.Injectable(),
|
|
29
|
+
__metadata("design:paramtypes", [])
|
|
30
|
+
], Uuidv4ValidationPipe);
|
|
31
|
+
exports.Uuidv4ValidationPipe = Uuidv4ValidationPipe;
|
|
32
|
+
//# sourceMappingURL=uuidv4.validation.pipe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uuidv4.validation.pipe.js","sourceRoot":"","sources":["../../../src/pipe/uuidv4.validation.pipe.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAKwB;AACxB,2BAA2B;AAG3B,IAAa,oBAAoB,GAAjC,MAAa,oBAAoB;IAE/B;QACE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;IAEM,SAAS,CAAC,KAAU,EAAE,QAA0B;QACrD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,KAAK,EAAE;YACT,MAAM,IAAI,4BAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC9C;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAA;AAbY,oBAAoB;IADhC,mBAAU,EAAE;;GACA,oBAAoB,CAahC;AAbY,oDAAoB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LoggerService } from "@nestjs/common";
|
|
2
2
|
import { ConsumerServiceDelegateInterface } from "./consumer-service-delegate.interface";
|
|
3
3
|
import { DefaultConfig } from "../../config";
|
|
4
|
-
import { EventHandlerFactoryInterface } from "../../event
|
|
4
|
+
import { EventHandlerFactoryInterface } from "../../event";
|
|
5
5
|
import { HealthzService } from "../healthz";
|
|
6
6
|
export declare class ConsumerService {
|
|
7
7
|
private readonly healthzService;
|
|
@@ -15,13 +15,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.ConsumerService = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
17
|
const config_1 = require("../../config");
|
|
18
|
+
const event_1 = require("../../event");
|
|
18
19
|
const jsYaml = require("js-yaml");
|
|
19
20
|
const fs = require("fs");
|
|
20
|
-
const event_handler_1 = require("../../event/event-handler");
|
|
21
21
|
const util_1 = require("../../util");
|
|
22
22
|
const consumer_util_1 = require("./consumer.util");
|
|
23
23
|
const healthz_1 = require("../healthz");
|
|
24
|
-
const config_2 = require("../../config");
|
|
25
24
|
const randomstring = require("randomstring");
|
|
26
25
|
let ConsumerService = class ConsumerService {
|
|
27
26
|
constructor(healthzService, consumerDelegateService, config, logger, externalFactory, internalFactory, consumerType) {
|
|
@@ -33,34 +32,35 @@ let ConsumerService = class ConsumerService {
|
|
|
33
32
|
this.internalFactory = internalFactory;
|
|
34
33
|
this.consumerType = consumerType;
|
|
35
34
|
this.topics = jsYaml.safeLoad(fs.readFileSync(config.kafka.topicsConfigPath).toString());
|
|
36
|
-
this.eventHandler = new
|
|
35
|
+
this.eventHandler = new event_1.EventHandler(logger);
|
|
37
36
|
logger.debug(`Initializing consumer with type: ${consumerType}`);
|
|
38
37
|
}
|
|
39
38
|
async start() {
|
|
40
39
|
await this.healthzService.makeUnhealthy(healthz_1.HealthzComponentEnum.MESSAGE_BROKER_KAFKA);
|
|
41
40
|
await this.consumerDelegateService.initializeConsumer(`${this.config.appName}-${this.consumerType}`);
|
|
42
41
|
await this.consumerDelegateService.connect();
|
|
43
|
-
await this.
|
|
42
|
+
const topics = await this._getTopics();
|
|
43
|
+
await this.consumerDelegateService.startConsumer(topics, async (topic, message) => {
|
|
44
44
|
await this.handle(topic, message);
|
|
45
45
|
});
|
|
46
46
|
await this.healthzService.makeHealthy(healthz_1.HealthzComponentEnum.MESSAGE_BROKER_KAFKA);
|
|
47
47
|
}
|
|
48
48
|
_getInternalTopics() {
|
|
49
49
|
const internalTopicTypeMap = {
|
|
50
|
-
[
|
|
51
|
-
[
|
|
50
|
+
[config_1.ConsumerTypeEnum.DEFAULT]: "internal",
|
|
51
|
+
[config_1.ConsumerTypeEnum.GPU]: "gpu",
|
|
52
52
|
};
|
|
53
53
|
return this.topics.topics[internalTopicTypeMap[this.consumerType]];
|
|
54
54
|
}
|
|
55
|
-
_getTopics() {
|
|
55
|
+
async _getTopics() {
|
|
56
56
|
let allTopics = [];
|
|
57
|
-
if (this.consumerType ===
|
|
57
|
+
if (this.consumerType === config_1.ConsumerTypeEnum.DEFAULT) {
|
|
58
58
|
allTopics = allTopics.concat(this.topics.topics.external);
|
|
59
59
|
allTopics = allTopics.concat(this.topics.topics.internal);
|
|
60
60
|
this.logger.debug(`Subscribing to external topics: ${JSON.stringify(this.topics.topics.external)}`);
|
|
61
61
|
this.logger.debug(`Subscribing to internal topics: ${JSON.stringify(this.topics.topics.internal)}`);
|
|
62
62
|
}
|
|
63
|
-
if (this.consumerType ===
|
|
63
|
+
if (this.consumerType === config_1.ConsumerTypeEnum.GPU) {
|
|
64
64
|
allTopics = allTopics.concat(this.topics.topics.gpu);
|
|
65
65
|
this.logger.debug(`Subscribing to gpu topics: ${JSON.stringify(this.topics.topics.gpu)}`);
|
|
66
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consumer.service.js","sourceRoot":"","sources":["../../../../src/service/consumer/consumer.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAmE;AAGnE,
|
|
1
|
+
{"version":3,"file":"consumer.service.js","sourceRoot":"","sources":["../../../../src/service/consumer/consumer.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,8 @@ export declare class ElasticsearchInitializer {
|
|
|
5
5
|
private readonly index;
|
|
6
6
|
private readonly elasticsearchService;
|
|
7
7
|
private readonly indexProperties;
|
|
8
|
-
|
|
8
|
+
private readonly type?;
|
|
9
|
+
constructor(logger: CustomLogger, index: string, elasticsearchService: ElasticsearchService, indexProperties: any, type?: string);
|
|
9
10
|
private _createIndex;
|
|
10
11
|
private _getIndexExists;
|
|
11
12
|
initializeIndex(): Promise<void>;
|
|
@@ -3,11 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ElasticsearchInitializer = void 0;
|
|
4
4
|
const common_1 = require("@nestjs/common");
|
|
5
5
|
class ElasticsearchInitializer {
|
|
6
|
-
constructor(logger, index, elasticsearchService, indexProperties) {
|
|
6
|
+
constructor(logger, index, elasticsearchService, indexProperties, type) {
|
|
7
7
|
this.logger = logger;
|
|
8
8
|
this.index = index;
|
|
9
9
|
this.elasticsearchService = elasticsearchService;
|
|
10
10
|
this.indexProperties = indexProperties;
|
|
11
|
+
this.type = type;
|
|
11
12
|
}
|
|
12
13
|
async _createIndex() {
|
|
13
14
|
await this.elasticsearchService.indices.create({
|
|
@@ -27,12 +28,16 @@ class ElasticsearchInitializer {
|
|
|
27
28
|
if (!exists) {
|
|
28
29
|
await this._createIndex();
|
|
29
30
|
}
|
|
30
|
-
|
|
31
|
+
let params = {
|
|
31
32
|
index: this.index,
|
|
32
33
|
body: {
|
|
33
34
|
properties: this.indexProperties,
|
|
34
35
|
},
|
|
35
|
-
}
|
|
36
|
+
};
|
|
37
|
+
if (this.type) {
|
|
38
|
+
params = Object.assign(Object.assign({}, params), { type: this.type });
|
|
39
|
+
}
|
|
40
|
+
await this.elasticsearchService.indices.putMapping(params);
|
|
36
41
|
}
|
|
37
42
|
async _waitForReady() {
|
|
38
43
|
while (!(await this._isReady())) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elasticsearch.initializer.js","sourceRoot":"","sources":["../../../../src/service/elasticsearch/elasticsearch.initializer.ts"],"names":[],"mappings":";;;AAEA,2CAA4C;AAE5C,MAAa,wBAAwB;IACnC,YACmB,MAAoB,EACpB,KAAa,EACb,oBAA0C,EAC1C,eAAoB;
|
|
1
|
+
{"version":3,"file":"elasticsearch.initializer.js","sourceRoot":"","sources":["../../../../src/service/elasticsearch/elasticsearch.initializer.ts"],"names":[],"mappings":";;;AAEA,2CAA4C;AAE5C,MAAa,wBAAwB;IACnC,YACmB,MAAoB,EACpB,KAAa,EACb,oBAA0C,EAC1C,eAAoB,EACpB,IAAa;QAJb,WAAM,GAAN,MAAM,CAAc;QACpB,UAAK,GAAL,KAAK,CAAQ;QACb,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,oBAAe,GAAf,eAAe,CAAK;QACpB,SAAI,GAAJ,IAAI,CAAS;IAC7B,CAAC;IAEI,KAAK,CAAC,YAAY;QACxB,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC;YAC7C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC;YAC9D,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAE3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;SAC3B;QAED,IAAI,MAAM,GAAQ;YAChB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE;gBACJ,UAAU,EAAE,IAAI,CAAC,eAAe;aACjC;SACF,CAAC;QACF,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,MAAM,mCACD,MAAM,KACT,IAAI,EAAE,IAAI,CAAC,IAAI,GAChB,CAAC;SACH;QACD,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;YAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC9C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC5B,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IACD,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI;gBACF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;oBAC/C,OAAO,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,UAAU,KAAK,mBAAU,CAAC,EAAE,CAAC,CAAC;gBACzD,CAAC,CAAC,CAAC;aACJ;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,CAAC;aAChB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAjED,4DAiEC"}
|
|
@@ -3,6 +3,7 @@ import { Message } from "kafkajs";
|
|
|
3
3
|
import { DefaultConfig } from "../../config";
|
|
4
4
|
import { ConsumerServiceDelegateInterface } from "../consumer";
|
|
5
5
|
export declare class KafkaService implements ConsumerServiceDelegateInterface {
|
|
6
|
+
private readonly config;
|
|
6
7
|
private readonly logger;
|
|
7
8
|
private _kafka;
|
|
8
9
|
private _kafkaConsumer;
|
|
@@ -19,6 +19,7 @@ const config_1 = require("../../config");
|
|
|
19
19
|
const kafka_logger_1 = require("./kafka.logger");
|
|
20
20
|
let KafkaService = class KafkaService {
|
|
21
21
|
constructor(config, logger) {
|
|
22
|
+
this.config = config;
|
|
22
23
|
this.logger = logger;
|
|
23
24
|
const kafkaClientConfig = {
|
|
24
25
|
clientId: config.clientId,
|
|
@@ -105,6 +106,7 @@ let KafkaService = class KafkaService {
|
|
|
105
106
|
for (const topic of stringTopics) {
|
|
106
107
|
if (!currentTopics.includes(topic)) {
|
|
107
108
|
const createTopic = {
|
|
109
|
+
numPartitions: this.config.kafka.defaultPartitions,
|
|
108
110
|
topic,
|
|
109
111
|
};
|
|
110
112
|
createTopics.push(createTopic);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kafka.service.js","sourceRoot":"","sources":["../../../../src/service/kafka/kafka.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAmE;AACnE,qCAQiB;AACjB,yCAA6C;AAE7C,iDAA6C;AAG7C,IAAa,YAAY,GAAzB,MAAa,YAAY;IAMvB,
|
|
1
|
+
{"version":3,"file":"kafka.service.js","sourceRoot":"","sources":["../../../../src/service/kafka/kafka.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAmE;AACnE,qCAQiB;AACjB,yCAA6C;AAE7C,iDAA6C;AAG7C,IAAa,YAAY,GAAzB,MAAa,YAAY;IAMvB,YACqC,MAAqB,EACrB,MAAqB;QADrB,WAAM,GAAN,MAAM,CAAe;QACrB,WAAM,GAAN,MAAM,CAAe;QAExD,MAAM,iBAAiB,GAAG;YACxB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;YAChC,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,SAAS;SACf,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE;YACzB,iBAAiB,CAAC,IAAI,GAAG;gBACvB,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,EAAmB;gBACpE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;gBAC/B,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;aAChC,CAAC;YACF,iBAAiB,CAAC,GAAG,GAAG,IAAI,CAAC;SAC9B;QAED,MAAM,WAAW,GAAG,IAAI,0BAAW,CAAC,MAAM,CAAC,CAAC;QAE5C,IAAI,CAAC,MAAM,GAAG,IAAI,eAAK,iCAClB,iBAAiB,KACpB,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACvB,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3C,CAAC,IACD,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;SACrC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;SACrC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACvC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;SACxC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;SACxC;IACH,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,aAAqB;QACnD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;IACzE,CAAC;IAEM,KAAK,CAAC,kBAAkB;QAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,MAA2B,EAC3B,QAA4D;QAE5D,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAC/D,CAAC;SACH;QACD,IAAI;YACF,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SAC7B;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;SACvC;QAED,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAEtC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;YAC5B,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;gBACnD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;oBACd,KAAK;oBACL,SAAS;oBACT,OAAO,EAAE;wBACP,GAAG,EAAE,OAAO,CAAC,GAAG;wBAChB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE;qBAChC;iBACF,CAAC,CAAC;gBACH,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACjC,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,MAA2B;QAC1D,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC1B;SACF;QAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QAC1D,MAAM,YAAY,GAAmB,EAAE,CAAC;QACxC,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE;YAChC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAClC,MAAM,WAAW,GAAiB;oBAChC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB;oBAClD,KAAK;iBACN,CAAC;gBACF,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAChC;SACF;QAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;gBAClC,cAAc,EAAE,IAAI;gBACpB,MAAM,EAAE,YAAY;aACrB,CAAC,CAAC;SACJ;IACH,CAAC;IAGM,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,OAAY;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,IAAI,aAAa,KAAK,EAAE,CAAC,CAAC;QACzE,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAC7B,KAAK;YACL,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,QAAe;QACrD,MAAM,QAAQ,GAAG,EAAE,CAAC;QAEpB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;SAC/D;QAED,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAC7B,KAAK;YACL,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAxJY,YAAY;IADxB,mBAAU,EAAE;IAQR,WAAA,eAAM,CAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,eAAM,CAAC,QAAQ,CAAC,CAAA;qCAD0B,sBAAa;GAP/C,YAAY,CAwJxB;AAxJY,oCAAY"}
|
|
@@ -2,8 +2,9 @@ export declare class StringUtil {
|
|
|
2
2
|
private constructor();
|
|
3
3
|
static isRegexString(str: string): boolean;
|
|
4
4
|
static stringMatches(test: string, str: string): boolean;
|
|
5
|
-
static insecureMd5(str:
|
|
6
|
-
static insecureSha1(str:
|
|
7
|
-
static sha256(str:
|
|
8
|
-
static sha512(str:
|
|
5
|
+
static insecureMd5(str: string): string;
|
|
6
|
+
static insecureSha1(str: string): string;
|
|
7
|
+
static sha256(str: string): string;
|
|
8
|
+
static sha512(str: string): string;
|
|
9
|
+
static byteArray(str: string): number[];
|
|
9
10
|
}
|
|
@@ -32,6 +32,9 @@ class StringUtil {
|
|
|
32
32
|
static sha512(str) {
|
|
33
33
|
return crypto.createHash("sha512").update(str).digest("hex");
|
|
34
34
|
}
|
|
35
|
+
static byteArray(str) {
|
|
36
|
+
return [...Buffer.from(str)];
|
|
37
|
+
}
|
|
35
38
|
}
|
|
36
39
|
exports.StringUtil = StringUtil;
|
|
37
40
|
//# sourceMappingURL=string.util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string.util.js","sourceRoot":"","sources":["../../../src/util/string.util.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AACjC,MAAa,UAAU;IACrB,gBAAuB,CAAC;IACjB,MAAM,CAAC,aAAa,CAAC,GAAW;QACrC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC;IAC3E,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,IAAY,EAAE,GAAW;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE,EAAE;YAC9B,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE;YACnC,IACE,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAC5D,UAAU,CACX,EACD;gBACA,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"string.util.js","sourceRoot":"","sources":["../../../src/util/string.util.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AACjC,MAAa,UAAU;IACrB,gBAAuB,CAAC;IACjB,MAAM,CAAC,aAAa,CAAC,GAAW;QACrC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC;IAC3E,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,IAAY,EAAE,GAAW;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE,EAAE;YAC9B,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE;YACnC,IACE,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAC5D,UAAU,CACX,EACD;gBACA,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,GAAW;QACnC,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,GAAW;QACpC,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,GAAW;QAC9B,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,GAAW;QAC9B,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,GAAW;QACjC,OAAO,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;CACF;AA3CD,gCA2CC"}
|
package/package.json
CHANGED
|
@@ -143,7 +143,8 @@ export class DefaultConfig implements JsonSerializableInterface<any> {
|
|
|
143
143
|
process.env.SASL_MECHANISM,
|
|
144
144
|
process.env.KAFKA_TOPICS_CONFIG_PATH ||
|
|
145
145
|
`${this._appPath}/config/topics.yaml`,
|
|
146
|
-
process.env.KAFKA_CLIENT_ID || process.env.POD_NAME || this.appName
|
|
146
|
+
process.env.KAFKA_CLIENT_ID || process.env.POD_NAME || this.appName,
|
|
147
|
+
process.env.KAFKA_DEFAULT_PARTITIONS
|
|
147
148
|
);
|
|
148
149
|
}
|
|
149
150
|
|
|
@@ -9,6 +9,7 @@ export class KafkaConfig
|
|
|
9
9
|
{
|
|
10
10
|
enabled: boolean;
|
|
11
11
|
saslMechanism: SASLMechanism;
|
|
12
|
+
defaultPartitions: number;
|
|
12
13
|
|
|
13
14
|
constructor(
|
|
14
15
|
enabled: string,
|
|
@@ -18,10 +19,14 @@ export class KafkaConfig
|
|
|
18
19
|
public readonly password: string,
|
|
19
20
|
saslMechanism: string,
|
|
20
21
|
public readonly topicsConfigPath: string,
|
|
21
|
-
public readonly clientId: string
|
|
22
|
+
public readonly clientId: string,
|
|
23
|
+
defaultPartitions?: string
|
|
22
24
|
) {
|
|
23
25
|
super(host, port);
|
|
24
26
|
this.saslMechanism = saslMechanism as SASLMechanism;
|
|
25
27
|
this.enabled = enabled === ConfigBooleanEnum.TRUE;
|
|
28
|
+
this.defaultPartitions = defaultPartitions
|
|
29
|
+
? parseInt(defaultPartitions, 10)
|
|
30
|
+
: 3;
|
|
26
31
|
}
|
|
27
32
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ArgumentMetadata,
|
|
3
|
+
BadRequestException,
|
|
4
|
+
Injectable,
|
|
5
|
+
PipeTransform,
|
|
6
|
+
} from "@nestjs/common";
|
|
7
|
+
import * as Joi from "joi";
|
|
8
|
+
|
|
9
|
+
@Injectable()
|
|
10
|
+
export class Uuidv4ArrayValidationPipe implements PipeTransform {
|
|
11
|
+
private _schema: Joi.ArraySchema;
|
|
12
|
+
constructor() {
|
|
13
|
+
this._schema = Joi.array().items(Joi.string().uuid({ version: "uuidv4" }));
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
public transform(value: any, metadata: ArgumentMetadata): any {
|
|
17
|
+
const { error } = this._schema.validate(value.data);
|
|
18
|
+
if (error) {
|
|
19
|
+
throw new BadRequestException(error.message);
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ArgumentMetadata,
|
|
3
|
+
BadRequestException,
|
|
4
|
+
Injectable,
|
|
5
|
+
PipeTransform,
|
|
6
|
+
} from "@nestjs/common";
|
|
7
|
+
import * as Joi from "joi";
|
|
8
|
+
|
|
9
|
+
@Injectable()
|
|
10
|
+
export class Uuidv4ValidationPipe implements PipeTransform {
|
|
11
|
+
private _schema: Joi.Schema;
|
|
12
|
+
constructor() {
|
|
13
|
+
this._schema = Joi.string().uuid({ version: "uuidv4" });
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
public transform(value: any, metadata: ArgumentMetadata): any {
|
|
17
|
+
const { error } = this._schema.validate(value.data);
|
|
18
|
+
if (error) {
|
|
19
|
+
throw new BadRequestException(error.message);
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import { Inject, Injectable, LoggerService } from "@nestjs/common";
|
|
2
2
|
import { Message } from "kafkajs";
|
|
3
3
|
import { ConsumerServiceDelegateInterface } from "./consumer-service-delegate.interface";
|
|
4
|
-
import { DefaultConfig } from "../../config";
|
|
5
|
-
import { EventHandlerFactoryInterface } from "../../event
|
|
4
|
+
import { DefaultConfig, ConsumerTypeEnum } from "../../config";
|
|
5
|
+
import { EventHandlerFactoryInterface, EventHandler } from "../../event";
|
|
6
6
|
import * as jsYaml from "js-yaml";
|
|
7
7
|
import * as fs from "fs";
|
|
8
8
|
import { TopicsConfigInterface } from "../../config/topics-config.interface";
|
|
9
|
-
import { EventHandler } from "../../event/event-handler";
|
|
10
9
|
import { StringUtil } from "../../util";
|
|
11
10
|
import { ConsumerUtil } from "./consumer.util";
|
|
12
11
|
import { HealthzComponentEnum, HealthzService } from "../healthz";
|
|
13
|
-
import { ConsumerTypeEnum } from "../../config";
|
|
14
12
|
|
|
15
13
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
16
14
|
// tslint:disable-next-line:no-var-requires
|
|
@@ -51,8 +49,9 @@ export class ConsumerService {
|
|
|
51
49
|
);
|
|
52
50
|
await this.consumerDelegateService.connect();
|
|
53
51
|
|
|
52
|
+
const topics = await this._getTopics();
|
|
54
53
|
await this.consumerDelegateService.startConsumer(
|
|
55
|
-
|
|
54
|
+
topics,
|
|
56
55
|
async (topic: string, message: Message) => {
|
|
57
56
|
await this.handle(topic, message);
|
|
58
57
|
}
|
|
@@ -70,7 +69,7 @@ export class ConsumerService {
|
|
|
70
69
|
return this.topics.topics[internalTopicTypeMap[this.consumerType]];
|
|
71
70
|
}
|
|
72
71
|
|
|
73
|
-
private _getTopics() {
|
|
72
|
+
private async _getTopics() {
|
|
74
73
|
let allTopics = [];
|
|
75
74
|
if (this.consumerType === ConsumerTypeEnum.DEFAULT) {
|
|
76
75
|
allTopics = allTopics.concat(this.topics.topics.external);
|
|
@@ -95,7 +94,6 @@ export class ConsumerService {
|
|
|
95
94
|
|
|
96
95
|
return ConsumerUtil.getTopics(allTopics);
|
|
97
96
|
}
|
|
98
|
-
|
|
99
97
|
public async handle(topic: string, message: any): Promise<void> {
|
|
100
98
|
const handler = this._getFactory(topic).getHandler(topic);
|
|
101
99
|
await this.eventHandler.handle(message, topic, handler);
|
|
@@ -7,7 +7,8 @@ export class ElasticsearchInitializer {
|
|
|
7
7
|
private readonly logger: CustomLogger,
|
|
8
8
|
private readonly index: string,
|
|
9
9
|
private readonly elasticsearchService: ElasticsearchService,
|
|
10
|
-
private readonly indexProperties: any
|
|
10
|
+
private readonly indexProperties: any,
|
|
11
|
+
private readonly type?: string
|
|
11
12
|
) {}
|
|
12
13
|
|
|
13
14
|
private async _createIndex() {
|
|
@@ -32,12 +33,19 @@ export class ElasticsearchInitializer {
|
|
|
32
33
|
await this._createIndex();
|
|
33
34
|
}
|
|
34
35
|
|
|
35
|
-
|
|
36
|
+
let params: any = {
|
|
36
37
|
index: this.index,
|
|
37
38
|
body: {
|
|
38
39
|
properties: this.indexProperties,
|
|
39
40
|
},
|
|
40
|
-
}
|
|
41
|
+
};
|
|
42
|
+
if (this.type) {
|
|
43
|
+
params = {
|
|
44
|
+
...params,
|
|
45
|
+
type: this.type,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
await this.elasticsearchService.indices.putMapping(params);
|
|
41
49
|
}
|
|
42
50
|
|
|
43
51
|
async _waitForReady() {
|
|
@@ -20,7 +20,7 @@ export class KafkaService implements ConsumerServiceDelegateInterface {
|
|
|
20
20
|
private _kafkaAdmin: Admin;
|
|
21
21
|
|
|
22
22
|
constructor(
|
|
23
|
-
@Inject("CONFIG") config: DefaultConfig,
|
|
23
|
+
@Inject("CONFIG") private readonly config: DefaultConfig,
|
|
24
24
|
@Inject("LOGGER") private readonly logger: LoggerService
|
|
25
25
|
) {
|
|
26
26
|
const kafkaClientConfig = {
|
|
@@ -128,6 +128,7 @@ export class KafkaService implements ConsumerServiceDelegateInterface {
|
|
|
128
128
|
for (const topic of stringTopics) {
|
|
129
129
|
if (!currentTopics.includes(topic)) {
|
|
130
130
|
const createTopic: ITopicConfig = {
|
|
131
|
+
numPartitions: this.config.kafka.defaultPartitions,
|
|
131
132
|
topic,
|
|
132
133
|
};
|
|
133
134
|
createTopics.push(createTopic);
|
package/src/util/string.util.ts
CHANGED
|
@@ -23,19 +23,23 @@ export class StringUtil {
|
|
|
23
23
|
return false;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
public static insecureMd5(str) {
|
|
26
|
+
public static insecureMd5(str: string) {
|
|
27
27
|
return crypto.createHash("md5").update(str).digest("hex");
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
public static insecureSha1(str) {
|
|
30
|
+
public static insecureSha1(str: string) {
|
|
31
31
|
return crypto.createHash("sha1").update(str).digest("hex");
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
public static sha256(str) {
|
|
34
|
+
public static sha256(str: string) {
|
|
35
35
|
return crypto.createHash("sha256").update(str).digest("hex");
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
public static sha512(str) {
|
|
38
|
+
public static sha512(str: string) {
|
|
39
39
|
return crypto.createHash("sha512").update(str).digest("hex");
|
|
40
40
|
}
|
|
41
|
+
|
|
42
|
+
public static byteArray(str: string): number[] {
|
|
43
|
+
return [...Buffer.from(str)];
|
|
44
|
+
}
|
|
41
45
|
}
|