@node-c/data-redis 1.0.0-alpha62

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/LICENSE +1 -0
  2. package/README.md +4 -0
  3. package/coverage/base.css +224 -0
  4. package/coverage/block-navigation.js +87 -0
  5. package/coverage/clover.xml +580 -0
  6. package/coverage/common/definitions/common.constants.ts.html +121 -0
  7. package/coverage/common/definitions/index.html +131 -0
  8. package/coverage/common/definitions/index.ts.html +88 -0
  9. package/coverage/coverage-final.json +13 -0
  10. package/coverage/entityService/index.html +131 -0
  11. package/coverage/entityService/index.ts.html +91 -0
  12. package/coverage/entityService/redis.entity.service.ts.html +454 -0
  13. package/coverage/favicon.png +0 -0
  14. package/coverage/index.html +176 -0
  15. package/coverage/module/index.html +131 -0
  16. package/coverage/module/index.ts.html +91 -0
  17. package/coverage/module/redis.module.ts.html +169 -0
  18. package/coverage/prettify.css +1 -0
  19. package/coverage/prettify.js +2 -0
  20. package/coverage/repository/index.html +146 -0
  21. package/coverage/repository/index.ts.html +94 -0
  22. package/coverage/repository/redis.repository.module.ts.html +181 -0
  23. package/coverage/repository/redis.repository.service.ts.html +784 -0
  24. package/coverage/sort-arrow-sprite.png +0 -0
  25. package/coverage/sorter.js +196 -0
  26. package/coverage/store/index.html +146 -0
  27. package/coverage/store/index.ts.html +94 -0
  28. package/coverage/store/redis.store.module.ts.html +181 -0
  29. package/coverage/store/redis.store.service.ts.html +586 -0
  30. package/dist/common/definitions/common.constants.d.ts +6 -0
  31. package/dist/common/definitions/common.constants.js +11 -0
  32. package/dist/common/definitions/common.constants.js.map +1 -0
  33. package/dist/common/definitions/index.d.ts +1 -0
  34. package/dist/common/definitions/index.js +18 -0
  35. package/dist/common/definitions/index.js.map +1 -0
  36. package/dist/entityService/index.d.ts +2 -0
  37. package/dist/entityService/index.js +19 -0
  38. package/dist/entityService/index.js.map +1 -0
  39. package/dist/entityService/redis.entity.service.d.ts +19 -0
  40. package/dist/entityService/redis.entity.service.definitions.d.ts +44 -0
  41. package/dist/entityService/redis.entity.service.definitions.js +3 -0
  42. package/dist/entityService/redis.entity.service.definitions.js.map +1 -0
  43. package/dist/entityService/redis.entity.service.js +231 -0
  44. package/dist/entityService/redis.entity.service.js.map +1 -0
  45. package/dist/index.d.ts +5 -0
  46. package/dist/index.js +22 -0
  47. package/dist/index.js.map +1 -0
  48. package/dist/module/index.d.ts +2 -0
  49. package/dist/module/index.js +19 -0
  50. package/dist/module/index.js.map +1 -0
  51. package/dist/module/redis.module.d.ts +5 -0
  52. package/dist/module/redis.module.definitions.d.ts +16 -0
  53. package/dist/module/redis.module.definitions.js +3 -0
  54. package/dist/module/redis.module.definitions.js.map +1 -0
  55. package/dist/module/redis.module.js +30 -0
  56. package/dist/module/redis.module.js.map +1 -0
  57. package/dist/repository/index.d.ts +3 -0
  58. package/dist/repository/index.js +20 -0
  59. package/dist/repository/index.js.map +1 -0
  60. package/dist/repository/redis.repository.definitions.d.ts +74 -0
  61. package/dist/repository/redis.repository.definitions.js +20 -0
  62. package/dist/repository/redis.repository.definitions.js.map +1 -0
  63. package/dist/repository/redis.repository.module.d.ts +5 -0
  64. package/dist/repository/redis.repository.module.js +43 -0
  65. package/dist/repository/redis.repository.module.js.map +1 -0
  66. package/dist/repository/redis.repository.service.d.ts +39 -0
  67. package/dist/repository/redis.repository.service.js +496 -0
  68. package/dist/repository/redis.repository.service.js.map +1 -0
  69. package/dist/store/index.d.ts +3 -0
  70. package/dist/store/index.js +20 -0
  71. package/dist/store/index.js.map +1 -0
  72. package/dist/store/redis.store.definitions.d.ts +21 -0
  73. package/dist/store/redis.store.definitions.js +3 -0
  74. package/dist/store/redis.store.definitions.js.map +1 -0
  75. package/dist/store/redis.store.module.d.ts +5 -0
  76. package/dist/store/redis.store.module.js +51 -0
  77. package/dist/store/redis.store.module.js.map +1 -0
  78. package/dist/store/redis.store.service.d.ts +30 -0
  79. package/dist/store/redis.store.service.js +376 -0
  80. package/dist/store/redis.store.service.js.map +1 -0
  81. package/package.json +27 -0
  82. package/tsconfig.build.json +9 -0
  83. package/tsconfig.json +9 -0
