"use strict";
|
Object.defineProperty(exports, "__esModule", { value: true });
|
var RedisQueryResultCache_1 = require("./RedisQueryResultCache");
|
var DbQueryResultCache_1 = require("./DbQueryResultCache");
|
/**
|
* Caches query result into Redis database.
|
*/
|
var QueryResultCacheFactory = /** @class */ (function () {
|
// -------------------------------------------------------------------------
|
// Constructor
|
// -------------------------------------------------------------------------
|
function QueryResultCacheFactory(connection) {
|
this.connection = connection;
|
}
|
// -------------------------------------------------------------------------
|
// Public Methods
|
// -------------------------------------------------------------------------
|
/**
|
* Creates a new query result cache based on connection options.
|
*/
|
QueryResultCacheFactory.prototype.create = function () {
|
if (!this.connection.options.cache)
|
throw new Error("To use cache you need to enable it in connection options by setting cache: true or providing some caching options. Example: { host: ..., username: ..., cache: true }");
|
if (this.connection.options.cache.type === "redis")
|
return new RedisQueryResultCache_1.RedisQueryResultCache(this.connection, "redis");
|
if (this.connection.options.cache.type === "ioredis")
|
return new RedisQueryResultCache_1.RedisQueryResultCache(this.connection, "ioredis");
|
if (this.connection.options.cache.type === "ioredis/cluster")
|
return new RedisQueryResultCache_1.RedisQueryResultCache(this.connection, "ioredis/cluster");
|
return new DbQueryResultCache_1.DbQueryResultCache(this.connection);
|
};
|
return QueryResultCacheFactory;
|
}());
|
exports.QueryResultCacheFactory = QueryResultCacheFactory;
|
|
//# sourceMappingURL=QueryResultCacheFactory.js.map
|