@node-c/persistance-redis 1.0.0-alpha6 → 1.0.0-alpha60

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.
@@ -28,69 +28,152 @@ exports.RedisRepositoryService = void 0;
28
28
  const common_1 = require("@nestjs/common");
29
29
  const core_1 = require("@node-c/core");
30
30
  const class_validator_1 = require("class-validator");
31
- const immutable_1 = __importDefault(require("immutable"));
32
- const ramda_1 = require("ramda");
31
+ const lodash_1 = __importDefault(require("lodash"));
33
32
  const uuid_1 = require("uuid");
34
33
  const redis_repository_definitions_1 = require("./redis.repository.definitions");
35
34
  const definitions_1 = require("../common/definitions");
36
35
  const store_1 = require("../store");
37
36
  let RedisRepositoryService = class RedisRepositoryService {
38
- constructor(configProvider, persistanceModuleName, schema, store) {
37
+ get columnNames() {
38
+ return this._columnNames;
39
+ }
40
+ get innerPrimaryKeys() {
41
+ return this._innerPrimaryKeys;
42
+ }
43
+ get innerPrimaryKeysMap() {
44
+ return this._innerPrimaryKeysMap;
45
+ }
46
+ get persistanceModuleName() {
47
+ return this._persistanceModuleName;
48
+ }
49
+ get primaryKeys() {
50
+ return this._primaryKeys;
51
+ }
52
+ get primaryKeysMap() {
53
+ return this._primaryKeysMap;
54
+ }
55
+ constructor(configProvider, _persistanceModuleName, schema, store) {
56
+ var _a, _b, _c;
39
57
  this.configProvider = configProvider;
40
- this.persistanceModuleName = persistanceModuleName;
58
+ this._persistanceModuleName = _persistanceModuleName;
41
59
  this.schema = schema;
42
60
  this.store = store;
43
- const { defaultTTL, storeDelimiter, ttlPerEntity } = configProvider.config.persistance[persistanceModuleName];
61
+ this.experimentalDeletionEnabled = false;
62
+ const { defaultIndividualSearchEnabled, defaultTTL, storeDelimiter, settingsPerEntity } = configProvider.config
63
+ .persistance[_persistanceModuleName];
44
64
  const { columns, name: entityName } = schema;
65
+ const columnNames = [];
66
+ const innerPrimaryKeys = [];
67
+ const innerPrimaryKeysMap = {};
45
68
  const primaryKeys = [];
46
- this.defaultTTL = (ttlPerEntity === null || ttlPerEntity === void 0 ? void 0 : ttlPerEntity[entityName]) || defaultTTL;
69
+ const primaryKeysMap = {};
70
+ const validationSchemaProperties = {};
47
71
  for (const columnName in columns) {
48
- const { primary, primaryOrder } = columns[columnName];
72
+ const { isInnerPrimary, primary, primaryOrder, validationProperties } = columns[columnName];
73
+ columnNames.push(columnName);
49
74
  if (primary) {
50
75
  if (typeof primaryOrder === 'undefined') {
51
76
  throw new core_1.ApplicationError(`At schema "${entityName}", column "${columnName}": the field "primaryOrder" is required for primary key columns.`);
52
77
  }
53
78
  primaryKeys.push(columnName);
79
+ primaryKeysMap[columnName] = true;
80
+ }
81
+ else if (isInnerPrimary) {
82
+ innerPrimaryKeys.push(columnName);
83
+ innerPrimaryKeysMap[columnName] = true;
84
+ }
85
+ if (validationProperties) {
86
+ validationSchemaProperties[columnName] = validationProperties;
54
87
  }
55
88
  }
56
- this.primaryKeys = primaryKeys.sort((columnName0, columnName1) => columns[columnName0].primaryOrder - columns[columnName1].primaryOrder);
89
+ this._columnNames = columnNames;
90
+ this._innerPrimaryKeys = innerPrimaryKeys;
91
+ this._innerPrimaryKeysMap = innerPrimaryKeysMap;
92
+ this._primaryKeys = primaryKeys.sort((columnName0, columnName1) => columns[columnName0].primaryOrder - columns[columnName1].primaryOrder);
93
+ this._primaryKeysMap = primaryKeysMap;
94
+ this.defaultTTL = ((_a = settingsPerEntity === null || settingsPerEntity === void 0 ? void 0 : settingsPerEntity[entityName]) === null || _a === void 0 ? void 0 : _a.ttl) || defaultTTL;
95
+ if (typeof ((_b = settingsPerEntity === null || settingsPerEntity === void 0 ? void 0 : settingsPerEntity[entityName]) === null || _b === void 0 ? void 0 : _b.defaultIndividualSearchEnabled) !== 'undefined') {
96
+ this.defaultIndividualSearchEnabled = (_c = settingsPerEntity === null || settingsPerEntity === void 0 ? void 0 : settingsPerEntity[entityName]) === null || _c === void 0 ? void 0 : _c.defaultIndividualSearchEnabled;
97
+ }
98
+ else if (typeof defaultIndividualSearchEnabled !== 'undefined') {
99
+ this.defaultIndividualSearchEnabled = defaultIndividualSearchEnabled;
100
+ }
101
+ else {
102
+ this.defaultIndividualSearchEnabled = false;
103
+ }
57
104
  this.storeDelimiter = storeDelimiter || definitions_1.Constants.DEFAULT_STORE_DELIMITER;
105
+ this.validationSchemaProperties = validationSchemaProperties;
106
+ (0, class_validator_1.registerSchema)({ name: entityName, properties: validationSchemaProperties });
58
107
  }
59
- find(options) {
108
+ find(options, privateOptions) {
60
109
  return __awaiter(this, void 0, void 0, function* () {
61
110
  const { primaryKeys, schema, store, storeDelimiter } = this;
62
- const { name: entityName } = schema;
63
- const { exactSearch, filters, findAll, page, perPage, withValues: optWithValues } = options;
64
- const paginationOptions = {};
111
+ const { name: entityName, storeKey: entityStoreKey } = schema;
112
+ const { filters, findAll, individualSearch, withValues: optWithValues } = options;
113
+ const { requirePrimaryKeys } = privateOptions || {};
114
+ const individualSearchEnabled = typeof individualSearch !== 'undefined' ? individualSearch : this.defaultIndividualSearchEnabled;
115
+ const primaryKeyFiltersToForceCheck = {};
116
+ const storeEntityKeys = [];
65
117
  const withValues = typeof optWithValues === 'undefined' || optWithValues === true ? true : false;
66
- let count = 0;
67
118
  let hasNonPrimaryKeyFilters = false;
68
- let storeEntityKey = '';
119
+ let primaryKeyFiltersCount = 0;
69
120
  if (filters && Object.keys(filters).length) {
70
- let primaryKeyFiltersCount = 0;
71
- storeEntityKey =
72
- storeDelimiter +
73
- primaryKeys
74
- .map(field => {
75
- const value = filters[field];
76
- if (typeof value !== 'undefined' &&
77
- typeof value !== 'object' &&
78
- (typeof value !== 'string' || value.length)) {
79
- primaryKeyFiltersCount++;
80
- return value;
121
+ storeEntityKeys.push('');
122
+ primaryKeys.forEach(field => {
123
+ const value = filters[field];
124
+ if (typeof value !== 'undefined' && typeof value !== 'object' && (typeof value !== 'string' || value.length)) {
125
+ primaryKeyFiltersCount++;
126
+ storeEntityKeys.forEach((_key, keyIndex) => {
127
+ storeEntityKeys[keyIndex] += `${storeDelimiter}${value}`;
128
+ });
129
+ return;
130
+ }
131
+ if (value instanceof Array) {
132
+ const finalValues = [];
133
+ value.forEach(valueItem => {
134
+ if ((typeof valueItem === 'string' && !valueItem.length) ||
135
+ (typeof valueItem !== 'string' && typeof valueItem !== 'number')) {
136
+ return;
137
+ }
138
+ finalValues.push(valueItem);
139
+ });
140
+ if (finalValues.length) {
141
+ if (individualSearchEnabled) {
142
+ if (storeEntityKeys.length <= 1) {
143
+ const baseStoreEntityKey = storeEntityKeys[0] || '';
144
+ primaryKeyFiltersCount++;
145
+ finalValues.forEach((finalValue, finalValueIndex) => {
146
+ const fullFinalValue = `${baseStoreEntityKey}${storeDelimiter}${finalValue}`;
147
+ if (typeof storeEntityKeys[finalValueIndex] === 'undefined') {
148
+ storeEntityKeys.push(fullFinalValue);
149
+ return;
150
+ }
151
+ storeEntityKeys[finalValueIndex] = fullFinalValue;
152
+ });
153
+ return;
154
+ }
81
155
  }
82
- if (exactSearch) {
83
- throw new core_1.ApplicationError(`[RedisRepositoryService ${entityName}][Find Error]: ` +
84
- `The primary key field ${field} is required when exactSearch is set to true.`);
156
+ else {
157
+ hasNonPrimaryKeyFilters = true;
158
+ primaryKeyFiltersToForceCheck[field] = true;
159
+ storeEntityKeys[0] += `${storeDelimiter}*`;
160
+ return;
85
161
  }
86
- return '*';
87
- })
88
- .join(storeDelimiter);
89
- hasNonPrimaryKeyFilters = primaryKeyFiltersCount === Object.keys(filters).length;
90
- if (!findAll) {
91
- count = perPage || 100;
92
- paginationOptions.count = count;
93
- paginationOptions.cursor = (page ? page - 1 : 0) * count;
162
+ }
163
+ }
164
+ if (requirePrimaryKeys) {
165
+ throw new core_1.ApplicationError(`[RedisRepositoryService ${entityName}][Find Error]: ` +
166
+ `The primary key field ${field} is required when requirePrimaryKeys is set to true.`);
167
+ }
168
+ if (individualSearchEnabled) {
169
+ throw new core_1.ApplicationError(`[RedisRepositoryService ${entityName}][Find Error]: ` +
170
+ `The primary key field ${field} is required when individualSearchEnabled ` +
171
+ 'is set to true.');
172
+ }
173
+ storeEntityKeys[0] += `${storeDelimiter}*`;
174
+ });
175
+ if (!hasNonPrimaryKeyFilters) {
176
+ hasNonPrimaryKeyFilters = primaryKeyFiltersCount === Object.keys(filters).length;
94
177
  }
95
178
  }
96
179
  else if (!findAll) {
@@ -98,60 +181,147 @@ let RedisRepositoryService = class RedisRepositoryService {
98
181
  'Either filters or findAll is required when calling the find method.');
99
182
  }
100
183
  if (findAll) {
101
- const { values: initialResults } = yield store.scan(`${entityName}${storeEntityKey}`, Object.assign(Object.assign({}, paginationOptions), { parseToJSON: true, scanAll: findAll, withValues }));
102
- if (!hasNonPrimaryKeyFilters) {
103
- return initialResults;
184
+ if (individualSearchEnabled && !primaryKeyFiltersCount && primaryKeys.length) {
185
+ throw new core_1.ApplicationError(`[RedisRepositoryService ${entityName}][Error]: ` +
186
+ 'Primary key filters are required when findAll and individualSearchEnabled ' +
187
+ 'are enabled in the find method.');
104
188
  }
105
- return initialResults.filter(item => {
106
- let filterResult = true;
107
- for (const key in filters) {
108
- if (primaryKeys.includes(key)) {
109
- continue;
110
- }
111
- if (item[key] !== filters[key]) {
112
- filterResult = false;
113
- break;
114
- }
115
- }
116
- return filterResult;
117
- });
189
+ let initialResults = [];
190
+ if (individualSearchEnabled) {
191
+ initialResults = (yield Promise.all(storeEntityKeys.map(key => store.get(`${entityStoreKey}${key}`, { parseToJSON: true }))));
192
+ }
193
+ else {
194
+ const scanData = yield store.scan(`${entityStoreKey}${storeEntityKeys[0]}`, {
195
+ parseToJSON: true,
196
+ scanAll: findAll,
197
+ withValues
198
+ });
199
+ initialResults = scanData.values;
200
+ }
201
+ return {
202
+ items: this.getValuesFromResults(initialResults, {
203
+ filters,
204
+ hasNonPrimaryKeyFilters,
205
+ primaryKeyFiltersToForceCheck
206
+ }),
207
+ more: false
208
+ };
118
209
  }
210
+ const { page, perPage } = options || {};
211
+ const [storeEntityKey] = storeEntityKeys;
212
+ const count = perPage || 100;
213
+ const limit = count + 1;
214
+ let cursor = (page ? page - 1 : 0) * count;
215
+ let more = false;
119
216
  let results = [];
120
- while (results.length < count) {
121
- const { cursor: newCursor, values: innerResults } = yield store.scan(`${entityName}${storeEntityKey}`, Object.assign(Object.assign({}, paginationOptions), { parseToJSON: true, scanAll: findAll, withValues }));
122
- results = results.concat(innerResults.filter(item => {
123
- let filterResult = true;
124
- for (const key in filters) {
125
- if (primaryKeys.includes(key)) {
126
- continue;
127
- }
128
- if (item[key] !== filters[key]) {
129
- filterResult = false;
217
+ while (results.length < limit) {
218
+ let endReached = false;
219
+ let iterationResults = [];
220
+ if (individualSearchEnabled) {
221
+ const iterationLimit = cursor + limit;
222
+ const iterationPromises = [];
223
+ for (let i = cursor; i < iterationLimit; i++) {
224
+ const key = storeEntityKeys[i];
225
+ if (!key) {
226
+ endReached = true;
130
227
  break;
131
228
  }
229
+ iterationPromises.push(store.get(`${entityStoreKey}${key}`, { parseToJSON: true }));
230
+ }
231
+ iterationResults = (yield Promise.all(iterationPromises));
232
+ cursor = iterationLimit;
233
+ }
234
+ else {
235
+ const { cursor: newCursor, values: innerResults } = yield store.scan(`${entityStoreKey}${storeEntityKey}`, {
236
+ count,
237
+ cursor,
238
+ parseToJSON: true,
239
+ scanAll: false,
240
+ withValues
241
+ });
242
+ iterationResults = innerResults;
243
+ if (newCursor === 0) {
244
+ endReached = true;
245
+ }
246
+ else {
247
+ cursor = newCursor;
132
248
  }
133
- return filterResult;
249
+ }
250
+ results = results.concat(this.getValuesFromResults(iterationResults, {
251
+ filters,
252
+ hasNonPrimaryKeyFilters,
253
+ primaryKeyFiltersToForceCheck
134
254
  }));
135
- if (newCursor === 0) {
255
+ if (endReached) {
136
256
  break;
137
257
  }
138
- paginationOptions.cursor = newCursor;
139
258
  }
140
259
  if (results.length > count) {
260
+ more = true;
141
261
  results = results.slice(0, count);
142
262
  }
143
- return results;
263
+ return { items: results, more };
144
264
  });
145
265
  }
266
+ filterItem(item, filters, options) {
267
+ if (typeof item === 'undefined' || item === null) {
268
+ return false;
269
+ }
270
+ const { keysToSkip, skippableKeysToForceCheck } = options || {};
271
+ let filterResult = true;
272
+ for (const key in filters) {
273
+ if ((keysToSkip === null || keysToSkip === void 0 ? void 0 : keysToSkip[key]) && !(skippableKeysToForceCheck === null || skippableKeysToForceCheck === void 0 ? void 0 : skippableKeysToForceCheck[key])) {
274
+ continue;
275
+ }
276
+ const filterValue = filters[key];
277
+ const itemValue = item[key];
278
+ if (filterValue instanceof Array) {
279
+ if (!filterValue.includes(itemValue)) {
280
+ filterResult = false;
281
+ break;
282
+ }
283
+ continue;
284
+ }
285
+ if (filterValue !== itemValue) {
286
+ filterResult = false;
287
+ break;
288
+ }
289
+ }
290
+ return filterResult;
291
+ }
292
+ getValuesFromResults(inputData, options) {
293
+ const { primaryKeysMap, schema } = this;
294
+ const { isArray, nestedObjectContainerPath } = schema;
295
+ const { filters, flattenArray, hasNonPrimaryKeyFilters, primaryKeyFiltersToForceCheck } = options || {};
296
+ let initialResults = [...inputData];
297
+ if (nestedObjectContainerPath) {
298
+ initialResults = initialResults.map(item => {
299
+ if (item && typeof item === 'object' && !(item instanceof Date)) {
300
+ return (0, core_1.getNested)(item, nestedObjectContainerPath, { removeNestedFieldEscapeSign: true }).unifiedValue;
301
+ }
302
+ return item;
303
+ });
304
+ }
305
+ if (isArray && (flattenArray || typeof flattenArray === 'undefined')) {
306
+ initialResults = initialResults.flat();
307
+ }
308
+ if (!hasNonPrimaryKeyFilters || !filters) {
309
+ return initialResults.filter(item => typeof item !== 'undefined' && item !== null);
310
+ }
311
+ return initialResults.filter(item => this.filterItem(item, filters, {
312
+ keysToSkip: primaryKeysMap,
313
+ skippableKeysToForceCheck: primaryKeyFiltersToForceCheck
314
+ }));
315
+ }
146
316
  prepare(data, options) {
147
317
  return __awaiter(this, void 0, void 0, function* () {
148
318
  const { primaryKeys, schema, store, storeDelimiter } = this;
149
- const { columns, name: entityName } = schema;
319
+ const { columns, name: entityName, storeKey: entityStoreKey } = schema;
150
320
  const opt = options || {};
151
321
  const { generatePrimaryKeys, onConflict: optOnConflict, validate: optValidate } = opt;
152
322
  const onConflict = optOnConflict || redis_repository_definitions_1.SaveOptionsOnConflict.ThrowError;
153
323
  let allPKValuesExist = true;
154
- let preparedData = immutable_1.default.fromJS(data).toJS();
324
+ let preparedData = lodash_1.default.cloneDeep(data);
155
325
  let storeEntityKey = '';
156
326
  for (const columnName of primaryKeys) {
157
327
  const { generated, type } = columns[columnName];
@@ -161,7 +331,7 @@ let RedisRepositoryService = class RedisRepositoryService {
161
331
  typeof value === 'object');
162
332
  if (generated) {
163
333
  if (valueExists) {
164
- storeEntityKey += `${value}`;
334
+ storeEntityKey += `${value}${storeDelimiter}`;
165
335
  continue;
166
336
  }
167
337
  if (allPKValuesExist) {
@@ -172,11 +342,11 @@ let RedisRepositoryService = class RedisRepositoryService {
172
342
  `A value is required for generated PK column ${columnName} when the generatePrimaryKeys is set to false.`);
173
343
  }
174
344
  if (type === redis_repository_definitions_1.EntitySchemaColumnType.Integer) {
175
- let currentMaxValue = (yield store.get(`${entityName}${storeDelimiter}increment${storeDelimiter}${columnName}`, {
345
+ let currentMaxValue = (yield store.get(`${entityStoreKey}${storeDelimiter}increment${storeDelimiter}${columnName}`, {
176
346
  parseToJSON: true
177
347
  })) || 0;
178
348
  currentMaxValue++;
179
- yield store.set(`${entityName}${storeDelimiter}increment${storeDelimiter}${columnName}`, currentMaxValue);
349
+ yield store.set(`${entityStoreKey}${storeDelimiter}increment${storeDelimiter}${columnName}`, currentMaxValue);
180
350
  preparedData[columnName] = currentMaxValue;
181
351
  storeEntityKey += `${currentMaxValue}${storeDelimiter}`;
182
352
  continue;
@@ -197,24 +367,26 @@ let RedisRepositoryService = class RedisRepositoryService {
197
367
  throw new core_1.ApplicationError(`[RedisRepositoryService ${entityName}][Validation Error]: ` +
198
368
  `A value is required for non-generated PK column ${columnName}`);
199
369
  }
200
- storeEntityKey += `${value}`;
370
+ storeEntityKey += `${value}${storeDelimiter}`;
371
+ }
372
+ if (storeEntityKey.endsWith(storeDelimiter)) {
373
+ storeEntityKey = storeEntityKey.substring(0, storeEntityKey.length - storeDelimiter.length);
201
374
  }
202
375
  if (optValidate) {
203
- const validationErrors = yield (0, class_validator_1.validate)(data);
376
+ const validationErrors = yield (0, class_validator_1.validate)(entityName, data);
204
377
  if (validationErrors.length) {
205
378
  throw new core_1.ApplicationError(`[RedisRepositoryService ${entityName}][Validation Error]: ${validationErrors.join('\n')}`);
206
379
  }
207
380
  }
208
- storeEntityKey = storeEntityKey.replace(new RegExp(`${storeDelimiter}$`), '');
209
381
  if (onConflict !== redis_repository_definitions_1.SaveOptionsOnConflict.DoNothing && allPKValuesExist) {
210
- const existingValue = yield store.get(storeEntityKey, { parseToJSON: false });
211
- if (existingValue) {
382
+ const hasValue = yield store.get(storeEntityKey, { withValues: false });
383
+ if (hasValue) {
212
384
  if (onConflict === redis_repository_definitions_1.SaveOptionsOnConflict.ThrowError) {
213
385
  throw new core_1.ApplicationError(`[RedisRepositoryService ${entityName}][Unique Error]: An entry already exists for key ${storeEntityKey}.`);
214
386
  }
215
387
  if (onConflict === redis_repository_definitions_1.SaveOptionsOnConflict.Update) {
216
- const existingData = JSON.parse(existingValue);
217
- preparedData = (0, ramda_1.mergeDeepRight)(existingData, preparedData);
388
+ const existingData = yield store.get(storeEntityKey, { parseToJSON: true });
389
+ preparedData = lodash_1.default.merge(existingData, preparedData);
218
390
  }
219
391
  else {
220
392
  throw new core_1.ApplicationError(`[RedisRepositoryService ${entityName}][Execution Error]: ` +
@@ -227,18 +399,69 @@ let RedisRepositoryService = class RedisRepositoryService {
227
399
  }
228
400
  save(data, options) {
229
401
  return __awaiter(this, void 0, void 0, function* () {
230
- const { defaultTTL, schema, store, storeDelimiter } = this;
231
- const { name: entityName } = schema;
232
- const { delete: optDelete, onConflict, transactionId, ttl } = options || {};
402
+ const { defaultTTL, experimentalDeletionEnabled, innerPrimaryKeys, primaryKeysMap, schema, store, storeDelimiter } = this;
403
+ const { isArray, nestedObjectContainerPath, storeKey: entityStoreKey } = schema;
404
+ const { delete: optDelete, generatePrimaryKeys, onConflict, transactionId, ttl, validate } = options || {};
233
405
  const actualData = data instanceof Array ? data : [data];
234
406
  if (optDelete) {
235
407
  const prepareOptions = {
408
+ generatePrimaryKeys: false,
236
409
  onConflict: redis_repository_definitions_1.SaveOptionsOnConflict.DoNothing,
237
- validate: true
410
+ validate: false
238
411
  };
239
412
  const deleteKeys = [];
240
413
  for (const i in actualData) {
241
- deleteKeys.push((yield this.prepare(actualData[i], prepareOptions)).storeEntityKey);
414
+ deleteKeys.push(`${entityStoreKey}${storeDelimiter}${(yield this.prepare(actualData[i], prepareOptions)).storeEntityKey}`);
415
+ }
416
+ if (experimentalDeletionEnabled &&
417
+ (isArray || nestedObjectContainerPath) &&
418
+ innerPrimaryKeys.length &&
419
+ deleteKeys.length) {
420
+ const results = yield Promise.all(deleteKeys.map(key => store.get(key, { parseToJSON: true })));
421
+ const newResults = [];
422
+ results.forEach((resultItem, resultItemIndex) => {
423
+ if (!resultItem || typeof resultItem !== 'object' || resultItem instanceof Date) {
424
+ newResults.push(resultItem);
425
+ return;
426
+ }
427
+ let innerPaths = [];
428
+ let innerValues = [];
429
+ if (nestedObjectContainerPath) {
430
+ const { paths, values } = (0, core_1.getNested)(resultItem, nestedObjectContainerPath, {
431
+ removeNestedFieldEscapeSign: true
432
+ });
433
+ innerPaths = paths;
434
+ innerValues = values;
435
+ }
436
+ else if (isArray) {
437
+ innerValues = resultItem;
438
+ }
439
+ else {
440
+ innerValues = [resultItem];
441
+ }
442
+ innerValues.forEach((innerValue, innerValueIndex) => {
443
+ const shouldDelete = this.filterItem(innerValue, actualData[resultItemIndex], {
444
+ keysToSkip: primaryKeysMap
445
+ });
446
+ if (!shouldDelete) {
447
+ return;
448
+ }
449
+ if (innerPaths[innerValueIndex]) {
450
+ (0, core_1.setNested)(results[resultItemIndex], innerPaths[innerValueIndex], undefined, {
451
+ removeNestedFieldEscapeSign: true
452
+ });
453
+ return;
454
+ }
455
+ if (isArray) {
456
+ (0, core_1.setNested)(results, `${resultItemIndex}`, resultItem.splice(innerValueIndex, 1), {
457
+ removeNestedFieldEscapeSign: true
458
+ });
459
+ return;
460
+ }
461
+ results.splice(resultItemIndex, 1);
462
+ });
463
+ });
464
+ return [];
242
465
  }
243
466
  if (deleteKeys.length) {
244
467
  yield store.delete(deleteKeys, { transactionId });
@@ -246,14 +469,14 @@ let RedisRepositoryService = class RedisRepositoryService {
246
469
  return deleteKeys;
247
470
  }
248
471
  const prepareOptions = {
249
- generatePrimaryKeys: true,
472
+ generatePrimaryKeys,
250
473
  onConflict,
251
- validate: true
474
+ validate
252
475
  };
253
476
  const results = [];
254
477
  for (const i in actualData) {
255
478
  const { data: validatedEntity, storeEntityKey } = yield this.prepare(actualData[i], prepareOptions);
256
- yield store.set(`${entityName}${storeDelimiter}${storeEntityKey}`, validatedEntity, {
479
+ yield store.set(`${entityStoreKey}${storeDelimiter}${storeEntityKey}`, validatedEntity, {
257
480
  transactionId,
258
481
  ttl: ttl || defaultTTL
259
482
  });
@@ -266,7 +489,7 @@ let RedisRepositoryService = class RedisRepositoryService {
266
489
  exports.RedisRepositoryService = RedisRepositoryService;
267
490
  exports.RedisRepositoryService = RedisRepositoryService = __decorate([
268
491
  (0, common_1.Injectable)(),
269
- __param(1, (0, common_1.Inject)(definitions_1.Constants.REDIS_CLIENT_PERSISTANCE_MODULE_NAME)),
492
+ __param(1, (0, common_1.Inject)(core_1.Constants.PERSISTANCE_MODULE_NAME)),
270
493
  __param(2, (0, common_1.Inject)(definitions_1.Constants.REDIS_REPOSITORY_SCHEMA)),
271
494
  __metadata("design:paramtypes", [core_1.ConfigProviderService, String, Object, store_1.RedisStoreService])
272
495
  ], RedisRepositoryService);
@@ -1 +1 @@
1
- {"version":3,"file":"redis.repository.service.js","sourceRoot":"","sources":["../../src/repository/redis.repository.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redis.repository.service.js","sourceRoot":"","sources":["../../src/repository/redis.repository.service.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,10 @@
1
- import { RedisClientType } from 'redis';
2
1
  export interface GetOptions {
3
2
  parseToJSON?: boolean;
3
+ withValues?: boolean;
4
4
  }
5
- export type RedisClientScanMethod = (_key: string, _cursor: number, _options?: {
6
- count?: number;
7
- match: string;
8
- }) => Promise<{
9
- cursor: number;
10
- keys?: string[];
11
- tuples?: {
12
- field: string;
13
- value: string;
14
- }[];
15
- }>;
16
5
  export interface RedisStoreModuleOptions {
17
6
  persistanceModuleName: string;
18
7
  }
19
- export type RedisTransaction = ReturnType<RedisClientType['multi']>;
20
8
  export interface ScanOptions {
21
9
  count?: number;
22
10
  cursor?: number;
@@ -32,11 +32,12 @@ let RedisStoreModule = RedisStoreModule_1 = class RedisStoreModule {
32
32
  {
33
33
  provide: definitions_1.Constants.REDIS_CLIENT,
34
34
  useFactory: (configProvider) => __awaiter(this, void 0, void 0, function* () {
35
- return yield redis_store_service_1.RedisStoreService.createClient(configProvider.config, { persistanceModuleName });
35
+ const client = yield redis_store_service_1.RedisStoreService.createClient(configProvider.config, { persistanceModuleName });
36
+ return client;
36
37
  }),
37
38
  inject: [core_1.ConfigProviderService]
38
39
  },
39
- { provide: definitions_1.Constants.REDIS_CLIENT_PERSISTANCE_MODULE_NAME, useValue: persistanceModuleName },
40
+ { provide: core_1.Constants.PERSISTANCE_MODULE_NAME, useValue: persistanceModuleName },
40
41
  { provide: serviceToken, useClass: redis_store_service_1.RedisStoreService }
41
42
  ],
42
43
  exports: [{ provide: serviceToken, useClass: redis_store_service_1.RedisStoreService }]
@@ -1 +1 @@
1
- {"version":3,"file":"redis.store.module.js","sourceRoot":"","sources":["../../src/store/redis.store.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,2CAAuD;AAEvD,uCAAqD;AAGrD,+DAA0D;AAE1D,uDAAkD;AAG3C,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAC3B,MAAM,CAAC,QAAQ,CAAC,OAAgC;QAC9C,MAAM,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC;QAC1C,MAAM,YAAY,GAAG,GAAG,qBAAqB,GAAG,uBAAS,CAAC,iCAAiC,EAAE,CAAC;QAC9F,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,kBAAgB;YACxB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,uBAAS,CAAC,YAAY;oBAC/B,UAAU,EAAE,CAAO,cAAqC,EAAE,EAAE;wBAC1D,OAAO,MAAM,uCAAiB,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,qBAAqB,EAAE,CAAC,CAAC;oBAChG,CAAC,CAAA;oBACD,MAAM,EAAE,CAAC,4BAAqB,CAAC;iBAChC;gBACD,EAAE,OAAO,EAAE,uBAAS,CAAC,oCAAoC,EAAE,QAAQ,EAAE,qBAAqB,EAAE;gBAC5F,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,uCAAiB,EAAE;aACvD;YACD,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,uCAAiB,EAAE,CAAC;SAClE,CAAC;IACJ,CAAC;CACF,CAAA;AArBY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,gBAAgB,CAqB5B"}
1
+ {"version":3,"file":"redis.store.module.js","sourceRoot":"","sources":["../../src/store/redis.store.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,2CAAuD;AAEvD,uCAAiF;AAGjF,+DAA0D;AAE1D,uDAAkD;AAG3C,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAC3B,MAAM,CAAC,QAAQ,CAAC,OAAgC;QAC9C,MAAM,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC;QAC1C,MAAM,YAAY,GAAG,GAAG,qBAAqB,GAAG,uBAAS,CAAC,iCAAiC,EAAE,CAAC;QAC9F,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,kBAAgB;YACxB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,uBAAS,CAAC,YAAY;oBAC/B,UAAU,EAAE,CAAO,cAAqC,EAAE,EAAE;wBAE1D,MAAM,MAAM,GAAG,MAAM,uCAAiB,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,qBAAqB,EAAE,CAAC,CAAC;wBACtG,OAAO,MAAM,CAAC;oBAChB,CAAC,CAAA;oBACD,MAAM,EAAE,CAAC,4BAAqB,CAAC;iBAChC;gBACD,EAAE,OAAO,EAAE,gBAAa,CAAC,uBAAuB,EAAE,QAAQ,EAAE,qBAAqB,EAAE;gBACnF,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,uCAAiB,EAAE;aACvD;YACD,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,uCAAiB,EAAE,CAAC;SAClE,CAAC;IACJ,CAAC;CACF,CAAA;AAvBY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,gBAAgB,CAuB5B"}