lemon-core 3.1.1 → 3.1.2

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.
Files changed (83) hide show
  1. package/README.md +2 -1
  2. package/dist/controllers/dummy-controller.d.ts +1 -1
  3. package/dist/controllers/general-api-controller.d.ts +1 -1
  4. package/dist/controllers/general-api-controller.js.map +1 -1
  5. package/dist/controllers/general-controller.d.ts +1 -1
  6. package/dist/cores/core-services.d.ts +1 -2
  7. package/dist/cores/core-services.js +0 -25
  8. package/dist/cores/core-services.js.map +1 -1
  9. package/dist/cores/dynamo/dynamo-query-service.d.ts +1 -1
  10. package/dist/cores/dynamo/dynamo-scan-service.d.ts +1 -1
  11. package/dist/cores/dynamo/dynamo-service.d.ts +1 -1
  12. package/dist/cores/elastic/elastic6-query-service.d.ts +1 -1
  13. package/dist/cores/elastic/elastic6-service.d.ts +1 -1
  14. package/dist/cores/index.d.ts +1 -1
  15. package/dist/cores/index.js +1 -1
  16. package/dist/cores/index.js.map +1 -1
  17. package/dist/cores/lambda/lambda-cron-handler.d.ts +1 -1
  18. package/dist/cores/lambda/lambda-dynamo-stream-handler.d.ts +1 -1
  19. package/dist/cores/lambda/lambda-dynamo-stream-handler.js.map +1 -1
  20. package/dist/cores/lambda/lambda-handler.d.ts +2 -1
  21. package/dist/cores/lambda/lambda-handler.js.map +1 -1
  22. package/dist/cores/lambda/lambda-notification-handler.d.ts +1 -1
  23. package/dist/cores/lambda/lambda-sns-handler.d.ts +1 -1
  24. package/dist/cores/lambda/lambda-sqs-handler.d.ts +1 -1
  25. package/dist/cores/lambda/lambda-web-handler.d.ts +2 -2
  26. package/dist/cores/lambda/lambda-web-handler.js.map +1 -1
  27. package/dist/cores/protocol/protocol-service.d.ts +1 -1
  28. package/dist/cores/storage/model-manager.d.ts +2 -1
  29. package/dist/cores/storage/model-manager.js.map +1 -1
  30. package/dist/cores/storage/proxy-storage-service.d.ts +2 -71
  31. package/dist/cores/storage/proxy-storage-service.js +4 -7
  32. package/dist/cores/storage/proxy-storage-service.js.map +1 -1
  33. package/dist/cores/storage/storage-service.d.ts +5 -17
  34. package/dist/cores/storage/storage-service.js +3 -0
  35. package/dist/cores/storage/storage-service.js.map +1 -1
  36. package/dist/engine/engine.d.ts +1 -1
  37. package/dist/engine/engine.js.map +1 -1
  38. package/dist/extended/abstract-service.d.ts +8 -1
  39. package/dist/extended/abstract-service.js +13 -4
  40. package/dist/extended/abstract-service.js.map +1 -1
  41. package/package.json +3 -2
  42. package/dist/cores/api-service.d.ts +0 -239
  43. package/dist/cores/api-service.js +0 -674
  44. package/dist/cores/api-service.js.map +0 -1
  45. package/dist/cores/cache-service.d.ts +0 -424
  46. package/dist/cores/cache-service.js +0 -948
  47. package/dist/cores/cache-service.js.map +0 -1
  48. package/dist/cores/core-types.d.ts +0 -398
  49. package/dist/cores/core-types.js +0 -15
  50. package/dist/cores/core-types.js.map +0 -1
  51. package/dist/cores/dynamo-query-service.d.ts +0 -52
  52. package/dist/cores/dynamo-query-service.js +0 -127
  53. package/dist/cores/dynamo-query-service.js.map +0 -1
  54. package/dist/cores/dynamo-scan-service.d.ts +0 -70
  55. package/dist/cores/dynamo-scan-service.js +0 -164
  56. package/dist/cores/dynamo-scan-service.js.map +0 -1
  57. package/dist/cores/dynamo-service.d.ts +0 -192
  58. package/dist/cores/dynamo-service.js +0 -525
  59. package/dist/cores/dynamo-service.js.map +0 -1
  60. package/dist/cores/elastic6-query-service.d.ts +0 -104
  61. package/dist/cores/elastic6-query-service.js +0 -510
  62. package/dist/cores/elastic6-query-service.js.map +0 -1
  63. package/dist/cores/elastic6-service.d.ts +0 -273
  64. package/dist/cores/elastic6-service.js +0 -903
  65. package/dist/cores/elastic6-service.js.map +0 -1
  66. package/dist/cores/hangul-service.d.ts +0 -102
  67. package/dist/cores/hangul-service.js +0 -205
  68. package/dist/cores/hangul-service.js.map +0 -1
  69. package/dist/cores/http-storage-service.d.ts +0 -22
  70. package/dist/cores/http-storage-service.js +0 -129
  71. package/dist/cores/http-storage-service.js.map +0 -1
  72. package/dist/cores/model-manager.d.ts +0 -93
  73. package/dist/cores/model-manager.js +0 -192
  74. package/dist/cores/model-manager.js.map +0 -1
  75. package/dist/cores/proxy-storage-service.d.ts +0 -573
  76. package/dist/cores/proxy-storage-service.js +0 -913
  77. package/dist/cores/proxy-storage-service.js.map +0 -1
  78. package/dist/cores/redis-storage-service.d.ts +0 -183
  79. package/dist/cores/redis-storage-service.js +0 -391
  80. package/dist/cores/redis-storage-service.js.map +0 -1
  81. package/dist/cores/storage-service.d.ts +0 -170
  82. package/dist/cores/storage-service.js +0 -389
  83. package/dist/cores/storage-service.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"proxy-storage-service.js","sourceRoot":"","sources":["../../src/cores/proxy-storage-service.ts"],"names":[],"mappings":"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"}
