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.
@@ -0,0 +1,3 @@
1
+ import { RedisConfig, RedisStreamEntry } from "./types";
2
+ declare const filterStream: (config: RedisConfig, streamname: string, key: string, value: string) => Promise<RedisStreamEntry[]>;
3
+ export { filterStream };
@@ -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(config.REDISURL); };
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 = 1500;
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
@@ -6,4 +6,9 @@ export interface Struct {
6
6
  }
7
7
  export interface RedisConfig {
8
8
  REDISURL: string | number | undefined;
9
+ REDISPW: string | undefined;
10
+ }
11
+ export interface RedisStreamEntry {
12
+ id: string;
13
+ message: RedisMessage;
9
14
  }
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( config.REDISURL );
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "woonplan-packages-redishelper",
3
- "version": "1.0.84",
3
+ "version": "1.0.89",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/setters.ts CHANGED
@@ -26,7 +26,7 @@ export interface toApiRequestOptions{
26
26
  jwt? :string
27
27
  }
28
28
 
29
- const timeout = 1500
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) => {
package/types.ts CHANGED
@@ -7,4 +7,10 @@ export interface Struct{
7
7
 
8
8
  export interface RedisConfig{
9
9
  REDISURL: string | number | undefined;
10
- }
10
+ REDISPW: string | undefined
11
+ }
12
+
13
+ export interface RedisStreamEntry{
14
+ id : string
15
+ message:RedisMessage
16
+ }