woonplan-packages-redishelper 1.0.62 → 1.0.66
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/data.ts +1 -4
- package/dist/data.d.ts +1 -2
- package/dist/data.js +1 -3
- package/dist/getters.d.ts +3 -3
- package/dist/getters.js +47 -48
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -4
- package/getters.ts +10 -15
- package/index.ts +3 -7
- package/package.json +1 -1
package/data.ts
CHANGED
|
@@ -50,9 +50,6 @@ const requestAndWaitForKey = (
|
|
|
50
50
|
|
|
51
51
|
const subscribeToMessageResponse = ( client:Redis, messageid:string ) => client.subscribe( getMessageReponseKey( messageid ) )
|
|
52
52
|
|
|
53
|
-
const publishMessageResponse = ( client:Redis, messageid:string, message:string ) => client.publish( getMessageReponseKey( messageid ), message )
|
|
54
|
-
|
|
55
|
-
|
|
56
53
|
const requestAndWaitForList = (
|
|
57
54
|
client:Redis,
|
|
58
55
|
service:string,
|
|
@@ -74,4 +71,4 @@ const requestAndWaitForList = (
|
|
|
74
71
|
const capitalizeFirstLetter = (string:string) => string.charAt(0).toUpperCase() + string.slice(1)
|
|
75
72
|
|
|
76
73
|
|
|
77
|
-
export { getOrRequestKey, requestAndWaitForList,
|
|
74
|
+
export { getOrRequestKey, requestAndWaitForList, subscribeToMessageResponse }
|
package/dist/data.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Redis } from "ioredis";
|
|
2
2
|
declare const getOrRequestKey: (client: Redis, key: string, service: string) => Promise<unknown>;
|
|
3
3
|
declare const subscribeToMessageResponse: (client: Redis, messageid: string) => Promise<number>;
|
|
4
|
-
declare const publishMessageResponse: (client: Redis, messageid: string, message: string) => Promise<number>;
|
|
5
4
|
declare const requestAndWaitForList: (client: Redis, service: string, listname: string, listsubject: string, props: {} | undefined, {}: {}) => Promise<unknown>;
|
|
6
|
-
export { getOrRequestKey, requestAndWaitForList,
|
|
5
|
+
export { getOrRequestKey, requestAndWaitForList, subscribeToMessageResponse };
|
package/dist/data.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.subscribeToMessageResponse = exports.
|
|
3
|
+
exports.subscribeToMessageResponse = exports.requestAndWaitForList = exports.getOrRequestKey = void 0;
|
|
4
4
|
var utils_1 = require("./utils");
|
|
5
5
|
var setters_1 = require("./setters");
|
|
6
6
|
var getOrRequestKey = function (client, key, service) { return new Promise(function (resolve, reject) {
|
|
@@ -33,8 +33,6 @@ var requestAndWaitForKey = function (client, key, service) { return new Promise(
|
|
|
33
33
|
}); };
|
|
34
34
|
var subscribeToMessageResponse = function (client, messageid) { return client.subscribe((0, utils_1.getMessageReponseKey)(messageid)); };
|
|
35
35
|
exports.subscribeToMessageResponse = subscribeToMessageResponse;
|
|
36
|
-
var publishMessageResponse = function (client, messageid, message) { return client.publish((0, utils_1.getMessageReponseKey)(messageid), message); };
|
|
37
|
-
exports.publishMessageResponse = publishMessageResponse;
|
|
38
36
|
var requestAndWaitForList = function (client, service, listname, listsubject, props, _a) {
|
|
39
37
|
if (props === void 0) { props = {}; }
|
|
40
38
|
return new Promise(function (resolve) {
|
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
|
-
// send out the request
|
|
34
|
-
getterclient.xadd((0, utils_1.getKeyRequestedChannelName)(service), '*', 'key', key, 'messageid', messageid)
|
|
35
|
-
.catch(function (e) {
|
|
36
|
-
console.log(e);
|
|
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);
|
|
37
16
|
resolve(null);
|
|
38
|
-
})
|
|
39
|
-
.finally(function () { return getterclient.disconnect(); });
|
|
40
|
-
// setting up a one time event listener
|
|
41
|
-
listenerclient.once("message", function (channel, message) {
|
|
42
|
-
if (message.length)
|
|
43
|
-
resolve(message);
|
|
44
|
-
else
|
|
45
|
-
resolve(null);
|
|
46
|
-
console.log("unsubscribing from ".concat(channel));
|
|
47
|
-
listenerclient.unsubscribe();
|
|
48
|
-
listenerclient.disconnect();
|
|
49
17
|
});
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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);
|
|
54
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));
|
|
55
45
|
listenerclient.unsubscribe();
|
|
56
46
|
listenerclient.disconnect();
|
|
57
|
-
}
|
|
58
|
-
|
|
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
|
+
});
|
|
59
58
|
});
|
|
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");
|
|
@@ -111,8 +111,6 @@ var listenForMessage = function (client, groupname, channelname, consumername, c
|
|
|
111
111
|
client.xack(channelname, groupname, id).then(function () {
|
|
112
112
|
console.log(id + ' acknowledged');
|
|
113
113
|
});
|
|
114
|
-
// in case somebody was subscribed to the response;
|
|
115
|
-
(0, setters_1.publishMessageResponse)(client, id, '');
|
|
116
114
|
// relisten
|
|
117
115
|
listenForMessage(client, groupname, channelname, consumername, callback);
|
|
118
116
|
});
|
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
|
|
|
@@ -45,7 +39,7 @@ const requestAndWaitForKey = (
|
|
|
45
39
|
console.log( `subscribed to ${messageid} at ${new Date().toISOString()}` )
|
|
46
40
|
// we are subscribed
|
|
47
41
|
// send out the request
|
|
48
|
-
getterclient.xadd( getKeyRequestedChannelName( service ), '*', '
|
|
42
|
+
getterclient.xadd( getKeyRequestedChannelName( service ), '*', 'request', request, 'messageid', messageid, 'data', JSON.stringify( data ) )
|
|
49
43
|
.catch(
|
|
50
44
|
(e) => {
|
|
51
45
|
console.log( e )
|
|
@@ -58,6 +52,7 @@ const requestAndWaitForKey = (
|
|
|
58
52
|
|
|
59
53
|
// setting up a one time event listener
|
|
60
54
|
listenerclient.once( "message", ( channel, message ) => {
|
|
55
|
+
|
|
61
56
|
if( message.length ) resolve( message );
|
|
62
57
|
else resolve( null )
|
|
63
58
|
|
|
@@ -103,4 +98,4 @@ const requestAndWaitForList = (
|
|
|
103
98
|
|
|
104
99
|
|
|
105
100
|
|
|
106
|
-
export {
|
|
101
|
+
export { getOrRequestData, requestAndWaitForList, subscribeToMessageResponse }
|
package/index.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Redis } from "ioredis"
|
|
2
|
-
import { RedisConfig, RedisMessage
|
|
2
|
+
import { RedisConfig, RedisMessage } 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
|
|
|
@@ -137,10 +137,6 @@ const listenForMessage = ( client:Redis, groupname:string, channelname:string, c
|
|
|
137
137
|
client.xack( channelname, groupname, id ).then( () => {
|
|
138
138
|
console.log( id + ' acknowledged')
|
|
139
139
|
})
|
|
140
|
-
|
|
141
|
-
// in case somebody was subscribed to the response;
|
|
142
|
-
publishMessageResponse( client, id, '' );
|
|
143
|
-
|
|
144
140
|
// relisten
|
|
145
141
|
listenForMessage( client, groupname, channelname, consumername, callback );
|
|
146
142
|
})
|
|
@@ -156,4 +152,4 @@ const listenForMessage = ( client:Redis, groupname:string, channelname:string, c
|
|
|
156
152
|
})
|
|
157
153
|
}
|
|
158
154
|
|
|
159
|
-
export { listenToStream, RedisMessage, sendMessageToStream, publishMessageResponse,
|
|
155
|
+
export { listenToStream, RedisMessage, sendMessageToStream, publishMessageResponse, getOrRequestData, dataRequester, subscribeToMessageResponse, requestAndWaitForList }
|