@@ -0,0 +1,21 @@
1
+ export interface GetOptions {
2
+ parseToJSON?: boolean;
3
+ withValues?: boolean;
4
+ }
5
+ export interface RedisStoreModuleOptions {
6
+ dataModuleName: string;
7
+ }
8
+ export interface ScanOptions {
9
+ count?: number;
10
+ cursor?: number;
11
+ parseToJSON?: boolean;
12
+ scanAll?: boolean;
13
+ withValues?: boolean;
14
+ }
15
+ export interface SetOptions {
16
+ transactionId?: string;
17
+ ttl?: number;
18
+ }
19
+ export interface StoreDeleteOptions {
20
+ transactionId?: string;
21
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=redis.store.definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.store.definitions.js","sourceRoot":"","sources":["../../src/store/redis.store.definitions.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+ import { RedisStoreModuleOptions } from './redis.store.definitions';
3
+ export declare class RedisStoreModule {
4
+ static register(options: RedisStoreModuleOptions): DynamicModule;
5
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
+ return new (P || (P = Promise))(function (resolve, reject) {
11
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
15
+ });
16
+ };
17
+ var RedisStoreModule_1;
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.RedisStoreModule = void 0;
20
+ const common_1 = require("@nestjs/common");
21
+ const core_1 = require("@node-c/core");
22
+ const redis_store_service_1 = require("./redis.store.service");
23
+ const definitions_1 = require("../common/definitions");
24
+ let RedisStoreModule = RedisStoreModule_1 = class RedisStoreModule {
25
+ static register(options) {
26
+ const { dataModuleName } = options;
27
+ const serviceToken = `${dataModuleName}${definitions_1.Constants.REDIS_CLIENT_STORE_SERVICE_SUFFIX}`;
28
+ return {
29
+ global: true,
30
+ module: RedisStoreModule_1,
31
+ providers: [
32
+ {
33
+ provide: definitions_1.Constants.REDIS_CLIENT,
34
+ useFactory: (configProvider) => __awaiter(this, void 0, void 0, function* () {
35
+ const client = yield redis_store_service_1.RedisStoreService.createClient(configProvider.config, { dataModuleName });
36
+ return client;
37
+ }),
38
+ inject: [core_1.ConfigProviderService]
39
+ },
40
+ { provide: core_1.Constants.PERSISTANCE_MODULE_NAME, useValue: dataModuleName },
41
+ { provide: serviceToken, useClass: redis_store_service_1.RedisStoreService }
42
+ ],
43
+ exports: [{ provide: serviceToken, useClass: redis_store_service_1.RedisStoreService }]
44
+ };
45
+ }
46
+ };
47
+ exports.RedisStoreModule = RedisStoreModule;
48
+ exports.RedisStoreModule = RedisStoreModule = RedisStoreModule_1 = __decorate([
49
+ (0, common_1.Module)({})
50
+ ], RedisStoreModule);
51
+ //# sourceMappingURL=redis.store.module.js.map
@@ -0,0 +1 @@
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,cAAc,EAAE,GAAG,OAAO,CAAC;QACnC,MAAM,YAAY,GAAG,GAAG,cAAc,GAAG,uBAAS,CAAC,iCAAiC,EAAE,CAAC;QACvF,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,cAAc,EAAE,CAAC,CAAC;wBAC/F,OAAO,MAAM,CAAC;oBAChB,CAAC,CAAA;oBACD,MAAM,EAAE,CAAC,4BAAqB,CAAC;iBAChC;gBACD,EAAE,OAAO,EAAE,gBAAa,CAAC,uBAAuB,EAAE,QAAQ,EAAE,cAAc,EAAE;gBAC5E,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"}
@@ -0,0 +1,30 @@
1
+ import { AppConfig, ConfigProviderService, GenericObject } from '@node-c/core';
2
+ import Redis, { ChainableCommander, Cluster } from 'ioredis';
3
+ import { GetOptions, ScanOptions, SetOptions, StoreDeleteOptions } from './redis.store.definitions';
4
+ export declare class RedisStoreService {
5
+ protected configProvider: ConfigProviderService;
6
+ protected client: Redis | Cluster;
7
+ protected dataModuleName: string;
8
+ protected defaultTTL?: number;
9
+ protected storeDelimiter: string;
10
+ protected storeKey: string;
11
+ protected transactions: GenericObject<ChainableCommander>;
12
+ protected useHashmap: boolean;
13
+ constructor(configProvider: ConfigProviderService, client: Redis | Cluster, dataModuleName: string);
14
+ static createClient(config: AppConfig, options: {
15
+ dataModuleName: string;
16
+ }): Promise<Redis | Cluster>;
17
+ createTransaction(): string;
18
+ delete(handle: string | string[], options?: StoreDeleteOptions): Promise<number>;
19
+ endTransaction(transactionId: string): Promise<void>;
20
+ get<Value = unknown>(handle: string, options?: GetOptions): Promise<Value>;
21
+ static getNodeList(host: string, port: number): {
22
+ host: string;
23
+ port: number;
24
+ }[];
25
+ scan<Values = unknown[]>(handle: string, options: ScanOptions): Promise<{
26
+ cursor: number;
27
+ values: Values;
28
+ }>;
29
+ set<Entry = unknown>(handle: string, entry: Entry, options?: SetOptions): Promise<void>;
30
+ }
@@ -0,0 +1,376 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __metadata = (this && this.__metadata) || function (k, v) {
42
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
+ };
44
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
45
+ return function (target, key) { decorator(target, key, paramIndex); }
46
+ };
47
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
48
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
49
+ return new (P || (P = Promise))(function (resolve, reject) {
50
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
51
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
52
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
53
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
54
+ });
55
+ };
56
+ var __importDefault = (this && this.__importDefault) || function (mod) {
57
+ return (mod && mod.__esModule) ? mod : { "default": mod };
58
+ };
59
+ var RedisStoreService_1;
60
+ Object.defineProperty(exports, "__esModule", { value: true });
61
+ exports.RedisStoreService = void 0;
62
+ const common_1 = require("@nestjs/common");
63
+ const core_1 = require("@node-c/core");
64
+ const ioredis_1 = __importStar(require("ioredis"));
65
+ const iovalkey_1 = __importDefault(require("iovalkey"));
66
+ const uuid_1 = require("uuid");
67
+ const definitions_1 = require("../common/definitions");
68
+ let RedisStoreService = RedisStoreService_1 = class RedisStoreService {
69
+ constructor(configProvider, client, dataModuleName) {
70
+ this.configProvider = configProvider;
71
+ this.client = client;
72
+ this.dataModuleName = dataModuleName;
73
+ const { defaultTTL, storeDelimiter, storeKey, useHashmap } = configProvider.config.data[dataModuleName];
74
+ this.defaultTTL = defaultTTL;
75
+ this.storeDelimiter = storeDelimiter || definitions_1.Constants.DEFAULT_STORE_DELIMITER;
76
+ this.storeKey = storeKey;
77
+ this.transactions = {};
78
+ this.useHashmap = typeof useHashmap !== 'undefined' ? useHashmap : true;
79
+ }
80
+ static createClient(config, options) {
81
+ return __awaiter(this, void 0, void 0, function* () {
82
+ const { dataModuleName } = options;
83
+ const { clusterMode, failOnConnectionError = true, password, host, port, sentinelMasterName, sentinelMode, sentinelPassword, sentinelRole, type, usePasswordForSentinelPassword, user } = config.data[dataModuleName];
84
+ const actualHost = host || '0.0.0.0';
85
+ const actualPassword = (password === null || password === void 0 ? void 0 : password.length) ? password : undefined;
86
+ const actualPort = port || 6379;
87
+ const actualUser = (user === null || user === void 0 ? void 0 : user.length) ? user : undefined;
88
+ const clientOptions = {};
89
+ let lastRetryAt = new Date().valueOf();
90
+ const retryMethod = () => {
91
+ const now = new Date().valueOf();
92
+ if (Math.abs(lastRetryAt - now) > 60000) {
93
+ lastRetryAt = now;
94
+ return 500;
95
+ }
96
+ return null;
97
+ };
98
+ if (clusterMode) {
99
+ if (!failOnConnectionError) {
100
+ clientOptions.clusterRetryStrategy = retryMethod;
101
+ }
102
+ const ClusterConstructor = type === core_1.NoSQLType.Valkey ? iovalkey_1.default.Cluster : ioredis_1.Cluster;
103
+ const client = new ClusterConstructor(RedisStoreService_1.getNodeList(actualHost, actualPort), Object.assign(Object.assign({}, clientOptions), { lazyConnect: true, redisOptions: { password: actualPassword, username: actualUser } }));
104
+ try {
105
+ yield client.connect();
106
+ }
107
+ catch (err) {
108
+ console.error(`[RedisStore][${dataModuleName}]: Error connecting to Redis:`, err);
109
+ if (failOnConnectionError) {
110
+ throw err;
111
+ }
112
+ client.disconnect();
113
+ }
114
+ return client;
115
+ }
116
+ if (sentinelMode) {
117
+ if (!failOnConnectionError) {
118
+ clientOptions.maxRetriesPerRequest = 0;
119
+ clientOptions.sentinelRetryStrategy = retryMethod;
120
+ }
121
+ const SentinelConstructor = type === core_1.NoSQLType.Valkey ? iovalkey_1.default : ioredis_1.default;
122
+ const client = new SentinelConstructor(Object.assign(Object.assign({}, clientOptions), { lazyConnect: true, name: sentinelMasterName || 'mymaster', password: actualPassword, role: sentinelRole || 'master', sentinels: RedisStoreService_1.getNodeList(actualHost, actualPort), sentinelPassword: (sentinelPassword === null || sentinelPassword === void 0 ? void 0 : sentinelPassword.length)
123
+ ? sentinelPassword
124
+ : usePasswordForSentinelPassword
125
+ ? actualPassword
126
+ : undefined, username: actualUser }));
127
+ client.on('error', (error) => {
128
+ console.error(`[RedisStore][${dataModuleName}]: Error:`, error);
129
+ });
130
+ try {
131
+ yield client.connect();
132
+ }
133
+ catch (err) {
134
+ console.error(`[RedisStore][${dataModuleName}]: Error connecting to Redis:`, err);
135
+ if (failOnConnectionError) {
136
+ throw err;
137
+ }
138
+ client.disconnect();
139
+ }
140
+ return client;
141
+ }
142
+ if (!failOnConnectionError) {
143
+ clientOptions.maxRetriesPerRequest = 0;
144
+ clientOptions.retryStrategy = retryMethod;
145
+ }
146
+ const ClientConstructor = type === core_1.NoSQLType.Valkey ? iovalkey_1.default : ioredis_1.default;
147
+ const client = new ClientConstructor(Object.assign(Object.assign({}, clientOptions), { host: actualHost, lazyConnect: true, password: actualPassword, port: actualPort, username: actualUser }));
148
+ try {
149
+ yield client.connect();
150
+ }
151
+ catch (err) {
152
+ console.error(`[RedisStore][${dataModuleName}]: Error connecting to Redis:`, err);
153
+ if (failOnConnectionError) {
154
+ throw err;
155
+ }
156
+ client.disconnect();
157
+ }
158
+ return client;
159
+ });
160
+ }
161
+ createTransaction() {
162
+ const transactionId = (0, uuid_1.v4)();
163
+ this.transactions[transactionId] = this.client.multi();
164
+ return transactionId;
165
+ }
166
+ delete(handle, options) {
167
+ return __awaiter(this, void 0, void 0, function* () {
168
+ const { client, storeDelimiter, storeKey, transactions, useHashmap } = this;
169
+ const { transactionId } = options || {};
170
+ const handles = handle instanceof Array ? handle : [handle];
171
+ if (transactionId) {
172
+ const transaction = transactions[transactionId];
173
+ if (!transaction) {
174
+ throw new core_1.ApplicationError(`[RedisStoreService][Error]: Transaction with id "${transactionId}" not found.`);
175
+ }
176
+ transactions[transactionId] = useHashmap
177
+ ? transaction.hdel(storeKey, ...handles)
178
+ : transaction.del(handles.map(handleItem => `${storeKey}${storeDelimiter}${handleItem}`));
179
+ return 0;
180
+ }
181
+ return useHashmap
182
+ ? yield client.hdel(storeKey, ...handles)
183
+ : yield client.del(handles.map(handleItem => `${storeKey}${storeDelimiter}${handleItem}`));
184
+ });
185
+ }
186
+ endTransaction(transactionId) {
187
+ return __awaiter(this, void 0, void 0, function* () {
188
+ const { transactions } = this;
189
+ const transaction = transactions[transactionId];
190
+ if (!transaction) {
191
+ throw new core_1.ApplicationError(`[RedisStoreService][Error]: Transaction with id "${transactionId}" not found.`);
192
+ }
193
+ yield transaction.exec();
194
+ delete transactions[transactionId];
195
+ });
196
+ }
197
+ get(handle, options) {
198
+ return __awaiter(this, void 0, void 0, function* () {
199
+ const { client, storeDelimiter, storeKey, useHashmap } = this;
200
+ const { parseToJSON, withValues } = options || {};
201
+ if (withValues || typeof withValues === 'undefined') {
202
+ const value = useHashmap
203
+ ? yield client.hget(storeKey, handle)
204
+ : yield client.get(`${storeKey}${storeDelimiter}${handle}`);
205
+ return parseToJSON && typeof value === 'string' ? JSON.parse(value) : value;
206
+ }
207
+ return useHashmap
208
+ ? !!(yield client.hexists(storeKey, handle))
209
+ : !!(yield client.exists(`${storeKey}${storeDelimiter}${handle}`));
210
+ });
211
+ }
212
+ static getNodeList(host, port) {
213
+ const hostList = host.split(',');
214
+ const portList = `${port}`.split(',');
215
+ return hostList.map((hostAddress, hostIndex) => {
216
+ return { host: hostAddress, port: parseInt(portList[hostIndex] || portList[0], 10) };
217
+ });
218
+ }
219
+ scan(handle, options) {
220
+ return __awaiter(this, void 0, void 0, function* () {
221
+ const { client, storeDelimiter, storeKey, useHashmap } = this;
222
+ const { count, cursor: optCursor, parseToJSON, scanAll, withValues } = options;
223
+ const getValues = typeof withValues === 'undefined' || withValues === true;
224
+ const values = [];
225
+ let cursor = 0;
226
+ let keys = [];
227
+ let parsedValues = [];
228
+ if (scanAll) {
229
+ if (useHashmap) {
230
+ while (true) {
231
+ const [newCursor, newKeys] = yield client.hscan(storeKey, cursor, 'MATCH', handle, ...(typeof count !== 'undefined' ? ['COUNT', count] : []));
232
+ cursor = parseInt(newCursor, 10);
233
+ if (getValues) {
234
+ for (const i in newKeys) {
235
+ const key = newKeys[i];
236
+ const value = yield client.hget(storeKey, key);
237
+ if (value === null) {
238
+ continue;
239
+ }
240
+ values.push({ field: key, value });
241
+ }
242
+ }
243
+ else {
244
+ keys = keys.concat(newKeys);
245
+ }
246
+ if (cursor === 0) {
247
+ break;
248
+ }
249
+ }
250
+ }
251
+ else {
252
+ while (true) {
253
+ const [newCursor, newKeys] = yield client.scan(cursor, 'MATCH', `${storeKey}${storeDelimiter}${handle}`);
254
+ cursor = parseInt(newCursor, 10);
255
+ if (getValues) {
256
+ for (const i in newKeys) {
257
+ const key = newKeys[i];
258
+ const value = yield client.get(key);
259
+ if (value === null) {
260
+ continue;
261
+ }
262
+ values.push({ field: key, value });
263
+ }
264
+ }
265
+ else {
266
+ keys = keys.concat(newKeys);
267
+ }
268
+ if (cursor === 0) {
269
+ break;
270
+ }
271
+ }
272
+ }
273
+ }
274
+ else {
275
+ if (typeof count === 'undefined') {
276
+ throw new core_1.ApplicationError('The "count" options is required when the "findAll" options is not positive.');
277
+ }
278
+ if (useHashmap) {
279
+ const [newCursor, newKeys] = yield client.hscan(storeKey, optCursor || 0, 'MATCH', handle, 'COUNT', count);
280
+ cursor = parseInt(newCursor, 10);
281
+ if (getValues) {
282
+ for (const i in newKeys) {
283
+ const key = newKeys[i];
284
+ const value = yield client.get(key);
285
+ if (value === null) {
286
+ continue;
287
+ }
288
+ values.push({ field: key, value });
289
+ }
290
+ }
291
+ else {
292
+ keys = keys.concat(newKeys);
293
+ }
294
+ }
295
+ else {
296
+ const [newCursor, newKeys] = yield client.scan(optCursor || 0, 'MATCH', `${storeKey}${storeDelimiter}${handle}`, 'COUNT', count);
297
+ cursor = parseInt(newCursor, 10);
298
+ if (getValues) {
299
+ for (const i in newKeys) {
300
+ const key = newKeys[i];
301
+ const value = yield client.get(key);
302
+ if (value === null) {
303
+ continue;
304
+ }
305
+ values.push({ field: key, value });
306
+ }
307
+ }
308
+ else {
309
+ keys = keys.concat(newKeys);
310
+ }
311
+ }
312
+ }
313
+ if (parseToJSON) {
314
+ for (const i in values) {
315
+ const { value } = values[i];
316
+ if (typeof value === 'string') {
317
+ parsedValues.push(JSON.parse(value));
318
+ continue;
319
+ }
320
+ parsedValues.push(value);
321
+ }
322
+ }
323
+ else {
324
+ parsedValues = values.map(({ value }) => value);
325
+ }
326
+ return { cursor, values: parsedValues };
327
+ });
328
+ }
329
+ set(handle, entry, options) {
330
+ return __awaiter(this, void 0, void 0, function* () {
331
+ const { client, defaultTTL, storeDelimiter, storeKey, transactions, useHashmap } = this;
332
+ const { transactionId, ttl } = options || {};
333
+ const actualTTL = ttl || defaultTTL;
334
+ const valueToSet = typeof entry !== 'string' ? JSON.stringify(entry) : entry;
335
+ if (transactionId) {
336
+ const transaction = transactions[transactionId];
337
+ if (!transaction) {
338
+ throw new core_1.ApplicationError(`[RedisStoreService][Error]: Transaction with id "${transactionId}" not found.`);
339
+ }
340
+ if (useHashmap) {
341
+ transactions[transactionId] = transaction.hset(this.storeKey, handle, valueToSet);
342
+ }
343
+ else {
344
+ const fullKey = `${storeKey}${storeDelimiter}${handle}`;
345
+ transactions[transactionId] = transaction.set(fullKey, valueToSet);
346
+ if (actualTTL) {
347
+ transactions[transactionId] = transactions[transactionId].expire(fullKey, actualTTL, 'NX');
348
+ }
349
+ }
350
+ return;
351
+ }
352
+ let result;
353
+ if (useHashmap) {
354
+ result = yield client.hset(storeKey, handle, valueToSet);
355
+ }
356
+ else {
357
+ const fullKey = `${storeKey}${storeDelimiter}${handle}`;
358
+ result = yield client.set(fullKey, valueToSet);
359
+ if (actualTTL) {
360
+ yield client.expire(fullKey, actualTTL, 'NX');
361
+ }
362
+ }
363
+ if (result !== 'OK' && result !== 1) {
364
+ throw new core_1.ApplicationError(`[RedisStoreService][Error]: Value not set for handle "${handle}". Result: ${result}`);
365
+ }
366
+ });
367
+ }
368
+ };
369
+ exports.RedisStoreService = RedisStoreService;
370
+ exports.RedisStoreService = RedisStoreService = RedisStoreService_1 = __decorate([
371
+ (0, common_1.Injectable)(),
372
+ __param(1, (0, common_1.Inject)(definitions_1.Constants.REDIS_CLIENT)),
373
+ __param(2, (0, common_1.Inject)(core_1.Constants.PERSISTANCE_MODULE_NAME)),
374
+ __metadata("design:paramtypes", [core_1.ConfigProviderService, Object, String])
375
+ ], RedisStoreService);
376
+ //# sourceMappingURL=redis.store.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.store.service.js","sourceRoot":"","sources":["../../src/store/redis.store.service.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "@node-c/data-redis",
3
+ "version": "1.0.0-alpha62",
4
+ "license": "MIT",
5
+ "main": "dist/index.js",
6
+ "scripts": {
7
+ "build": "tsc -p tsconfig.build.json",
8
+ "build:clean": "rm -rf dist/* && rm -f *.tsbuildinfo && npm run build",
9
+ "check-types": "tsc -p tsconfig.build.json --noEmit",
10
+ "dev": "tsc -p tsconfig.build.json --watch",
11
+ "lint": "eslint src",
12
+ "publish-package": "npm run build:clean && npm publish --access public",
13
+ "test": "vitest --config src/vitest.config.ts",
14
+ "test:coverage": "vitest --config src/vitest.config.ts --coverage"
15
+ },
16
+ "dependencies": {
17
+ "@nestjs/common": "^10.4.9",
18
+ "@node-c/core": "^1.0.0-alpha62",
19
+ "class-validator": "^0.14.1",
20
+ "ioredis": "^5.6.1",
21
+ "iovalkey": "^0.3.3",
22
+ "uuid": "^11.0.5"
23
+ },
24
+ "devDependencies": {
25
+ "@nestjs/testing": "^10.4.15"
26
+ }
27
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "outDir": "dist",
5
+ "rootDir": "src"
6
+ },
7
+ "include": ["src"],
8
+ "exclude": ["node_modules", "dist", "src/**/*/*.spec.ts", "src/*.spec.ts", "src/vitest.config.ts"]
9
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "outDir": "dist",
5
+ "rootDir": "src"
6
+ },
7
+ "include": ["src"],
8
+ "exclude": ["node_modules", "dist"]
9
+ }