redis-time-series-ts
Version:
Javascript RedisTimeSeries client
46 lines (45 loc) • 1.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RedisTimeSeriesFactory = void 0;
const Redis = require("ioredis");
const redisTimeSeries_1 = require("../redisTimeSeries");
const requestParamsDirector_1 = require("../builder/requestParamsDirector");
const render_1 = require("./render");
const commandProvider_1 = require("../command/commandProvider");
const commandInvoker_1 = require("../command/commandInvoker");
const commandReceiver_1 = require("../command/commandReceiver");
const requestParamsBuilder_1 = require("../builder/requestParamsBuilder");
/**
* Set redis connection options and return a factory object that create a clients connection
*/
class RedisTimeSeriesFactory {
/**
* Set connection options
*
* @param options Connection options for the redis database
* @returns factory object that can be used to create a client connection
*/
constructor(options = {}) {
this.options = {
port: 6379,
host: "127.0.0.1",
db: 0
};
this.options = Object.assign(Object.assign({}, this.options), options);
}
/**
* Create a client connection to the host
*
* @returns The client connection object
*/
create() {
const commandProvider = new commandProvider_1.CommandProvider(this.getRedisClient());
const commandReceiver = new commandReceiver_1.CommandReceiver(commandProvider.getRTSClient());
const director = new requestParamsDirector_1.RequestParamsDirector(new requestParamsBuilder_1.RequestParamsBuilder());
return new redisTimeSeries_1.RedisTimeSeries(commandProvider, commandReceiver, new commandInvoker_1.CommandInvoker(), director, new render_1.RenderFactory());
}
getRedisClient() {
return new Redis(this.options);
}
}
exports.RedisTimeSeriesFactory = RedisTimeSeriesFactory;