@pomofficial/redis
Version:
Pomegranate Redis Plugin
67 lines • 2.71 kB
JavaScript
;
/**
* @file index
* @author Jim Bulkowski <jim.b@paperelectron.com>
* @project sequelize-core
* @license MIT {@link http://opensource.org/licenses/MIT}
*/
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const plugin_tools_1 = require("@pomegranate/plugin-tools");
const redis_1 = require("redis");
const bluebird_1 = __importDefault(require("bluebird"));
__export(require("redis"));
exports.Plugin = plugin_tools_1.CreatePlugin('merge')
.variables({
host: 'localhost',
port: 6379,
password: null,
clientOptions: {}
})
.configuration({
name: 'Redis',
injectableParam: 'Redis',
})
.hooks({
load: (Injector, PluginVariables, PluginLateError, PluginLogger) => __awaiter(this, void 0, void 0, function* () {
let client = bluebird_1.default.promisifyAll(redis_1.createClient(PluginVariables.port, PluginVariables.host, PluginVariables.clientOptions));
client.on('error', (err) => {
PluginLateError(err);
});
return new bluebird_1.default((resolve, reject) => {
client.on('ready', () => {
resolve(client);
});
});
}),
start: (PluginVariables, PluginLogger, Redis) => __awaiter(this, void 0, void 0, function* () {
PluginLogger.log('Ensuring connection.', 2);
if (!Redis.connected) {
throw new Error('Redis client is not connected at start hook.');
}
PluginLogger.log('connection available.', 2);
}),
stop: (PluginLogger, Redis) => __awaiter(this, void 0, void 0, function* () {
return new bluebird_1.default((resolve) => {
PluginLogger.log('Closing connection.');
Redis.on('end', () => {
resolve(true);
});
Redis.quit();
});
})
});
//# sourceMappingURL=index.js.map