woonplan-packages-redishelper 1.0.84 → 1.0.89
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/dist/eventsource.d.ts +3 -0
- package/dist/eventsource.js +35 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +3 -1
- package/dist/memdb.js +4 -1
- package/dist/setters.js +1 -1
- package/dist/types.d.ts +5 -0
- package/eventsource.ts +25 -0
- package/index.ts +2 -1
- package/memdb.ts +4 -1
- package/package.json +1 -1
- package/setters.ts +1 -1
- package/types.ts +7 -1
|
@@ -0,0 +1,35 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.filterStream = void 0;
|
|
15
|
+
var memdb_1 = require("./memdb");
|
|
16
|
+
var getStreamInfo = function (config, streamname, count) { return (0, memdb_1.getRedisClient)(config).xinfo('stream', streamname, 'FULL', 'COUNT', count); };
|
|
17
|
+
var getEntriesFromStream = function (config, streamname) {
|
|
18
|
+
return getStreamInfo(config, streamname, 0)
|
|
19
|
+
.then(function (result) {
|
|
20
|
+
return result[9].map(function (entry) { return ({
|
|
21
|
+
id: entry[0],
|
|
22
|
+
message: entry[1].reduce(function (prevValue, currentValue, n) {
|
|
23
|
+
var _a;
|
|
24
|
+
return (n % 2 ? __assign({}, prevValue) : __assign(__assign({}, prevValue), (_a = {}, _a[currentValue] = entry[1][n + 1], _a)));
|
|
25
|
+
}, {})
|
|
26
|
+
}); });
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
var filterStream = function (config, streamname, key, value) {
|
|
30
|
+
return getEntriesFromStream(config, streamname)
|
|
31
|
+
.then(function (entries) { return entries.filter(function (entry) {
|
|
32
|
+
return Object.keys(entry.message).indexOf(key) > -1 && entry.message[key] == value;
|
|
33
|
+
}); });
|
|
34
|
+
};
|
|
35
|
+
exports.filterStream = filterStream;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { RedisConfig, RedisMessage } from "./types";
|
|
2
2
|
import { sendMessageToStream, publishMessageResponse, toApiRequest } from "./setters";
|
|
3
3
|
import { getOrRequestData, subscribeToMessageResponse, requestAndWaitForList } from "./getters";
|
|
4
|
+
import { filterStream } from "./eventsource";
|
|
4
5
|
declare const listenToStream: (config: RedisConfig, groupname: string, channelname: string, consumername: string, callback: Function) => Promise<boolean>;
|
|
5
6
|
declare const dataRequester: (config: RedisConfig, groupname: string, service: string, consumername: string, callback: Function) => void;
|
|
6
7
|
declare const toApiListener: (config: RedisConfig, groupname: string, channelname: string, consumername: string, callback: Function) => void;
|
|
7
|
-
export { listenToStream, RedisMessage, sendMessageToStream, toApiRequest, publishMessageResponse, getOrRequestData, toApiListener, dataRequester, subscribeToMessageResponse, requestAndWaitForList };
|
|
8
|
+
export { listenToStream, RedisMessage, sendMessageToStream, toApiRequest, publishMessageResponse, filterStream, getOrRequestData, toApiListener, dataRequester, subscribeToMessageResponse, requestAndWaitForList };
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.requestAndWaitForList = exports.subscribeToMessageResponse = exports.dataRequester = exports.toApiListener = exports.getOrRequestData = exports.publishMessageResponse = exports.toApiRequest = exports.sendMessageToStream = exports.listenToStream = void 0;
|
|
3
|
+
exports.requestAndWaitForList = exports.subscribeToMessageResponse = exports.dataRequester = exports.toApiListener = exports.getOrRequestData = exports.filterStream = exports.publishMessageResponse = exports.toApiRequest = exports.sendMessageToStream = exports.listenToStream = void 0;
|
|
4
4
|
var setters_1 = require("./setters");
|
|
5
5
|
Object.defineProperty(exports, "sendMessageToStream", { enumerable: true, get: function () { return setters_1.sendMessageToStream; } });
|
|
6
6
|
Object.defineProperty(exports, "publishMessageResponse", { enumerable: true, get: function () { return setters_1.publishMessageResponse; } });
|
|
@@ -11,6 +11,8 @@ Object.defineProperty(exports, "subscribeToMessageResponse", { enumerable: true,
|
|
|
11
11
|
Object.defineProperty(exports, "requestAndWaitForList", { enumerable: true, get: function () { return getters_1.requestAndWaitForList; } });
|
|
12
12
|
var memdb_1 = require("./memdb");
|
|
13
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; } });
|
|
14
16
|
var listenToStream = function (config, groupname, channelname, consumername, callback) { return new Promise(function (resolve, reject) {
|
|
15
17
|
var client = (0, memdb_1.getRedisClient)(config);
|
|
16
18
|
createGroup(client, groupname, channelname).then(function () {
|
package/dist/memdb.js
CHANGED
|
@@ -2,5 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getRedisClient = void 0;
|
|
4
4
|
var IORedis = require("ioredis");
|
|
5
|
-
var getRedisClient = function (config) { return new IORedis(
|
|
5
|
+
var getRedisClient = function (config) { return new IORedis({
|
|
6
|
+
host: config.REDISURL,
|
|
7
|
+
password: config.REDISPW
|
|
8
|
+
}); };
|
|
6
9
|
exports.getRedisClient = getRedisClient;
|
package/dist/setters.js
CHANGED
|
@@ -37,7 +37,7 @@ var sendMessageToStream = function (config, channelname, message) {
|
|
|
37
37
|
return client.xadd.apply(client, __spreadArray([channelname, '*'], arrayOfKeysAndValues, false));
|
|
38
38
|
};
|
|
39
39
|
exports.sendMessageToStream = sendMessageToStream;
|
|
40
|
-
var timeout =
|
|
40
|
+
var timeout = 2500;
|
|
41
41
|
// send a message from socket to api, creating a message id to publish the response on
|
|
42
42
|
var toApiRequest = function (config, options) {
|
|
43
43
|
if (options === void 0) { options = { endpoint: '', method: 'GET', data: {}, }; }
|
package/dist/types.d.ts
CHANGED
package/eventsource.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { getRedisClient } from "./memdb"
|
|
2
|
+
import { RedisConfig, RedisStreamEntry, RedisMessage } from "./types"
|
|
3
|
+
|
|
4
|
+
const getStreamInfo = ( config:RedisConfig, streamname:string, count:number ) => getRedisClient( config ).xinfo('stream', streamname,'FULL', 'COUNT', count )
|
|
5
|
+
|
|
6
|
+
const getEntriesFromStream = ( config:RedisConfig, streamname:string ) =>
|
|
7
|
+
getStreamInfo( config, streamname, 0 )
|
|
8
|
+
.then(( result:any ) =>
|
|
9
|
+
result[9].map( (entry:[string,string[]]) => ({
|
|
10
|
+
id : entry[0],
|
|
11
|
+
message : entry[1].reduce( (prevValue:RedisMessage, currentValue:string, n:number) => (n%2 ? {...prevValue} : { ...prevValue, [currentValue] : entry[1][n+1] }) as RedisMessage, {} as RedisMessage )
|
|
12
|
+
}
|
|
13
|
+
)
|
|
14
|
+
) as RedisStreamEntry[]
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
const filterStream = ( config:RedisConfig, streamname:string, key:string, value:string ) =>
|
|
19
|
+
getEntriesFromStream( config, streamname )
|
|
20
|
+
.then((entries:RedisStreamEntry[]) => entries.filter( entry => {
|
|
21
|
+
return Object.keys( entry.message ).indexOf( key ) > -1 && entry.message[key] == value
|
|
22
|
+
}))
|
|
23
|
+
|
|
24
|
+
export { filterStream }
|
|
25
|
+
|
package/index.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { sendMessageToStream, publishMessageResponse, toApiRequest } from "./set
|
|
|
4
4
|
import { getOrRequestData, subscribeToMessageResponse, requestAndWaitForList } from "./getters"
|
|
5
5
|
import { getRedisClient } from "./memdb"
|
|
6
6
|
import { getKeyRequestedChannelName } from "./utils"
|
|
7
|
+
import { filterStream } from "./eventsource"
|
|
7
8
|
|
|
8
9
|
const listenToStream = ( config:RedisConfig, groupname:string, channelname:string, consumername:string, callback:Function ):Promise<boolean> => new Promise((resolve,reject) => {
|
|
9
10
|
const client = getRedisClient( config )
|
|
@@ -207,4 +208,4 @@ const listenForMessage = ( client:Redis, groupname:string, channelname:string, c
|
|
|
207
208
|
})
|
|
208
209
|
}
|
|
209
210
|
|
|
210
|
-
export { listenToStream, RedisMessage, sendMessageToStream, toApiRequest, publishMessageResponse, getOrRequestData, toApiListener, dataRequester, subscribeToMessageResponse, requestAndWaitForList }
|
|
211
|
+
export { listenToStream, RedisMessage, sendMessageToStream, toApiRequest, publishMessageResponse, filterStream, getOrRequestData, toApiListener, dataRequester, subscribeToMessageResponse, requestAndWaitForList }
|
package/memdb.ts
CHANGED
|
@@ -2,6 +2,9 @@ import { RedisConfig } from "./types"
|
|
|
2
2
|
import { Redis } from "ioredis"
|
|
3
3
|
const IORedis = require("ioredis");
|
|
4
4
|
|
|
5
|
-
const getRedisClient = ( config:RedisConfig ):Redis => new IORedis(
|
|
5
|
+
const getRedisClient = ( config:RedisConfig ):Redis => new IORedis({
|
|
6
|
+
host : config.REDISURL,
|
|
7
|
+
password : config.REDISPW
|
|
8
|
+
})
|
|
6
9
|
|
|
7
10
|
export { getRedisClient }
|
package/package.json
CHANGED
package/setters.ts
CHANGED
|
@@ -26,7 +26,7 @@ export interface toApiRequestOptions{
|
|
|
26
26
|
jwt? :string
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
const timeout =
|
|
29
|
+
const timeout = 2500
|
|
30
30
|
|
|
31
31
|
// send a message from socket to api, creating a message id to publish the response on
|
|
32
32
|
const toApiRequest = ( config:RedisConfig, options:toApiRequestOptions = { endpoint : '', method: 'GET', data : {}, } ) => new Promise((resolve, reject) => {
|