UNPKG

2.33 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const tslib_1 = require("tslib");
4const Redis = require("redis");
5const CLDebug_1 = require("./CLDebug");
6class RedisStorage {
7 constructor(settings) {
8 this.redisClient = Redis.createClient(settings.port ? settings.port : 6380, settings.server, {
9 auth_pass: settings.key,
10 tls: { servername: settings.server }
11 });
12 this.redisClient.on('error', (err) => {
13 CLDebug_1.CLDebug.Error(err, "RedisStorage");
14 });
15 this._get = this.promisify(this.redisClient.get);
16 this._set = this.promisify(this.redisClient.set);
17 this._del = this.promisify(this.redisClient.del);
18 }
19 /**
20 * Loads store items from storage
21 *
22 * @param keys Array of item keys to read from the store.
23 */
24 read(keys) {
25 return tslib_1.__awaiter(this, void 0, void 0, function* () {
26 let storeItems = {};
27 // foreach key
28 for (let iKey in keys) {
29 let key = keys[iKey];
30 let storeItem = yield this._get(key);
31 storeItems[key] = JSON.parse(storeItem);
32 }
33 return storeItems;
34 });
35 }
36 /**
37 * Saves store items to storage.
38 *
39 * @param changes Map of items to write to storage.
40 */
41 write(changes) {
42 return tslib_1.__awaiter(this, void 0, void 0, function* () {
43 for (let key in changes) {
44 let storeItem = changes[key];
45 yield this._set(key, JSON.stringify(storeItem));
46 }
47 });
48 }
49 /**
50 * Removes store items from storage
51 *
52 * @param keys Array of item keys to remove from the store.
53 */
54 delete(keys) {
55 return tslib_1.__awaiter(this, void 0, void 0, function* () {
56 for (let iKey in keys) {
57 let key = keys[iKey];
58 yield this._del(key);
59 }
60 });
61 }
62 promisify(func) {
63 return (...args) => new Promise((resolve, reject) => {
64 const callback = (err, data) => (err ? reject(err) : resolve(data));
65 func.apply(this.redisClient, [...args, callback]);
66 });
67 }
68}
69exports.RedisStorage = RedisStorage;
70//# sourceMappingURL=RedisStorage.js.map
\No newline at end of file