@restorecommerce/chassis-srv 0.3.3 → 0.3.7
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 +19 -0
- package/lib/cache/index.js +22 -3
- package/lib/cache/index.js.map +1 -1
- package/lib/command-interface/index.d.ts +3 -3
- package/lib/command-interface/index.js +432 -498
- package/lib/command-interface/index.js.map +1 -1
- package/lib/config/index.js +6 -15
- package/lib/config/index.js.map +1 -1
- package/lib/database/index.d.ts +2 -4
- package/lib/database/index.js +4 -13
- package/lib/database/index.js.map +1 -1
- package/lib/database/provider/arango/base.js +314 -322
- package/lib/database/provider/arango/base.js.map +1 -1
- package/lib/database/provider/arango/common.js +70 -57
- package/lib/database/provider/arango/common.js.map +1 -1
- package/lib/database/provider/arango/graph.d.ts +4 -8
- package/lib/database/provider/arango/graph.js +335 -470
- package/lib/database/provider/arango/graph.js.map +1 -1
- package/lib/database/provider/arango/index.js +34 -21
- package/lib/database/provider/arango/index.js.map +1 -1
- package/lib/database/provider/arango/interface.d.ts +70 -0
- package/lib/database/provider/arango/interface.js +46 -0
- package/lib/database/provider/arango/interface.js.map +1 -0
- package/lib/database/provider/arango/utils.d.ts +77 -0
- package/lib/database/provider/arango/utils.js +587 -0
- package/lib/database/provider/arango/utils.js.map +1 -0
- package/lib/database/provider/nedb/index.js +203 -206
- package/lib/database/provider/nedb/index.js.map +1 -1
- package/lib/health/index.js +36 -42
- package/lib/health/index.js.map +1 -1
- package/lib/index.d.ts +4 -0
- package/lib/index.js +27 -6
- package/lib/index.js.map +1 -1
- package/lib/microservice/endpoint.js +33 -23
- package/lib/microservice/endpoint.js.map +1 -1
- package/lib/microservice/server.js +115 -106
- package/lib/microservice/server.js.map +1 -1
- package/lib/microservice/transport/provider/grpc/index.js +58 -52
- package/lib/microservice/transport/provider/grpc/index.js.map +1 -1
- package/lib/microservice/transport/provider/grpc/reflection.js +101 -93
- package/lib/microservice/transport/provider/grpc/reflection.js.map +1 -1
- package/lib/offsets/index.d.ts +2 -2
- package/lib/offsets/index.js +41 -42
- package/lib/offsets/index.js.map +1 -1
- package/package.json +29 -29
- package/tsconfig.json +13 -6
- package/setupTopics.js +0 -32
package/lib/offsets/index.js
CHANGED
|
@@ -1,17 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
10
20
|
};
|
|
11
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
22
|
exports.OffsetStore = void 0;
|
|
13
|
-
const _ = require("lodash");
|
|
14
|
-
const
|
|
23
|
+
const _ = __importStar(require("lodash"));
|
|
24
|
+
const redis_1 = require("redis");
|
|
15
25
|
/**
|
|
16
26
|
* Stores the offsets of the provided topics to redis periodically
|
|
17
27
|
*/
|
|
@@ -35,9 +45,11 @@ class OffsetStore {
|
|
|
35
45
|
if (this.config.get('redis')) {
|
|
36
46
|
const redisConfig = this.config.get('redis');
|
|
37
47
|
if (_.has(redisConfig, 'db-indexes.db-offsetStore')) {
|
|
38
|
-
redisConfig.
|
|
48
|
+
redisConfig.database = _.get(redisConfig, 'db-indexes.db-offsetStore');
|
|
39
49
|
}
|
|
40
|
-
this.redisClient =
|
|
50
|
+
this.redisClient = (0, redis_1.createClient)(redisConfig);
|
|
51
|
+
this.redisClient.on('error', (err) => logger.error('Redis Client Error in offsetstore', err));
|
|
52
|
+
this.redisClient.connect().then((val) => logger.info('Redis client connection successful for offsetstore'));
|
|
41
53
|
}
|
|
42
54
|
this.topics = {};
|
|
43
55
|
this.timerID = [];
|
|
@@ -67,33 +79,22 @@ class OffsetStore {
|
|
|
67
79
|
* @param {object} redisClient
|
|
68
80
|
* @return {object}
|
|
69
81
|
*/
|
|
70
|
-
storeOffset(topic, topicName) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
this.redisClient.set(redisKey, offsetValue);
|
|
76
|
-
});
|
|
82
|
+
async storeOffset(topic, topicName) {
|
|
83
|
+
// get the latest offset here each time and store it.
|
|
84
|
+
const offsetValue = await topic.$offset(-1);
|
|
85
|
+
const redisKey = this.config.get('events:kafka:clientId:kafka:clientId') + ':' + topicName;
|
|
86
|
+
this.redisClient.set(redisKey, offsetValue);
|
|
77
87
|
}
|
|
78
88
|
/**
|
|
79
89
|
* get the offset value for the topic from redis
|
|
80
90
|
* @param {string} topic Topic name
|
|
81
91
|
* @return {object}
|
|
82
92
|
*/
|
|
83
|
-
getOffset(topicName) {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
if (err) {
|
|
89
|
-
reject(err);
|
|
90
|
-
}
|
|
91
|
-
resolve(response);
|
|
92
|
-
});
|
|
93
|
-
});
|
|
94
|
-
this.logger.info('The offset value retreived from redis for topic is:', { topicName, offsetValue });
|
|
95
|
-
return offsetValue;
|
|
96
|
-
});
|
|
93
|
+
async getOffset(topicName) {
|
|
94
|
+
const redisKey = this.config.get('events:kafka:clientId') + ':' + topicName;
|
|
95
|
+
const offsetValue = await this.redisClient.get(redisKey);
|
|
96
|
+
this.logger.info('The offset value retreived from redis for topic is:', { topicName, offsetValue });
|
|
97
|
+
return Number(offsetValue);
|
|
97
98
|
}
|
|
98
99
|
/**
|
|
99
100
|
* stops the redis client
|
|
@@ -101,15 +102,13 @@ class OffsetStore {
|
|
|
101
102
|
* @param {object} redisClient
|
|
102
103
|
* @return {object}
|
|
103
104
|
*/
|
|
104
|
-
stop() {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
}
|
|
112
|
-
});
|
|
105
|
+
async stop() {
|
|
106
|
+
for (let i = 0; i < this.timerID.length; i += 1) {
|
|
107
|
+
clearInterval(this.timerID[i]);
|
|
108
|
+
}
|
|
109
|
+
if (this.redisClient) {
|
|
110
|
+
await this.redisClient.quit();
|
|
111
|
+
}
|
|
113
112
|
}
|
|
114
113
|
}
|
|
115
114
|
exports.OffsetStore = OffsetStore;
|
package/lib/offsets/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/offsets/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/offsets/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@restorecommerce/chassis-srv",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.7",
|
|
4
4
|
"description": "Restore Commerce microservice chassis",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"author": "n-fuse GmbH",
|
|
@@ -17,54 +17,54 @@
|
|
|
17
17
|
],
|
|
18
18
|
"typings": "lib/index.d.ts",
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@grpc/grpc-js": "^1.
|
|
21
|
-
"@grpc/proto-loader": "^0.6.
|
|
22
|
-
"@restorecommerce/grpc-client": "^0.
|
|
23
|
-
"@restorecommerce/kafka-client": "^0.
|
|
24
|
-
"@restorecommerce/logger": "^0.
|
|
25
|
-
"@restorecommerce/protos": "^0.
|
|
26
|
-
"@restorecommerce/service-config": "^0.4.
|
|
27
|
-
"arangojs": "^7.
|
|
28
|
-
"async": "^3.2.
|
|
29
|
-
"async-retry": "^1.3.
|
|
30
|
-
"cache-manager": "^3.
|
|
20
|
+
"@grpc/grpc-js": "^1.5.5",
|
|
21
|
+
"@grpc/proto-loader": "^0.6.9",
|
|
22
|
+
"@restorecommerce/grpc-client": "^0.3.0",
|
|
23
|
+
"@restorecommerce/kafka-client": "^0.3.0",
|
|
24
|
+
"@restorecommerce/logger": "^0.12.0",
|
|
25
|
+
"@restorecommerce/protos": "^0.6.2",
|
|
26
|
+
"@restorecommerce/service-config": "^0.4.24",
|
|
27
|
+
"arangojs": "^7.7.0",
|
|
28
|
+
"async": "^3.2.3",
|
|
29
|
+
"async-retry": "^1.3.3",
|
|
30
|
+
"cache-manager": "^3.6.0",
|
|
31
31
|
"cls-hooked": "^4.2.2",
|
|
32
32
|
"cls-rtracer": "^2.6.0",
|
|
33
|
-
"
|
|
34
|
-
"kafkajs": "^1.15.0",
|
|
33
|
+
"kafkajs": "^1.16.0",
|
|
35
34
|
"lodash": "^4.17.21",
|
|
36
|
-
"long": "^
|
|
35
|
+
"long": "^5.2.0",
|
|
37
36
|
"nedb": "^1.8.0",
|
|
38
|
-
"protobufjs": "^6.11.2"
|
|
37
|
+
"protobufjs": "^6.11.2",
|
|
38
|
+
"redis": "^4.0.3"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@types/cache-manager": "^3.4.2",
|
|
42
|
-
"@types/lodash": "^4.14.
|
|
42
|
+
"@types/lodash": "^4.14.178",
|
|
43
43
|
"@types/long": "^4.0.1",
|
|
44
|
-
"@types/mocha": "^9.
|
|
44
|
+
"@types/mocha": "^9.1.0",
|
|
45
45
|
"@types/nedb": "^1.8.12",
|
|
46
|
-
"@types/node": "^
|
|
47
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
48
|
-
"@typescript-eslint/eslint-plugin-tslint": "^
|
|
49
|
-
"@typescript-eslint/parser": "^
|
|
46
|
+
"@types/node": "^17.0.17",
|
|
47
|
+
"@typescript-eslint/eslint-plugin": "^5.11.0",
|
|
48
|
+
"@typescript-eslint/eslint-plugin-tslint": "^5.11.0",
|
|
49
|
+
"@typescript-eslint/parser": "^5.11.0",
|
|
50
50
|
"cross-env": "^7.0.3",
|
|
51
|
-
"eslint": "^
|
|
52
|
-
"eslint-plugin-prefer-arrow-functions": "^3.
|
|
53
|
-
"mocha": "^9.0
|
|
51
|
+
"eslint": "^8.8.0",
|
|
52
|
+
"eslint-plugin-prefer-arrow-functions": "^3.1.4",
|
|
53
|
+
"mocha": "^9.2.0",
|
|
54
54
|
"mocha-typescript": "^1.1.17",
|
|
55
55
|
"npm-run-all": "^4.1.5",
|
|
56
56
|
"nyc": "^15.1.0",
|
|
57
57
|
"rimraf": "^3.0.2",
|
|
58
|
-
"rxjs": "^7.
|
|
58
|
+
"rxjs": "^7.5.4",
|
|
59
59
|
"should": "^13.2.3",
|
|
60
60
|
"sleep": "^6.3.0",
|
|
61
|
-
"ts-node": "^10.
|
|
61
|
+
"ts-node": "^10.5.0",
|
|
62
62
|
"tslint": "^6.1.3",
|
|
63
|
-
"typescript": "^4.
|
|
63
|
+
"typescript": "^4.5.5"
|
|
64
64
|
},
|
|
65
65
|
"scripts": {
|
|
66
66
|
"lint": "eslint './src/**/*.ts' ",
|
|
67
|
-
"pretest": "npm run build
|
|
67
|
+
"pretest": "npm run build",
|
|
68
68
|
"test": "npm run lint && nyc npm run mocha",
|
|
69
69
|
"mochadebug": "cross-env NODE_ENV=test; mocha --full-trace --inspect-brk",
|
|
70
70
|
"mocha": "cross-env NODE_ENV=test; mocha --full-trace --exit --trace-warnings;",
|
package/tsconfig.json
CHANGED
|
@@ -1,25 +1,32 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
|
-
"target": "
|
|
3
|
+
"target": "ES2021",
|
|
4
4
|
"module": "commonjs",
|
|
5
5
|
"moduleResolution": "node",
|
|
6
|
+
"declaration": true,
|
|
7
|
+
// "strict": true,
|
|
6
8
|
"emitDecoratorMetadata": true,
|
|
7
9
|
"experimentalDecorators": true,
|
|
8
10
|
"allowSyntheticDefaultImports": true,
|
|
11
|
+
"noUnusedLocals": false,
|
|
12
|
+
"skipLibCheck": true,
|
|
13
|
+
"esModuleInterop": true,
|
|
14
|
+
"sourceMap": true,
|
|
9
15
|
"outDir": "lib",
|
|
10
16
|
"typeRoots": [
|
|
11
17
|
"node_modules/@types"
|
|
12
18
|
],
|
|
13
|
-
"
|
|
14
|
-
|
|
19
|
+
"lib": [
|
|
20
|
+
"es2020.promise",
|
|
21
|
+
"dom"
|
|
22
|
+
]
|
|
15
23
|
},
|
|
16
24
|
"include": [
|
|
17
|
-
|
|
25
|
+
"./src/**/*.ts"
|
|
18
26
|
],
|
|
19
27
|
"exclude": [
|
|
20
28
|
"node_modules",
|
|
21
|
-
"definitions",
|
|
22
29
|
"lib",
|
|
23
|
-
"
|
|
30
|
+
"doc"
|
|
24
31
|
]
|
|
25
32
|
}
|
package/setupTopics.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
const { Events } = require('@restorecommerce/kafka-client');
|
|
2
|
-
const RestoreLogger = require('@restorecommerce/logger');
|
|
3
|
-
const sconfig = require('@restorecommerce/service-config');
|
|
4
|
-
|
|
5
|
-
const cfg = sconfig.createServiceConfig('./test/');
|
|
6
|
-
const logger = new RestoreLogger.createLogger(cfg.get('logger'));
|
|
7
|
-
|
|
8
|
-
/*
|
|
9
|
-
* This script is used to create kafka topics before running the tests.
|
|
10
|
-
*/
|
|
11
|
-
async function createTopics() {
|
|
12
|
-
const events = new Events(cfg.get('events:kafka'), logger);
|
|
13
|
-
await events.start();
|
|
14
|
-
|
|
15
|
-
process.argv.forEach((value, index, array) => {
|
|
16
|
-
if (index >= 2) {
|
|
17
|
-
events.topic(value);
|
|
18
|
-
logger.info('Created topic', value, ' successfully');
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
// Give a delay of 3 seconds and exit the process
|
|
23
|
-
// this delay is for the creation of topic via zookeeper
|
|
24
|
-
setTimeout(() => {
|
|
25
|
-
logger.info('Exiting after topic creation');
|
|
26
|
-
process.exit();
|
|
27
|
-
}, 3000);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
createTopics().catch((err) => {
|
|
31
|
-
logger.error(err);
|
|
32
|
-
});
|