woonplan-packages-redishelper 1.0.59 → 1.0.63
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/getters.d.ts +3 -3
- package/dist/getters.js +48 -49
- package/dist/index.d.ts +2 -2
- package/dist/index.js +3 -4
- package/getters.ts +21 -25
- package/index.ts +3 -7
- package/package.json +1 -1
package/dist/getters.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Redis } from "ioredis";
|
|
2
|
-
import { RedisConfig } from "./types";
|
|
3
|
-
declare const
|
|
2
|
+
import { RedisConfig, Struct } from "./types";
|
|
3
|
+
declare const getOrRequestData: (config: RedisConfig, request: string, service: string, data?: Struct) => Promise<unknown>;
|
|
4
4
|
declare const subscribeToMessageResponse: (client: Redis, messageid: string) => Promise<number>;
|
|
5
5
|
declare const requestAndWaitForList: (client: Redis, service: string, listname: string, listsubject: string, props: {} | undefined, {}: {}) => Promise<unknown>;
|
|
6
|
-
export {
|
|
6
|
+
export { getOrRequestData, requestAndWaitForList, subscribeToMessageResponse };
|
package/dist/getters.js
CHANGED
|
@@ -1,63 +1,62 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.subscribeToMessageResponse = exports.requestAndWaitForList = exports.
|
|
3
|
+
exports.subscribeToMessageResponse = exports.requestAndWaitForList = exports.getOrRequestData = void 0;
|
|
4
4
|
var utils_1 = require("./utils");
|
|
5
5
|
var memdb_1 = require("./memdb");
|
|
6
6
|
var uuid_1 = require("uuid");
|
|
7
7
|
var timeout = 250;
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
resolve(result);
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
})
|
|
18
|
-
.then(function (result) { return resolve(result); })
|
|
19
|
-
.catch(function (error) {
|
|
20
|
-
console.log(error);
|
|
21
|
-
resolve(null);
|
|
22
|
-
});
|
|
23
|
-
}); };
|
|
24
|
-
exports.getOrRequestKey = getOrRequestKey;
|
|
25
|
-
var requestAndWaitForKey = function (getterclient, config, key, service) { return new Promise(function (resolve) {
|
|
26
|
-
var messageid = (0, uuid_1.v4)();
|
|
27
|
-
// create a listener
|
|
28
|
-
var listenerclient = (0, memdb_1.getRedisClient)(config);
|
|
29
|
-
subscribeToMessageResponse(listenerclient, messageid).
|
|
30
|
-
then(function () {
|
|
31
|
-
console.log("subscribed to ".concat(messageid, " at ").concat(new Date().toISOString()));
|
|
32
|
-
// we are subscribed
|
|
33
|
-
// setting up a one time event listener
|
|
34
|
-
listenerclient.once("message", function (channel, message) {
|
|
35
|
-
if (message.length)
|
|
36
|
-
resolve(message);
|
|
37
|
-
else
|
|
38
|
-
resolve(null);
|
|
39
|
-
console.log("unsubscribing from ".concat(channel));
|
|
40
|
-
listenerclient.unsubscribe();
|
|
41
|
-
listenerclient.disconnect();
|
|
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);
|
|
42
17
|
});
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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 ".concat(messageid, " at ").concat(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);
|
|
47
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));
|
|
48
45
|
listenerclient.unsubscribe();
|
|
49
46
|
listenerclient.disconnect();
|
|
50
|
-
}
|
|
51
|
-
|
|
47
|
+
});
|
|
48
|
+
// setup timeout
|
|
49
|
+
setTimeout(function () {
|
|
50
|
+
if (listenerclient.status != "end") {
|
|
51
|
+
console.log("sub timedout");
|
|
52
|
+
resolve(null);
|
|
53
|
+
listenerclient.unsubscribe();
|
|
54
|
+
listenerclient.disconnect();
|
|
55
|
+
}
|
|
56
|
+
}, timeout);
|
|
57
|
+
});
|
|
52
58
|
});
|
|
53
|
-
|
|
54
|
-
getterclient.xadd((0, utils_1.getKeyRequestedChannelName)(service), '*', 'key', key, 'messageid', messageid)
|
|
55
|
-
.catch(function (e) {
|
|
56
|
-
console.log(e);
|
|
57
|
-
resolve(null);
|
|
58
|
-
})
|
|
59
|
-
.finally(function () { return getterclient.disconnect(); });
|
|
60
|
-
}); };
|
|
59
|
+
};
|
|
61
60
|
var subscribeToMessageResponse = function (client, messageid) { return client.subscribe((0, utils_1.getMessageReponseKey)(messageid)); };
|
|
62
61
|
exports.subscribeToMessageResponse = subscribeToMessageResponse;
|
|
63
62
|
var requestAndWaitForList = function (client, service, listname, listsubject, props, _a) {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Redis } from "ioredis";
|
|
2
2
|
import { RedisConfig, RedisMessage } from "./types";
|
|
3
3
|
import { sendMessageToStream, publishMessageResponse } from "./setters";
|
|
4
|
-
import {
|
|
4
|
+
import { getOrRequestData, subscribeToMessageResponse, requestAndWaitForList } from "./getters";
|
|
5
5
|
declare const listenToStream: (client: Redis, groupname: string, channelname: string, consumername: string, callback: Function) => Promise<boolean>;
|
|
6
6
|
declare const dataRequester: (config: RedisConfig, groupname: string, service: string, consumername: string, callback: Function) => void;
|
|
7
|
-
export { listenToStream, RedisMessage, sendMessageToStream, publishMessageResponse,
|
|
7
|
+
export { listenToStream, RedisMessage, sendMessageToStream, publishMessageResponse, getOrRequestData, dataRequester, subscribeToMessageResponse, requestAndWaitForList };
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.requestAndWaitForList = exports.subscribeToMessageResponse = exports.dataRequester = exports.
|
|
3
|
+
exports.requestAndWaitForList = exports.subscribeToMessageResponse = exports.dataRequester = exports.getOrRequestData = exports.publishMessageResponse = 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; } });
|
|
7
7
|
var getters_1 = require("./getters");
|
|
8
|
-
Object.defineProperty(exports, "
|
|
8
|
+
Object.defineProperty(exports, "getOrRequestData", { enumerable: true, get: function () { return getters_1.getOrRequestData; } });
|
|
9
9
|
Object.defineProperty(exports, "subscribeToMessageResponse", { enumerable: true, get: function () { return getters_1.subscribeToMessageResponse; } });
|
|
10
10
|
Object.defineProperty(exports, "requestAndWaitForList", { enumerable: true, get: function () { return getters_1.requestAndWaitForList; } });
|
|
11
11
|
var memdb_1 = require("./memdb");
|
|
@@ -50,7 +50,6 @@ var getMessagedataFromResult = function (results) {
|
|
|
50
50
|
return;
|
|
51
51
|
messagedata[key] = keysandvalues[n + 1];
|
|
52
52
|
});
|
|
53
|
-
console.log(messagedata);
|
|
54
53
|
return { messagedata: messagedata, id: id };
|
|
55
54
|
};
|
|
56
55
|
var listenForMessageForDataRequest = function (listenerclient, groupname, channelname, consumername, callback) {
|
|
@@ -66,7 +65,7 @@ var listenForMessageForDataRequest = function (listenerclient, groupname, channe
|
|
|
66
65
|
var messagedata = _a.messagedata, id = _a.id;
|
|
67
66
|
// messageid should have been set in getters/requestAndWaitForKey
|
|
68
67
|
if ('messageid' in messagedata)
|
|
69
|
-
messageid = messagedata.
|
|
68
|
+
messageid = messagedata.messageid;
|
|
70
69
|
//stream id from redis
|
|
71
70
|
streammsgid = id;
|
|
72
71
|
return messagedata;
|
package/getters.ts
CHANGED
|
@@ -1,22 +1,15 @@
|
|
|
1
1
|
import { Redis } from "ioredis"
|
|
2
2
|
import { getMessageReponseKey, getKeyRequestedChannelName, getListRequestedChannelName } from "./utils"
|
|
3
|
-
import { RedisConfig } from "./types"
|
|
3
|
+
import { RedisConfig, Struct } from "./types"
|
|
4
4
|
import { getRedisClient } from "./memdb"
|
|
5
5
|
import { v4 as uuidv4 } from 'uuid';
|
|
6
6
|
|
|
7
7
|
const timeout = 250;
|
|
8
8
|
|
|
9
|
-
const
|
|
9
|
+
const getOrRequestData = ( config:RedisConfig, request:string, service:string, data:Struct={} ) => new Promise((resolve, reject) => {
|
|
10
10
|
const getterclient = getRedisClient( config )
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
( result ) => {
|
|
14
|
-
if( result ) resolve( result );
|
|
15
|
-
if( !result ){
|
|
16
|
-
return requestAndWaitForKey( getterclient, config, key, service )
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
)
|
|
11
|
+
|
|
12
|
+
requestAndWaitForData( getterclient, config, request, service, data )
|
|
20
13
|
.then(
|
|
21
14
|
(result) => resolve( result )
|
|
22
15
|
)
|
|
@@ -29,11 +22,12 @@ const getOrRequestKey = ( config:RedisConfig, key:string, service:string ) => ne
|
|
|
29
22
|
})
|
|
30
23
|
|
|
31
24
|
|
|
32
|
-
const
|
|
25
|
+
const requestAndWaitForData = (
|
|
33
26
|
getterclient:Redis,
|
|
34
27
|
config:RedisConfig,
|
|
35
|
-
|
|
28
|
+
request:string,
|
|
36
29
|
service:string,
|
|
30
|
+
data:Struct={}
|
|
37
31
|
) => new Promise((resolve) => {
|
|
38
32
|
const messageid = uuidv4()
|
|
39
33
|
|
|
@@ -44,8 +38,21 @@ const requestAndWaitForKey = (
|
|
|
44
38
|
() => {
|
|
45
39
|
console.log( `subscribed to ${messageid} at ${new Date().toISOString()}` )
|
|
46
40
|
// we are subscribed
|
|
41
|
+
// send out the request
|
|
42
|
+
getterclient.xadd( getKeyRequestedChannelName( service ), '*', 'request', request, 'messageid', messageid, 'data', JSON.stringify( data ) )
|
|
43
|
+
.catch(
|
|
44
|
+
(e) => {
|
|
45
|
+
console.log( e )
|
|
46
|
+
resolve( null )
|
|
47
|
+
}
|
|
48
|
+
)
|
|
49
|
+
.finally(
|
|
50
|
+
() => getterclient.disconnect()
|
|
51
|
+
)
|
|
52
|
+
|
|
47
53
|
// setting up a one time event listener
|
|
48
54
|
listenerclient.once( "message", ( channel, message ) => {
|
|
55
|
+
|
|
49
56
|
if( message.length ) resolve( message );
|
|
50
57
|
else resolve( null )
|
|
51
58
|
|
|
@@ -67,17 +74,6 @@ const requestAndWaitForKey = (
|
|
|
67
74
|
}
|
|
68
75
|
)
|
|
69
76
|
|
|
70
|
-
// send out the request
|
|
71
|
-
getterclient.xadd( getKeyRequestedChannelName( service ), '*', 'key', key, 'messageid', messageid )
|
|
72
|
-
.catch(
|
|
73
|
-
(e) => {
|
|
74
|
-
console.log( e )
|
|
75
|
-
resolve( null )
|
|
76
|
-
}
|
|
77
|
-
)
|
|
78
|
-
.finally(
|
|
79
|
-
() => getterclient.disconnect()
|
|
80
|
-
)
|
|
81
77
|
})
|
|
82
78
|
|
|
83
79
|
const subscribeToMessageResponse = ( client:Redis, messageid:string ) => client.subscribe( getMessageReponseKey( messageid ) )
|
|
@@ -102,4 +98,4 @@ const requestAndWaitForList = (
|
|
|
102
98
|
|
|
103
99
|
|
|
104
100
|
|
|
105
|
-
export {
|
|
101
|
+
export { getOrRequestData, requestAndWaitForList, subscribeToMessageResponse }
|
package/index.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Redis } from "ioredis"
|
|
2
2
|
import { RedisConfig, RedisMessage, Struct } from "./types"
|
|
3
3
|
import { sendMessageToStream, publishMessageResponse } from "./setters"
|
|
4
|
-
import {
|
|
4
|
+
import { getOrRequestData, subscribeToMessageResponse, requestAndWaitForList } from "./getters"
|
|
5
5
|
import { getRedisClient } from "./memdb"
|
|
6
6
|
import { getKeyRequestedChannelName } from "./utils"
|
|
7
7
|
|
|
@@ -62,9 +62,6 @@ const getMessagedataFromResult = ( results:any ) => {
|
|
|
62
62
|
if( !( n == 0 || n % 2 == 0 ) ) return;
|
|
63
63
|
messagedata[key] = keysandvalues[n+1];
|
|
64
64
|
})
|
|
65
|
-
|
|
66
|
-
console.log( messagedata )
|
|
67
|
-
|
|
68
65
|
return { messagedata, id}
|
|
69
66
|
}
|
|
70
67
|
|
|
@@ -81,8 +78,7 @@ const listenForMessageForDataRequest = (
|
|
|
81
78
|
)
|
|
82
79
|
.then(({messagedata,id}) => {
|
|
83
80
|
// messageid should have been set in getters/requestAndWaitForKey
|
|
84
|
-
if( 'messageid' in messagedata ) messageid = messagedata.
|
|
85
|
-
|
|
81
|
+
if( 'messageid' in messagedata ) messageid = messagedata.messageid;
|
|
86
82
|
//stream id from redis
|
|
87
83
|
streammsgid = id;
|
|
88
84
|
return messagedata
|
|
@@ -160,4 +156,4 @@ const listenForMessage = ( client:Redis, groupname:string, channelname:string, c
|
|
|
160
156
|
})
|
|
161
157
|
}
|
|
162
158
|
|
|
163
|
-
export { listenToStream, RedisMessage, sendMessageToStream, publishMessageResponse,
|
|
159
|
+
export { listenToStream, RedisMessage, sendMessageToStream, publishMessageResponse, getOrRequestData, dataRequester, subscribeToMessageResponse, requestAndWaitForList }
|