UNPKG

@minimaltech/node-infra

Version:

Minimal Technology NodeJS Infrastructure - Loopback 4 Framework

128 lines 4.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RedisConnector = void 0; const helpers_1 = require("../../helpers"); const utilities_1 = require("../../utilities"); class RedisConnector { constructor(opts) { this.settings = opts.settings; } initialize(opts) { this.redisHelper = new helpers_1.RedisHelper(Object.assign(Object.assign({}, this.settings), { port: (0, utilities_1.int)(this.settings.port), onInitialized: () => { opts.context.initialized = true; opts.context.emit('initialized'); }, onConnected: () => { opts.context.connected = true; opts.context.emit('connected'); }, onReady: () => { opts.context.ready = true; opts.context.emit('ready'); }, onError: ({ error }) => { opts.context.emit('error', error); } })); } delete(_modelClass, key, _options) { return new Promise((resolve, reject) => { this.redisHelper.client .del(key) .then(() => resolve(true)) .catch(reject); }); } deleteAll(_modelClass, _options) { return new Promise((resolve, reject) => { this.redisHelper.client .dbsize() .then(size => { this.redisHelper.client .flushdb() .then(() => resolve(size)) .catch(reject); }) .catch(reject); }); } get(_modelClass, key, options) { return new Promise((resolve, reject) => { var _a; const transform = (rs) => { return rs; }; this.redisHelper .get({ key, transform: (_a = options === null || options === void 0 ? void 0 : options.transform) !== null && _a !== void 0 ? _a : transform, }) .then(rs => resolve(rs)) .catch(reject); }); } set(_modelClass, key, value, options) { return new Promise((resolve, reject) => { this.redisHelper .set({ key, value, options }) .then(() => resolve(true)) .catch(reject); }); } expire(_modelClass, _key, _ttl, _options) { throw new Error('Method not implemented.'); } ttl(_modelClass, key, _ttl, _options) { return new Promise((resolve, reject) => { this.redisHelper.client .ttl(key) .then(rs => resolve(rs)) .catch(reject); }); } keys(_modelClass, _options) { return new Promise((resolve, reject) => { this.redisHelper.client .keys('*') .then(rs => resolve(rs)) .catch(reject); }); } iterateKeys(_modelClass, _filter, _options) { throw new Error('Method not implemented.'); } connect() { return new Promise(resolve => { this.redisHelper.connect().then(() => { resolve(); }); }); } disconnect() { return new Promise((resolve, reject) => { this.redisHelper .disconnect() .then(() => { resolve(); }) .catch(reject); }); } ping() { return new Promise((resolve, reject) => { this.redisHelper.client .ping() .then(() => { resolve(); }) .catch(reject); }); } execute(...args) { if (!args.length || args.length > 3) { throw (0, utilities_1.getError)({ message: '[execute] Invalid method signature | args: [0] command name [1] array of parameters [2] extra options', }); } const [command, parameters] = args; return this.redisHelper.execute(command.toLowerCase(), parameters); } } exports.RedisConnector = RedisConnector; //# sourceMappingURL=connector.js.map