woonplan-packages-redishelper 2.0.18 → 2.0.21

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.
@@ -2,7 +2,7 @@
2
2
  import { Redis } from "ioredis";
3
3
  import Rollbar from "rollbar";
4
4
  import Listener from "./Listener";
5
- import { DecypheredMessage, DecypheredParameters, DecypheredResponse, RedisConfig, RollbarConfig, StreamResponse, Struct } from "../types";
5
+ import { DecypheredMessage, DecypheredParameters, DecypheredResponse, RedisConfig, RollbarConfig, StreamMessage, StreamResponse, Struct } from "../types";
6
6
  export default class Broker {
7
7
  redisConfig: RedisConfig;
8
8
  rollbar?: Rollbar;
@@ -40,5 +40,6 @@ export default class Broker {
40
40
  getStreamInfo(stream: string, count?: number): Promise<any[] | null>;
41
41
  filterStream(stream: string, key: string, value: any): Promise<DecypheredMessage[]>;
42
42
  decypherResponse(...responses: StreamResponse[]): DecypheredResponse[];
43
+ decyperMessages(messages: StreamMessage[]): DecypheredMessage[];
43
44
  decypherParameters(parameters: string[]): DecypheredParameters;
44
45
  }
@@ -186,8 +186,10 @@ class Broker {
186
186
  const streaminfo = await this.getStreamInfo.call(this, stream);
187
187
  if (!streaminfo || !(0, class_validator_1.isArray)(streaminfo) || streaminfo.length < 10)
188
188
  return [];
189
- const streamresponses = streaminfo[9];
190
- return this.decypherResponse(...streamresponses).flatMap(r => r.messages);
189
+ const params = this.decypherParameters(streaminfo);
190
+ if (!params.entries)
191
+ return [];
192
+ return this.decyperMessages(params.entries);
191
193
  }
192
194
  getStreamInfo(stream, count = 0) {
193
195
  return this.reader.xinfo('STREAM', stream, 'FULL', 'COUNT', count);
@@ -201,13 +203,16 @@ class Broker {
201
203
  ...resp,
202
204
  {
203
205
  stream: response[0],
204
- messages: response[1].map((message) => ({
205
- id: message[0],
206
- parameters: this.decypherParameters(message[1])
207
- }))
206
+ messages: this.decyperMessages(response[1])
208
207
  }
209
208
  ], []);
210
209
  }
