woonplan-packages-redishelper 1.0.81 → 1.0.87
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 +41 -0
- package/dist/getters.js +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +3 -1
- package/dist/setters.js +4 -6
- package/dist/types.d.ts +4 -0
- package/eventsource.ts +33 -0
- package/getters.ts +1 -1
- package/index.ts +2 -1
- package/package.json +26 -26
- package/setters.ts +8 -5
- package/types.ts +6 -1
|
@@ -0,0 +1,41 @@
|
|
|
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) {
|
|
21
|
+
var keysandvalues = entry[1];
|
|
22
|
+
return {
|
|
23
|
+
id: entry[0],
|
|
24
|
+
message: keysandvalues.reduce(function (prevValue, currentValue, n) {
|
|
25
|
+
if (n % 2)
|
|
26
|
+
return __assign({}, prevValue);
|
|
27
|
+
var newStruct = __assign({}, prevValue);
|
|
28
|
+
newStruct[currentValue] = keysandvalues[n + 1];
|
|
29
|
+
return newStruct;
|
|
30
|
+
}, {})
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
var filterStream = function (config, streamname, key, value) {
|
|
36
|
+
return getEntriesFromStream(config, streamname)
|
|
37
|
+
.then(function (entries) { return entries.filter(function (entry) {
|
|
38
|
+
return Object.keys(entry.message).indexOf(key) > -1 && entry.message[key] == value;
|
|
39
|
+
}); });
|
|
40
|
+
};
|
|
41
|
+
exports.filterStream = filterStream;
|
package/dist/getters.js
CHANGED
|
@@ -48,7 +48,7 @@ var requestAndWaitForData = function (getterclient, config, request, service, da
|
|
|
48
48
|
// setup timeout
|
|
49
49
|
setTimeout(function () {
|
|
50
50
|
if (listenerclient.status != "end") {
|
|
51
|
-
console.log("sub timedout");
|
|
51
|
+
console.log("sub timedout: ".concat(request));
|
|
52
52
|
resolve(null);
|
|
53
53
|
listenerclient.unsubscribe();
|
|
54
54
|
listenerclient.disconnect();
|
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/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: {}, }; }
|
|
@@ -49,17 +49,15 @@ var toApiRequest = function (config, options) {
|
|
|
49
49
|
if (message.length && isJson(message)) {
|
|
50
50
|
var messagedata = JSON.parse(message);
|
|
51
51
|
if (messagedata.rejected && messagedata.error)
|
|
52
|
-
reject(messagedata.error);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
resolve(message.length ? message : null);
|
|
52
|
+
return reject(messagedata.error);
|
|
56
53
|
}
|
|
54
|
+
resolve(message.length ? message : null);
|
|
57
55
|
callbackclient.disconnect();
|
|
58
56
|
});
|
|
59
57
|
// setup timeout
|
|
60
58
|
setTimeout(function () {
|
|
61
59
|
if (callbackclient.status != "end") {
|
|
62
|
-
console.log("sub timedout");
|
|
60
|
+
console.log("sub timedout ".concat(options.endpoint));
|
|
63
61
|
reject('timeout');
|
|
64
62
|
callbackclient.disconnect();
|
|
65
63
|
}
|
package/dist/types.d.ts
CHANGED
package/eventsource.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
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
|
+
const keysandvalues = entry[1]
|
|
11
|
+
return {
|
|
12
|
+
id : entry[0],
|
|
13
|
+
message : keysandvalues.reduce( (prevValue:RedisMessage, currentValue:string, n:number) => {
|
|
14
|
+
if( n%2 ) return {
|
|
15
|
+
...prevValue
|
|
16
|
+
}
|
|
17
|
+
const newStruct:RedisMessage = { ...prevValue }
|
|
18
|
+
newStruct[currentValue] = keysandvalues[n+1]
|
|
19
|
+
return newStruct
|
|
20
|
+
}, {} as RedisMessage )
|
|
21
|
+
} as RedisStreamEntry
|
|
22
|
+
})
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
const filterStream = ( config:RedisConfig, streamname:string, key:string, value:string ) =>
|
|
27
|
+
getEntriesFromStream( config, streamname )
|
|
28
|
+
.then((entries:RedisStreamEntry[]) => entries.filter( entry => {
|
|
29
|
+
return Object.keys( entry.message ).indexOf( key ) > -1 && entry.message[key] == value
|
|
30
|
+
}))
|
|
31
|
+
|
|
32
|
+
export { filterStream }
|
|
33
|
+
|
package/getters.ts
CHANGED
|
@@ -65,7 +65,7 @@ const requestAndWaitForData = (
|
|
|
65
65
|
// setup timeout
|
|
66
66
|
setTimeout( () => {
|
|
67
67
|
if( listenerclient.status != "end" ){
|
|
68
|
-
console.log( `sub timedout`)
|
|
68
|
+
console.log( `sub timedout: ${request}`)
|
|
69
69
|
resolve( null )
|
|
70
70
|
listenerclient.unsubscribe()
|
|
71
71
|
listenerclient.disconnect()
|
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/package.json
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "woonplan-packages-redishelper",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts",
|
|
7
|
-
"scripts": {
|
|
8
|
-
"prepublish": "npm run build",
|
|
9
|
-
"build": "tsc",
|
|
10
|
-
"test": "echo \"Error: no test specified\" && exit 1"
|
|
11
|
-
},
|
|
12
|
-
"keywords": [],
|
|
13
|
-
"author": "Jasper Denk",
|
|
14
|
-
"license": "ISC",
|
|
15
|
-
"devDependencies": {
|
|
16
|
-
"@types/ioredis": "^4.28.4",
|
|
17
|
-
"@types/node": "^16.11.13",
|
|
18
|
-
"@types/uuid": "^8.3.4",
|
|
19
|
-
"typescript": "^4.2.3"
|
|
20
|
-
},
|
|
21
|
-
"dependencies": {
|
|
22
|
-
"@types/ioredis": "^4.28.5",
|
|
23
|
-
"ioredis": "^4.28.2",
|
|
24
|
-
"uuid": "^8.3.2"
|
|
25
|
-
}
|
|
26
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "woonplan-packages-redishelper",
|
|
3
|
+
"version": "1.0.87",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"prepublish": "npm run build",
|
|
9
|
+
"build": "tsc",
|
|
10
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
11
|
+
},
|
|
12
|
+
"keywords": [],
|
|
13
|
+
"author": "Jasper Denk",
|
|
14
|
+
"license": "ISC",
|
|
15
|
+
"devDependencies": {
|
|
16
|
+
"@types/ioredis": "^4.28.4",
|
|
17
|
+
"@types/node": "^16.11.13",
|
|
18
|
+
"@types/uuid": "^8.3.4",
|
|
19
|
+
"typescript": "^4.2.3"
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"@types/ioredis": "^4.28.5",
|
|
23
|
+
"ioredis": "^4.28.2",
|
|
24
|
+
"uuid": "^8.3.2"
|
|
25
|
+
}
|
|
26
|
+
}
|
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) => {
|
|
@@ -34,16 +34,19 @@ const toApiRequest = ( config:RedisConfig, options:toApiRequestOptions = { endpo
|
|
|
34
34
|
callbackclient = getRedisClient( config ),
|
|
35
35
|
messageid = uuidv4()
|
|
36
36
|
|
|
37
|
+
|
|
38
|
+
|
|
37
39
|
subscribeToMessageResponse( callbackclient, messageid )
|
|
38
40
|
.then(() => {
|
|
39
41
|
callbackclient.once( "message", ( _channel, message ) => {
|
|
40
42
|
|
|
41
43
|
if( message.length && isJson( message )){
|
|
42
44
|
const messagedata = JSON.parse( message )
|
|
43
|
-
if( messagedata.rejected && messagedata.error ) reject( messagedata.error )
|
|
44
|
-
}else{
|
|
45
|
-
resolve( message.length ? message : null )
|
|
45
|
+
if( messagedata.rejected && messagedata.error ) return reject( messagedata.error )
|
|
46
46
|
}
|
|
47
|
+
|
|
48
|
+
resolve( message.length ? message : null )
|
|
49
|
+
|
|
47
50
|
|
|
48
51
|
callbackclient.disconnect()
|
|
49
52
|
})
|
|
@@ -51,7 +54,7 @@ const toApiRequest = ( config:RedisConfig, options:toApiRequestOptions = { endpo
|
|
|
51
54
|
// setup timeout
|
|
52
55
|
setTimeout( () => {
|
|
53
56
|
if( callbackclient.status != "end" ){
|
|
54
|
-
console.log( `sub timedout`)
|
|
57
|
+
console.log( `sub timedout ${options.endpoint}`)
|
|
55
58
|
reject( 'timeout' )
|
|
56
59
|
callbackclient.disconnect()
|
|
57
60
|
}
|