@@ -1,183 +0,0 @@
1
- /**
2
- * `redis-storage-services.ts`
3
- * - storage implementation on redis backend
4
- *
5
- * @author Tim Hong <tim@lemoncloud.io>
6
- * @date 2020-12-08 initial version
7
- *
8
- * @copyright (C) lemoncloud.io 2020 - All Rights Reserved.
9
- */
10
- import { Redis } from 'ioredis';
11
- import { StorageService, StorageModel } from './storage-service';
12
- /** ********************************************************************************************************************
13
- * Exported Types
14
- ** ********************************************************************************************************************/
15
- /**
16
- * type `RedisOptions`
17
- */
18
- export interface RedisOptions {
19
- /**
20
- * (optional) cache server endpoint
21
- */
22
- endpoint?: string;
23
- /**
24
- * (optional) virtual table name used as key prefix
25
- */
26
- tableName: string | number;
27
- /**
28
- * (optional) default time to live of a model in seconds. 0 for unlimited (default: 0)
29
- */
30
- defTimeout?: number;
31
- }
32
- /** ********************************************************************************************************************
33
- * Exported Class
34
- ** ********************************************************************************************************************/
35
- /**
36
- * class `RedisStorageService`
37
- */
38
- export declare class RedisStorageService<T extends StorageModel> implements StorageService<T> {
39
- /**
40
- * Environment variable name for redis server endpoint
41
- * @static
42
- */
43
- static readonly ENV_REDIS_ENDPOINT = "MY_REDIS_ENDPOINT";
44
- /**
45
- * Maximum retry count of check-and-save behavior
46
- * @static
47
- */
48
- static readonly CAS_MAX_RETRIES = 5;
49
- /**
50
- * ioredis client
51
- * @protected
52
- */
53
- protected readonly redis: Redis;
54
- /**
55
- * Virtual table name
56
- * @private
57
- */
58
- readonly tableName: string;
59
- /**
60
- * Default time to live of a model
61
- * @private
62
- */
63
- readonly ttl: number;
64
- /**
65
- * Public constructor
66
- *
67
- * @options redis options
68
- */
69
- constructor(options: RedisOptions);
70
- /**
71
- * Say hello
72
- */
73
- hello(): string;
74
- /**
75
- * Disconnect from redis
76
- */
77
- quit(): Promise<void>;
78
- /**
79
- * Read model by id
80
- *
81
- * @param id
82
- */
83
- read(id: string): Promise<T>;
84
- /**
85
- * Read model or create if id does not exist
86
- *
87
- * @param id
88
- * @param model
89
- */
90
- readOrCreate(id: string, model: T): Promise<T>;
91
- /**
92
- * Create model and overwrite if id exists
93
- *
94
- * @param id
95
- * @param model
96
- */
97
- save(id: string, model: T): Promise<T>;
98
- /**
99
- * Update existing model and create if id does not exist
100
- * @param id
101
- * @param update model to update
102
- * @param increment (optional) model to increment
103
- */
104
- update(id: string, update: T, increment?: T): Promise<T>;
105
- /**
106
- * Increment the integer value of a key
107
- *
108
- * @param id
109
- * @param increment model to increment
110
- * @param update (optional) model to update
111
- */
112
- increment(id: string, increment: T, update?: T): Promise<T>;
113
- /**
114
- * Delete a key
115
- *
116
- * @param id
117
- * @return true on success
118
- */
119
- delete(id: string): Promise<T>;
120
- /**
121
- * Get redis key from id
122
- * @param id
123
- * @protected
124
- */
125
- asKey(id: string): string;
126
- /**
127
- * Serialize model into internal data
128
- * @param model
129
- * @protected
130
- */
131
- serialize(model: T): Record<string, string>;
132
- /**
133
- * Deserialize internal data into model
134
- * @param data
135
- * @protected
136
- */
137
- deserialize(data: Record<string, string>): T;
138
- /**
139
- * Update key w/ check-and-save behavior and retries
140
- * @param id
141
- * @param update (optional) model to update
142
- * @param increment (optional) model to increment
143
- * @private
144
- */
145
- private updateCAS;
146
- /**
147
- * Prepare new model - original model + update + increment
148
- * @param orig
149
- * @param update
150
- * @param increment
151
- * @private
152
- */
153
- private prepareUpdatedModel;
154
- /**
155
- * Check transaction results and throw if error occurred
156
- * @param results transaction pipeline execution results
157
- * @private
158
- */
159
- private static throwIfTransactionError;
160
- }
161
- /**
162
- * class `DummyRedisStorageService`
163
- * - Use local redis server and non-default logical database
164
- */
165
- export declare class DummyRedisStorageService<T extends StorageModel> extends RedisStorageService<T> {
166
- /**
167
- * Database index. Each DummyRedisStorageService uses different logical database.
168
- * @private
169
- */
170
- private static dbIndex;
171
- /**
172
- * Public constructor
173
- */
174
- constructor();
175
- /**
176
- * Say hello
177
- */
178
- hello(): string;
179
- /**
180
- * Delete all data in database
181
- */
182
- truncate(): Promise<void>;
183
- }
@@ -1,391 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.DummyRedisStorageService = exports.RedisStorageService = void 0;
16
- /**
17
- * `redis-storage-services.ts`
18
- * - storage implementation on redis backend
19
- *
20
- * @author Tim Hong <tim@lemoncloud.io>
21
- * @date 2020-12-08 initial version
22
- *
23
- * @copyright (C) lemoncloud.io 2020 - All Rights Reserved.
24
- */
25
- const ioredis_1 = __importDefault(require("ioredis"));
26
- const engine_1 = require("../engine");
27
- // Log namespace
28
- const NS = engine_1.$U.NS('RSTR', 'blue');
29
- /** ********************************************************************************************************************
30
- * Exported Class
31
- ** ********************************************************************************************************************/
32
- /**
33
- * class `RedisStorageService`
34
- */
35
- class RedisStorageService {
36
- /**
37
- * Public constructor
38
- *
39
- * @options redis options
40
- */
41
- constructor(options) {
42
- const defTimeout = engine_1.$U.N(options === null || options === void 0 ? void 0 : options.defTimeout, 0);
43
- if (typeof options.tableName === 'number') {
44
- // For dummy: open in non-default database (db index > 0)
45
- this.redis = new ioredis_1.default(options.endpoint, { db: options.tableName });
46
- this.tableName = 'dummy';
47
- }
48
- else {
49
- // For normal usage: open in default database (db index = 0) w/ virtual table
50
- const endpoint = options.endpoint || engine_1.$U.env(RedisStorageService.ENV_REDIS_ENDPOINT);
51
- const tableName = options.tableName;
52
- if (!endpoint)
53
- throw new Error(`.endpoint (URL) is required.`);
54
- if (!tableName)
55
- throw new Error(`.tableName (string) is required.`);
56
- this.redis = new ioredis_1.default(endpoint, { keyPrefix: tableName });
57
- this.tableName = tableName;
58
- }
59
- this.ttl = defTimeout;
60
- (0, engine_1._inf)(NS, `RedisStorageService constructed.`);
61
- (0, engine_1._inf)(NS, ` > tableName =`, this.tableName);
62
- (0, engine_1._inf)(NS, ` > default TTL =`, this.ttl);
63
- }
64
- /**
65
- * Say hello
66
- */
67
- hello() {
68
- return `redis-storage-service:${this.tableName}`;
69
- }
70
- /**
71
- * Disconnect from redis
72
- */
73
- quit() {
74
- return __awaiter(this, void 0, void 0, function* () {
75
- yield this.redis.quit();
76
- });
77
- }
78
- /**
79
- * Read model by id
80
- *
81
- * @param id
82
- */
83
- read(id) {
84
- return __awaiter(this, void 0, void 0, function* () {
85
- if (!id)
86
- throw new Error(`@id is required.`);
87
- const key = this.asKey(id);
88
- const data = yield this.redis.hgetall(key); // {} if the key does not exist
89
- if (Object.keys(data).length > 0) {
90
- const ret = this.deserialize(data);
91
- (0, engine_1._log)(NS, `> read[${id}].ret =`, engine_1.$U.json(ret));
92
- return ret;
93
- }
94
- throw new Error(`404 NOT FOUND - ${this.tableName}/${id}`);
95
- });
96
- }
97
- /**
98
- * Read model or create if id does not exist
99
- *
100
- * @param id
101
- * @param model
102
- */
103
- readOrCreate(id, model) {
104
- return __awaiter(this, void 0, void 0, function* () {
105
- if (!id)
106
- throw new Error(`@id is required.`);
107
- if (!model)
108
- throw new Error(`@model is required.`);
109
- const key = this.asKey(id);
110
- // check-and-save w/ retries to avoid race conditions
111
- for (let retry = 0; retry < RedisStorageService.CAS_MAX_RETRIES; yield sleep(10), retry++) {
112
- yield this.redis.watch(key); // Lock
113
- let data = yield this.redis.hgetall(key); // {} if the key does not exist
114
- // 1. Return if a model found
115
- if (Object.keys(data).length > 0) {
116
- yield this.redis.unwatch(); // Unlock
117
- const ret = this.deserialize(data);
118
- (0, engine_1._log)(NS, `> readOrCreate[${id}(read)].ret =`, engine_1.$U.json(ret));
119
- return ret;
120
- }
121
- // 2. Otherwise try to create a new model
122
- data = this.serialize(Object.assign(Object.assign({}, model), { id }));
123
- const pipeline = this.redis.multi().hset(key, data);
124
- if (this.ttl > 0)
125
- pipeline.expire(key, this.ttl);
126
- const results = yield pipeline.exec(); // Unlock, null if the key has been changed
127
- if (results) {
128
- RedisStorageService.throwIfTransactionError(results);
129
- const ret = this.deserialize(data);
130
- (0, engine_1._log)(NS, `> readOrCreate[${id}(created)].ret =`, engine_1.$U.json(ret));
131
- return ret;
132
- }
133
- }
134
- const message = `transaction max retries exceeded.`;
135
- (0, engine_1._err)(NS, `> readOrCreate[${id}].err =`, message);
136
- throw new Error(`redis transaction error: ${message}`);
137
- });
138
- }
139
- /**
140
- * Create model and overwrite if id exists
141
- *
142
- * @param id
143
- * @param model
144
- */
145
- save(id, model) {
146
- return __awaiter(this, void 0, void 0, function* () {
147
- if (!id)
148
- throw new Error(`@id is required.`);
149
- if (!model)
150
- throw new Error(`@model is required.`);
151
- const key = this.asKey(id);
152
- const data = this.serialize(Object.assign(Object.assign({}, model), { id }));
153
- // Create transaction pipeline
154
- const pipeline = this.redis
155
- .multi()
156
- .del(key) // TODO: 만약 save의 overwrite 정책이 기존 존재하는 키는 유지하는 것이라면 del()은 제거해야 함
157
- .hset(key, data);
158
- if (this.ttl > 0)
159
- pipeline.expire(key, this.ttl);
160
- // Execute transaction
161
- const results = yield pipeline.exec();
162
- RedisStorageService.throwIfTransactionError(results);
163
- const ret = this.deserialize(data);
164
- (0, engine_1._log)(NS, `> save[${id}].ret =`, engine_1.$U.json(ret));
165
- return ret;
166
- });
167
- }
168
- /**
169
- * Update existing model and create if id does not exist
170
- * @param id
171
- * @param update model to update
172
- * @param increment (optional) model to increment
173
- */
174
- update(id, update, increment) {
175
- return __awaiter(this, void 0, void 0, function* () {
176
- if (!id)
177
- throw new Error(`@id is required.`);
178
- if (!update)
179
- throw new Error(`@update is required.`);
180
- const ret = yield this.updateCAS(id, update, increment);
181
- (0, engine_1._log)(NS, `> update[${id}].ret =`, engine_1.$U.json(ret));
182
- return ret;
183
- });
184
- }
185
- /**
186
- * Increment the integer value of a key
187
- *
188
- * @param id
189
- * @param increment model to increment
190
- * @param update (optional) model to update
191
- */
192
- increment(id, increment, update) {
193
- return __awaiter(this, void 0, void 0, function* () {
194
- if (!id)
195
- throw new Error(`@id is required.`);
196
- if (!increment)
197
- throw new Error(`@increment is required.`);
198
- const ret = yield this.updateCAS(id, update, increment);
199
- (0, engine_1._log)(NS, `> increment[${id}].ret =`, engine_1.$U.json(ret));
200
- return ret;
201
- });
202
- }
203
- /**
204
- * Delete a key
205
- *
206
- * @param id
207
- * @return true on success
208
- */
209
- delete(id) {
210
- return __awaiter(this, void 0, void 0, function* () {
211
- if (!id)
212
- throw new Error(`@key is required.`);
213
- const key = this.asKey(id);
214
- // Execute transaction
215
- const results = yield this.redis
216
- .multi()
217
- .hgetall(key) // Read
218
- .del(key) // And delete
219
- .exec();
220
- RedisStorageService.throwIfTransactionError(results);
221
- const data = results[0][1];
222
- if (Object.keys(data).length > 0) {
223
- const ret = this.deserialize(data);
224
- (0, engine_1._log)(NS, `> delete[${id}].ret =`, engine_1.$U.json(ret));
225
- return ret;
226
- }
227
- throw new Error(`404 NOT FOUND - ${this.tableName}/${id}`);
228
- });
229
- }
230
- /**
231
- * Get redis key from id
232
- * @param id
233
- * @protected
234
- */
235
- asKey(id) {
236
- return `${this.tableName}::${id}`;
237
- }
238
- /**
239
- * Serialize model into internal data
240
- * @param model
241
- * @protected
242
- */
243
- serialize(model) {
244
- return Object.entries(model).reduce((data, [key, val]) => {
245
- if (val !== undefined)
246
- data[key] = JSON.stringify(val);
247
- return data;
248
- }, {});
249
- }
250
- /**
251
- * Deserialize internal data into model
252
- * @param data
253
- * @protected
254
- */
255
- deserialize(data) {
256
- return Object.entries(data).reduce((model, [field, value]) => {
257
- model[field] = JSON.parse(value);
258
- return model;
259
- }, {});
260
- }
261
- /**
262
- * Update key w/ check-and-save behavior and retries
263
- * @param id
264
- * @param update (optional) model to update
265
- * @param increment (optional) model to increment
266
- * @private
267
- */
268
- updateCAS(id, update, increment) {
269
- return __awaiter(this, void 0, void 0, function* () {
270
- const key = this.asKey(id);
271
- // Use watch and transaction to avoid race conditions
272
- for (let retry = 0; retry < RedisStorageService.CAS_MAX_RETRIES; yield sleep(10), retry++) {
273
- yield this.redis.watch(key); // Lock
274
- try {
275
- // Evaluate new model to store
276
- const curData = yield this.redis.hgetall(key); // {} if the key does not exist
277
- const curModel = this.deserialize(curData);
278
- const newModel = this.prepareUpdatedModel(curModel, update, increment);
279
- // Create transaction pipeline
280
- const data = this.serialize(Object.assign(Object.assign({}, newModel), { id }));
281
- const pipeline = this.redis.multi().hset(key, data);
282
- if (this.ttl > 0)
283
- pipeline.expire(key, this.ttl);
284
- // Execute transaction
285
- const results = yield pipeline.exec(); // Unlock, null if the key has been changed
286
- if (results) {
287
- RedisStorageService.throwIfTransactionError(results);
288
- return this.deserialize(data);
289
- }
290
- // Retry until max retry count reached
291
- }
292
- catch (e) {
293
- yield this.redis.unwatch(); // Unlock explicitly
294
- throw e; // Rethrow
295
- }
296
- }
297
- const message = `transaction max retries exceeded.`;
298
- (0, engine_1._err)(NS, `> updateCAS[${id}].err =`, message);
299
- throw new Error(`redis error: ${message}`);
300
- });
301
- }
302
- /**
303
- * Prepare new model - original model + update + increment
304
- * @param orig
305
- * @param update
306
- * @param increment
307
- * @private
308
- */
309
- prepareUpdatedModel(orig, update, increment) {
310
- const updated = Object.assign(orig, update);
311
- if (increment) {
312
- for (const [field, value] of Object.entries(increment)) {
313
- const key = field;
314
- const oldVal = updated[key] || orig[key] || 0;
315
- if (typeof oldVal !== 'number') {
316
- throw new Error(`.${key} is non-numeric field and cannot be incremented.`);
317
- }
318
- updated[key] = oldVal + value;
319
- }
320
- }
321
- return updated;
322
- }
323
- /**
324
- * Check transaction results and throw if error occurred
325
- * @param results transaction pipeline execution results
326
- * @private
327
- */
328
- static throwIfTransactionError(results) {
329
- if (!results)
330
- throw new Error(`redis transaction failed: transaction aborted by key modification.`);
331
- const err = results.map(result => result[0]).find(err => err !== null);
332
- if (err)
333
- throw new Error(`redis transaction failed: ${err.message}`);
334
- }
335
- }
336
- exports.RedisStorageService = RedisStorageService;
337
- /**
338
- * Environment variable name for redis server endpoint
339
- * @static
340
- */
341
- RedisStorageService.ENV_REDIS_ENDPOINT = 'MY_REDIS_ENDPOINT';
342
- /**
343
- * Maximum retry count of check-and-save behavior
344
- * @static
345
- */
346
- RedisStorageService.CAS_MAX_RETRIES = 5;
347
- /**
348
- * class `DummyRedisStorageService`
349
- * - Use local redis server and non-default logical database
350
- */
351
- class DummyRedisStorageService extends RedisStorageService {
352
- /**
353
- * Public constructor
354
- */
355
- constructor() {
356
- super({
357
- endpoint: 'localhost:6379',
358
- tableName: ++DummyRedisStorageService.dbIndex, // Open non-default DB
359
- });
360
- }
361
- /**
362
- * Say hello
363
- */
364
- hello() {
365
- return `dummy-redis-storage-service`;
366
- }
367
- /**
368
- * Delete all data in database
369
- */
370
- truncate() {
371
- return __awaiter(this, void 0, void 0, function* () {
372
- yield this.redis.flushdb();
373
- });
374
- }
375
- }
376
- exports.DummyRedisStorageService = DummyRedisStorageService;
377
- /**
378
- * Database index. Each DummyRedisStorageService uses different logical database.
379
- * @private
380
- */
381
- DummyRedisStorageService.dbIndex = 0;
382
- /**
383
- * function `sleep`
384
- * @param ms duration in milliseconds
385
- */
386
- function sleep(ms) {
387
- return __awaiter(this, void 0, void 0, function* () {
388
- return new Promise(resolve => setTimeout(resolve, ms));
389
- });
390
- }
391
- //# sourceMappingURL=redis-storage-service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"redis-storage-service.js","sourceRoot":"","sources":["../../src/cores/redis-storage-service.ts"],"names":[],"mappings":"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"}