UNPKG

redis-time-series-ts

Version:
46 lines (45 loc) 1.9 kB
"use strict"; 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;