@minimaltech/node-infra
Version:
Minimal Technology NodeJS Infrastructure - Loopback 4 Framework
128 lines • 4.22 kB
JavaScript
;
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