@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.
- package/LICENSE +1 -0
- package/README.md +4 -0
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/clover.xml +580 -0
- package/coverage/common/definitions/common.constants.ts.html +121 -0
- package/coverage/common/definitions/index.html +131 -0
- package/coverage/common/definitions/index.ts.html +88 -0
- package/coverage/coverage-final.json +13 -0
- package/coverage/entityService/index.html +131 -0
- package/coverage/entityService/index.ts.html +91 -0
- package/coverage/entityService/redis.entity.service.ts.html +454 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +176 -0
- package/coverage/module/index.html +131 -0
- package/coverage/module/index.ts.html +91 -0
- package/coverage/module/redis.module.ts.html +169 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/repository/index.html +146 -0
- package/coverage/repository/index.ts.html +94 -0
- package/coverage/repository/redis.repository.module.ts.html +181 -0
- package/coverage/repository/redis.repository.service.ts.html +784 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +196 -0
- package/coverage/store/index.html +146 -0
- package/coverage/store/index.ts.html +94 -0
- package/coverage/store/redis.store.module.ts.html +181 -0
- package/coverage/store/redis.store.service.ts.html +586 -0
- package/dist/common/definitions/common.constants.d.ts +6 -0
- package/dist/common/definitions/common.constants.js +11 -0
- package/dist/common/definitions/common.constants.js.map +1 -0
- package/dist/common/definitions/index.d.ts +1 -0
- package/dist/common/definitions/index.js +18 -0
- package/dist/common/definitions/index.js.map +1 -0
- package/dist/entityService/index.d.ts +2 -0
- package/dist/entityService/index.js +19 -0
- package/dist/entityService/index.js.map +1 -0
- package/dist/entityService/redis.entity.service.d.ts +19 -0
- package/dist/entityService/redis.entity.service.definitions.d.ts +44 -0
- package/dist/entityService/redis.entity.service.definitions.js +3 -0
- package/dist/entityService/redis.entity.service.definitions.js.map +1 -0
- package/dist/entityService/redis.entity.service.js +231 -0
- package/dist/entityService/redis.entity.service.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/module/index.d.ts +2 -0
- package/dist/module/index.js +19 -0
- package/dist/module/index.js.map +1 -0
- package/dist/module/redis.module.d.ts +5 -0
- package/dist/module/redis.module.definitions.d.ts +16 -0
- package/dist/module/redis.module.definitions.js +3 -0
- package/dist/module/redis.module.definitions.js.map +1 -0
- package/dist/module/redis.module.js +30 -0
- package/dist/module/redis.module.js.map +1 -0
- package/dist/repository/index.d.ts +3 -0
- package/dist/repository/index.js +20 -0
- package/dist/repository/index.js.map +1 -0
- package/dist/repository/redis.repository.definitions.d.ts +74 -0
- package/dist/repository/redis.repository.definitions.js +20 -0
- package/dist/repository/redis.repository.definitions.js.map +1 -0
- package/dist/repository/redis.repository.module.d.ts +5 -0
- package/dist/repository/redis.repository.module.js +43 -0
- package/dist/repository/redis.repository.module.js.map +1 -0
- package/dist/repository/redis.repository.service.d.ts +39 -0
- package/dist/repository/redis.repository.service.js +496 -0
- package/dist/repository/redis.repository.service.js.map +1 -0
- package/dist/store/index.d.ts +3 -0
- package/dist/store/index.js +20 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/redis.store.definitions.d.ts +21 -0
- package/dist/store/redis.store.definitions.js +3 -0
- package/dist/store/redis.store.definitions.js.map +1 -0
- package/dist/store/redis.store.module.d.ts +5 -0
- package/dist/store/redis.store.module.js +51 -0
- package/dist/store/redis.store.module.js.map +1 -0
- package/dist/store/redis.store.service.d.ts +30 -0
- package/dist/store/redis.store.service.js +376 -0
- package/dist/store/redis.store.service.js.map +1 -0
- package/package.json +27 -0
- package/tsconfig.build.json +9 -0
- 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 @@
|
|
|
1
|
+
{"version":3,"file":"redis.store.definitions.js","sourceRoot":"","sources":["../../src/store/redis.store.definitions.ts"],"names":[],"mappings":""}
|
|
@@ -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
|
+
}
|