210
+ decyperMessages(messages) {
211
+ return messages.map((message) => ({
212
+ id: message[0],
213
+ parameters: this.decypherParameters(message[1])
214
+ }));
215
+ }
211
216
  decypherParameters(parameters) {
212
217
  return parameters.reduce((params, v, n) => (n == 0 || (n % 2 == 0)) && parameters.length >= n + 1 ? ({
213
218
  ...params,
@@ -1 +1 @@
1
- {"version":3,"file":"Broker.js","sourceRoot":"","sources":["../../../src/classes/Broker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Broker.js","sourceRoot":"","sources":["../../../src/classes/Broker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+
2
+ import { Broker } from "./main";
3
+ interface JsonStringifiedMap{
4
+ dataType : 'Map',
5
+ value : any[]
6
+ }
7
+
8
+ interface RedisMessage{
9
+ [index: string]: any;
10
+ }
11
+ interface Struct{
12
+ [index: string]: any;
13
+ }
14
+
15
+ interface RedisConfig{
16
+ REDISURL: string | number | undefined
17
+ REDISPW: string | undefined
18
+ }
19
+
20
+ interface RedisStreamEntry{
21
+ id : string
22
+ message:RedisMessage
23
+ }
24
+
25
+ type StreamMessage = [
26
+ string, StreamMessageParameters
27
+ ]
28
+
29
+ type StreamMessageParameters = string[]
30
+ type StreamResponse = [
31
+ string, StreamMessage[]
32
+ ]
33
+
34
+ interface DecypheredParameters{
35
+ [index:string] : string
36
+ }
37
+
38
+ interface DecypheredMessage{
39
+ id : string
40
+ parameters : DecypheredParameters
41
+ }
42
+
43
+ interface DecypheredResponse{
44
+ stream : string,
45
+ messages : DecypheredMessage[]
46
+ }
47
+
48
+ interface RollbarConfig{
49
+ accessToken : string
50
+ environment : string
51
+ }
52
+
53
+
54
+ export { RollbarConfig,DecypheredResponse,DecypheredMessage, DecypheredParameters, StreamMessage, StreamResponse, Struct, JsonStringifiedMap, RedisConfig, Broker }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "woonplan-packages-redishelper",
3
- "version": "2.0.18",
3
+ "version": "2.0.21",
4
4
  "description": "",
5
5
  "author": "Jasper Denk <jasper@e-trias.nl>",
6
6
  "repository": "https://github.com/e-line-websolutions/woonplan-micro-energyio",
package/dist/data.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import { Redis } from "ioredis";
2
- declare const subscribeToMessageResponse: (client: Redis, messageid: string) => Promise<number>;
3
- export { subscribeToMessageResponse };
package/dist/data.js DELETED
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.subscribeToMessageResponse = void 0;
4
- var utils_1 = require("./utils");
5
- var subscribeToMessageResponse = function (client, messageid) { return client.subscribe((0, utils_1.getMessageReponseKey)(messageid)); };
6
- exports.subscribeToMessageResponse = subscribeToMessageResponse;
@@ -1,3 +0,0 @@
1
- import { RedisConfig, RedisStreamEntry } from "./types";
2
- declare const filterStream: (config: RedisConfig, streamname: string, key: string, value: string, count?: number) => Promise<RedisStreamEntry[]>;
3
- export { filterStream };
@@ -1,95 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
- return new (P || (P = Promise))(function (resolve, reject) {
16
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
- step((generator = generator.apply(thisArg, _arguments || [])).next());
20
- });
21
- };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (_) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
- Object.defineProperty(exports, "__esModule", { value: true });
50
- exports.filterStream = void 0;
51
- var memdb_1 = require("./memdb");
52
- var getStreamInfo = function (config, streamname, count) { return __awaiter(void 0, void 0, void 0, function () {
53
- var _a;
54
- return __generator(this, function (_b) {
55
- switch (_b.label) {
56
- case 0:
57
- _b.trys.push([0, 2, , 3]);
58
- return [4 /*yield*/, (0, memdb_1.getRedisClient)(config).xinfo('stream', streamname, 'FULL', 'COUNT', count)];
59
- case 1: return [2 /*return*/, _b.sent()];
60
- case 2:
61
- _a = _b.sent();
62
- return [2 /*return*/, []];
63
- case 3: return [2 /*return*/];
64
- }
65
- });
66
- }); };
67
- var getEntriesFromStream = function (config, streamname, count) {
68
- if (count === void 0) { count = 0; }
69
- return getStreamInfo(config, streamname, count)
70
- .then(function (result) {
71
- var redisStreamResult = getObjectFromStreamResult(result);
72
- if (!redisStreamResult.entries)
73
- return [];
74
- return redisStreamResult.entries.map(function (entry) { return ({
75
- id: entry[0],
76
- message: entry[1].reduce(function (prevValue, currentValue, n) {
77
- var _a;
78
- return (n % 2 ? __assign({}, prevValue) : __assign(__assign({}, prevValue), (_a = {}, _a[currentValue] = entry[1][n + 1], _a)));
79
- }, {})
80
- }); });
81
- });
82
- };
83
- var getObjectFromStreamResult = function (arr) { return arr.reduce(function (obj, current, n) {
84
- if (!(n % 2) && arr.length + 1 >= n)
85
- obj[current] = arr[n + 1];
86
- return obj;
87
- }, {}); };
88
- var filterStream = function (config, streamname, key, value, count) {
89
- if (count === void 0) { count = 0; }
90
- return getEntriesFromStream(config, streamname, count)
91
- .then(function (entries) { return entries.filter(function (entry) {
92
- return Object.keys(entry.message).indexOf(key) > -1 && entry.message[key] == value;
93
- }); });
94
- };
95
- exports.filterStream = filterStream;
package/dist/getters.d.ts DELETED
@@ -1,6 +0,0 @@
1
- import { Redis } from "ioredis";
2
- import { RedisConfig, Struct } from "./types";
3
- declare const getOrRequestData: (config: RedisConfig, request: string, service: string, data?: Struct) => Promise<unknown>;
4
- declare const subscribeToMessageResponse: (client: Redis, messageid: string) => Promise<number>;
5
- declare const requestAndWaitForList: (client: Redis, service: string, listname: string, listsubject: string, props: {} | undefined, {}: {}) => Promise<unknown>;
6
- export { getOrRequestData, requestAndWaitForList, subscribeToMessageResponse };
package/dist/getters.js DELETED
@@ -1,70 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.subscribeToMessageResponse = exports.requestAndWaitForList = exports.getOrRequestData = void 0;
4
- var utils_1 = require("./utils");
5
- var memdb_1 = require("./memdb");
6
- var uuid_1 = require("uuid");
7
- var timeout = 1500;
8
- var getOrRequestData = function (config, request, service, data) {
9
- if (data === void 0) { data = {}; }
10
- return new Promise(function (resolve, reject) {
11
- var getterclient = (0, memdb_1.getRedisClient)(config);
12
- requestAndWaitForData(getterclient, config, request, service, data)
13
- .then(function (result) { return resolve(result); })
14
- .catch(function (error) {
15
- console.log(error);
16
- resolve(null);
17
- });
18
- });
19
- };
20
- exports.getOrRequestData = getOrRequestData;
21
- var requestAndWaitForData = function (getterclient, config, request, service, data) {
22
- if (data === void 0) { data = {}; }
23
- return new Promise(function (resolve) {
24
- var messageid = (0, uuid_1.v4)();
25
- // create a listener
26
- var listenerclient = (0, memdb_1.getRedisClient)(config);
27
- subscribeToMessageResponse(listenerclient, messageid).
28
- then(function () {
29
- //console.log( `subscribed to ${messageid} at ${new Date().toISOString()}` )
30
- // we are subscribed
31
- // send out the request
32
- getterclient.xadd((0, utils_1.getKeyRequestedChannelName)(service), '*', 'request', request, 'messageid', messageid, 'data', JSON.stringify(data))
33
- .catch(function (e) {
34
- console.log(e);
35
- resolve(null);
36
- })
37
- .finally(function () { return getterclient.disconnect(); });
38
- // setting up a one time event listener
39
- listenerclient.once("message", function (channel, message) {
40
- if (message.length)
41
- resolve(message);
42
- else
43
- resolve(null);
44
- console.log("unsubscribing from ".concat(channel));
45
- listenerclient.unsubscribe();
46
- listenerclient.disconnect();
47
- });
48
- // setup timeout
49
- setTimeout(function () {
50
- if (listenerclient.status != "end") {
51
- console.log("sub timedout: ".concat(request));
52
- resolve(null);
53
- listenerclient.unsubscribe();
54
- listenerclient.disconnect();
55
- }
56
- }, timeout);
57
- });
58
- });
59
- };
60
- var subscribeToMessageResponse = function (client, messageid) { return client.subscribe((0, utils_1.getMessageReponseKey)(messageid)); };
61
- exports.subscribeToMessageResponse = subscribeToMessageResponse;
62
- var requestAndWaitForList = function (client, service, listname, listsubject, props, _a) {
63
- if (props === void 0) { props = {}; }
64
- return new Promise(function (resolve) {
65
- // send message for list to be created and then block untill we have a list
66
- client.xadd((0, utils_1.getListRequestedChannelName)(service), '*', 'listname', listname, 'listsubject', listsubject, 'props', JSON.stringify(props))
67
- .then(function () { return resolve(client.blmove(listname, listname, 'RIGHT', 'LEFT', 2)); });
68
- });
69
- };
70
- exports.requestAndWaitForList = requestAndWaitForList;
package/dist/index.d.ts DELETED
@@ -1,8 +0,0 @@
1
- import { RedisConfig, RedisMessage } from "./types";
2
- import { sendMessageToStream, publishMessageResponse, toApiRequest } from "./setters";
3
- import { getOrRequestData, subscribeToMessageResponse, requestAndWaitForList } from "./getters";
4
- import { filterStream } from "./eventsource";
5
- declare const listenToStream: (config: RedisConfig, groupname: string, channelname: string, consumername: string, callback: Function) => Promise<boolean>;
6
- declare const dataRequester: (config: RedisConfig, groupname: string, service: string, consumername: string, callback: Function) => void;
7
- declare const toApiListener: (config: RedisConfig, groupname: string, channelname: string, consumername: string, callback: Function) => void;
8
- export { listenToStream, RedisMessage, sendMessageToStream, toApiRequest, publishMessageResponse, filterStream, getOrRequestData, toApiListener, dataRequester, subscribeToMessageResponse, requestAndWaitForList };
package/dist/index.js DELETED
@@ -1,170 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.requestAndWaitForList = exports.subscribeToMessageResponse = exports.dataRequester = exports.toApiListener = exports.getOrRequestData = exports.filterStream = exports.publishMessageResponse = exports.toApiRequest = exports.sendMessageToStream = exports.listenToStream = void 0;
4
- var setters_1 = require("./setters");
5
- Object.defineProperty(exports, "sendMessageToStream", { enumerable: true, get: function () { return setters_1.sendMessageToStream; } });
6
- Object.defineProperty(exports, "publishMessageResponse", { enumerable: true, get: function () { return setters_1.publishMessageResponse; } });
7
- Object.defineProperty(exports, "toApiRequest", { enumerable: true, get: function () { return setters_1.toApiRequest; } });
8
- var getters_1 = require("./getters");
9
- Object.defineProperty(exports, "getOrRequestData", { enumerable: true, get: function () { return getters_1.getOrRequestData; } });
10
- Object.defineProperty(exports, "subscribeToMessageResponse", { enumerable: true, get: function () { return getters_1.subscribeToMessageResponse; } });
11
- Object.defineProperty(exports, "requestAndWaitForList", { enumerable: true, get: function () { return getters_1.requestAndWaitForList; } });
12
- var memdb_1 = require("./memdb");
13
- var utils_1 = require("./utils");
14
- var eventsource_1 = require("./eventsource");
15
- Object.defineProperty(exports, "filterStream", { enumerable: true, get: function () { return eventsource_1.filterStream; } });
16
- var listenToStream = function (config, groupname, channelname, consumername, callback) { return new Promise(function (resolve, reject) {
17
- var client = (0, memdb_1.getRedisClient)(config);
18
- createGroup(client, groupname, channelname).then(function () {
19
- listenForMessage(client, groupname, channelname, consumername, callback);
20
- resolve(true);
21
- }).catch(function (error) {
22
- console.log(error);
23
- reject(error);
24
- });
25
- }); };
26
- exports.listenToStream = listenToStream;
27
- var createGroup = function (client, groupname, channelname) { return new Promise(function (resolve, reject) {
28
- client.xgroup('CREATE', channelname, groupname, '$', 'MKSTREAM').then(function () { return resolve(true); }).catch(function (error) {
29
- // group exists
30
- if (error.message.includes('BUSYGROUP'))
31
- return resolve(true);
32
- reject(error);
33
- });
34
- }); };
35
- // this function is made as a responsding function to getters/requestAndWaitForKey
36
- // dataRequester listens to a stream and then publishes a respond
37
- var dataRequester = function (config, groupname, service, consumername, callback) {
38
- var channelname = (0, utils_1.getKeyRequestedChannelName)(service);
39
- var listenerclient = (0, memdb_1.getRedisClient)(config);
40
- createGroup(listenerclient, groupname, channelname)
41
- .then(function () { return listenForMessageForDataRequest(listenerclient, groupname, channelname, consumername, callback); });
42
- };
43
- exports.dataRequester = dataRequester;
44
- var toApiListener = function (config, groupname, channelname, consumername, callback) {
45
- var listenerclient = (0, memdb_1.getRedisClient)(config);
46
- createGroup(listenerclient, groupname, channelname)
47
- .then(function () { return listenForMessageForDataRequest(listenerclient, groupname, channelname, consumername, callback); });
48
- };
49
- exports.toApiListener = toApiListener;
50
- var listenForMessageForApiRequest = function (listenerclient, groupname, channelname, consumername, callback) {
51
- console.log("listening to ".concat(channelname, " as ").concat(consumername));
52
- var streammsgid = '';
53
- var messageid = '';
54
- // block client while listening for a message
55
- listenerclient.xreadgroup('GROUP', groupname, consumername, 'COUNT', 1, 'BLOCK', 0, 'STREAMS', channelname, '>')
56
- .then(function (results) {
57
- return getMessagedataFromResult(results);
58
- })
59
- .then(function (_a) {
60
- var messagedata = _a.messagedata, id = _a.id;
61
- // messageid should have been set in getters/requestAndWaitForKey
62
- if ('messageid' in messagedata)
63
- messageid = messagedata.messageid;
64
- //stream id from redis
65
- streammsgid = id;
66
- return messagedata;
67
- })
68
- .then(function (messagedata) {
69
- return callback(messagedata, streammsgid);
70
- })
71
- .then(function (result) {
72
- return (0, setters_1.publishMessageResponse)(listenerclient, messageid, result != null ? result : '');
73
- })
74
- .catch(function (e) {
75
- console.log(e);
76
- return (0, setters_1.publishMessageResponse)(listenerclient, messageid, '');
77
- })
78
- .finally(function () {
79
- listenerclient.xack(channelname, groupname, streammsgid).then(function () {
80
- console.log(streammsgid + ' acknowledged');
81
- });
82
- listenForMessageForApiRequest(listenerclient, groupname, channelname, consumername, callback);
83
- });
84
- };
85
- var getMessagedataFromResult = function (results) {
86
- if (!results.length)
87
- throw ('no-messagedata');
88
- var result = results[0], messages = result[1];
89
- if (!messages.length)
90
- throw ('no-messagedata');
91
- var message = messages[0], id = message[0], keysandvalues = message[1];
92
- var messagedata = {};
93
- keysandvalues.forEach(function (key, n) {
94
- if (!(n == 0 || n % 2 == 0))
95
- return;
96
- messagedata[key] = keysandvalues[n + 1];
97
- });
98
- return { messagedata: messagedata, id: id };
99
- };
100
- var listenForMessageForDataRequest = function (listenerclient, groupname, channelname, consumername, callback) {
101
- console.log("listening to ".concat(channelname, " as ").concat(consumername));
102
- var streammsgid = '';
103
- var messageid = '';
104
- // block client while listening for a message
105
- listenerclient.xreadgroup('GROUP', groupname, consumername, 'COUNT', 1, 'BLOCK', 0, 'STREAMS', channelname, '>')
106
- .then(function (results) {
107
- return getMessagedataFromResult(results);
108
- })
109
- .then(function (_a) {
110
- var messagedata = _a.messagedata, id = _a.id;
111
- // messageid should have been set in getters/requestAndWaitForKey
112
- if ('messageid' in messagedata)
113
- messageid = messagedata.messageid;
114
- //stream id from redis
115
- streammsgid = id;
116
- return messagedata;
117
- })
118
- .then(function (messagedata) {
119
- return callback(messagedata, streammsgid);
120
- })
121
- .then(function (result) {
122
- return (0, setters_1.publishMessageResponse)(listenerclient, messageid, result != null ? result : '');
123
- })
124
- .catch(function (e) {
125
- return (0, setters_1.publishMessageResponse)(listenerclient, messageid, JSON.stringify({
126
- rejected: true,
127
- error: e
128
- }));
129
- })
130
- .finally(function () {
131
- listenerclient.xack(channelname, groupname, streammsgid).then(function () {
132
- console.log(streammsgid + ' acknowledged');
133
- });
134
- listenForMessageForDataRequest(listenerclient, groupname, channelname, consumername, callback);
135
- });
136
- };
137
- var listenForMessage = function (client, groupname, channelname, consumername, callback, lastId) {
138
- if (lastId === void 0) { lastId = "$"; }
139
- console.log("listening to ".concat(channelname, " as ").concat(consumername));
140
- client.xreadgroup('GROUP', groupname, consumername, 'COUNT', 1, 'BLOCK', 0, 'STREAMS', channelname, '>')
141
- .then(function (results) {
142
- results.forEach(function (result) {
143
- var group = result[0];
144
- var messages = result[1];
145
- messages.forEach(function (message) {
146
- var id = message[0];
147
- var keysandvalues = message[1];
148
- var messagedata = {};
149
- keysandvalues.forEach(function (key, n) {
150
- if (!(n == 0 || n % 2 == 0))
151
- return;
152
- messagedata[key] = keysandvalues[n + 1];
153
- });
154
- callback(messagedata, id, client).catch(function (error) {
155
- console.log(error);
156
- }).finally(function () {
157
- // not sure yet? For now always acknowledge
158
- client.xack(channelname, groupname, id).then(function () {
159
- console.log(id + ' acknowledged');
160
- });
161
- // relisten
162
- listenForMessage(client, groupname, channelname, consumername, callback);
163
- });
164
- });
165
- });
166
- })
167
- .catch(function (error) {
168
- console.log(error);
169
- });
170
- };
package/dist/memdb.d.ts DELETED
@@ -1,4 +0,0 @@
1
- import { RedisConfig } from "./types";
2
- import { Redis } from "ioredis";
3
- declare const getRedisClient: (config: RedisConfig) => Redis;
4
- export { getRedisClient };
package/dist/memdb.js DELETED
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRedisClient = void 0;
4
- var IORedis = require("ioredis");
5
- var getRedisClient = function (config) { return new IORedis({
6
- host: config.REDISURL,
7
- password: config.REDISPW
8
- }); };
9
- exports.getRedisClient = getRedisClient;
package/dist/setters.d.ts DELETED
@@ -1,12 +0,0 @@
1
- import { Redis } from "ioredis";
2
- import { RedisConfig, RedisMessage, Struct } from "./types";
3
- declare const publishMessageResponse: (client: Redis, messageid: string, message: string) => Promise<number>;
4
- declare const sendMessageToStream: (config: RedisConfig, channelname: string, message: RedisMessage) => Promise<string>;
5
- export interface toApiRequestOptions {
6
- endpoint: string;
7
- data?: Struct;
8
- method?: string;
9
- jwt?: string;
10
- }
11
- declare const toApiRequest: (config: RedisConfig, options?: toApiRequestOptions) => Promise<unknown>;
12
- export { publishMessageResponse, sendMessageToStream, toApiRequest };
package/dist/setters.js DELETED
@@ -1,79 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
14
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
15
- if (ar || !(i in from)) {
16
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
17
- ar[i] = from[i];
18
- }
19
- }
20
- return to.concat(ar || Array.prototype.slice.call(from));
21
- };
22
- Object.defineProperty(exports, "__esModule", { value: true });
23
- exports.toApiRequest = exports.sendMessageToStream = exports.publishMessageResponse = void 0;
24
- var memdb_1 = require("./memdb");
25
- var utils_1 = require("./utils");
26
- var uuid_1 = require("uuid");
27
- var data_1 = require("./data");
28
- var publishMessageResponse = function (client, messageid, message) {
29
- //console.log( `publishing to ${messageid} at ${new Date().toISOString()}` )
30
- return client.publish((0, utils_1.getMessageReponseKey)(messageid), message);
31
- };
32
- exports.publishMessageResponse = publishMessageResponse;
33
- var sendMessageToStream = function (config, channelname, message) {
34
- var client = (0, memdb_1.getRedisClient)(config);
35
- var arrayOfKeysAndValues = (0, utils_1.redisMessageToArrayOfKeysAndValues)(message).reduce(utils_1.reduceArraysToArray, []);
36
- console.log('sending message', channelname);
37
- return client.xadd.apply(client, __spreadArray([channelname, '*'], arrayOfKeysAndValues, false));
38
- };
39
- exports.sendMessageToStream = sendMessageToStream;
40
- var timeout = 2500;
41
- // send a message from socket to api, creating a message id to publish the response on
42
- var toApiRequest = function (config, options) {
43
- if (options === void 0) { options = { endpoint: '', method: 'GET', data: {}, }; }
44
- return new Promise(function (resolve, reject) {
45
- var client = (0, memdb_1.getRedisClient)(config), callbackclient = (0, memdb_1.getRedisClient)(config), messageid = (0, uuid_1.v4)();
46
- (0, data_1.subscribeToMessageResponse)(callbackclient, messageid)
47
- .then(function () {
48
- callbackclient.once("message", function (_channel, message) {
49
- if (message.length && isJson(message)) {
50
- var messagedata = JSON.parse(message);
51
- if (messagedata.rejected && messagedata.error)
52
- return reject(messagedata.error);
53
- }
54
- resolve(message.length ? message : null);
55
- callbackclient.disconnect();
56
- });
57
- // setup timeout
58
- setTimeout(function () {
59
- if (callbackclient.status != "end") {
60
- console.log("sub timedout ".concat(options.endpoint));
61
- reject('timeout');
62
- callbackclient.disconnect();
63
- }
64
- }, timeout);
65
- return sendMessageToStream(config, 'api', __assign(__assign({}, options), { data: JSON.stringify(options.data), messageid: messageid }));
66
- })
67
- .catch(reject);
68
- });
69
- };
70
- exports.toApiRequest = toApiRequest;
71
- function isJson(str) {
72
- try {
73
- JSON.parse(str);
74
- }
75
- catch (e) {
76
- return false;
77
- }
78
- return true;
79
- }
package/dist/types.d.ts DELETED
@@ -1,14 +0,0 @@
1
- export interface RedisMessage {
2
- [index: string]: any;
3
- }
4
- export interface Struct {
5
- [index: string]: any;
6
- }
7
- export interface RedisConfig {
8
- REDISURL: string | number | undefined;
9
- REDISPW: string | undefined;
10
- }
11
- export interface RedisStreamEntry {
12
- id: string;
13
- message: RedisMessage;
14
- }
package/dist/types.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
package/dist/utils.d.ts DELETED
@@ -1,7 +0,0 @@
1
- import { RedisMessage } from "./types";
2
- declare const getMessageReponseKey: (messageid: string) => string;
3
- declare const reduceArraysToArray: (toArray: any[], fromArray: []) => any[];
4
- declare const redisMessageToArrayOfKeysAndValues: (message: RedisMessage) => any[];
5
- declare const getKeyRequestedChannelName: (service: string) => string;
6
- declare const getListRequestedChannelName: (service: string) => string;
7
- export { getMessageReponseKey, redisMessageToArrayOfKeysAndValues, reduceArraysToArray, getKeyRequestedChannelName, getListRequestedChannelName };
package/dist/utils.js DELETED
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getListRequestedChannelName = exports.getKeyRequestedChannelName = exports.reduceArraysToArray = exports.redisMessageToArrayOfKeysAndValues = exports.getMessageReponseKey = void 0;
4
- var messagePrefix = "messageresponse";
5
- var getMessageReponseKey = function (messageid) { return messagePrefix + messageid; };
6
- exports.getMessageReponseKey = getMessageReponseKey;
7
- var reduceArraysToArray = function (toArray, fromArray) { return toArray.concat(fromArray); };
8
- exports.reduceArraysToArray = reduceArraysToArray;
9
- var redisMessageToArrayOfKeysAndValues = function (message) { return Object.keys(message).map(function (key) { return [key, message[key]]; }); };
10
- exports.redisMessageToArrayOfKeysAndValues = redisMessageToArrayOfKeysAndValues;
11
- var capitalizeFirstLetter = function (string) { return string.charAt(0).toUpperCase() + string.slice(1); };
12
- var getKeyRequestedChannelName = function (service) { return "keyRequestedFrom".concat(capitalizeFirstLetter(service), "Service"); };
13
- exports.getKeyRequestedChannelName = getKeyRequestedChannelName;
14
- var getListRequestedChannelName = function (service) { return "listRequestedFrom".concat(capitalizeFirstLetter(service), "Service"); };
15
- exports.getListRequestedChannelName = getListRequestedChannelName;