UNPKG

@pomofficial/redis

Version:

Pomegranate Redis Plugin

67 lines 2.71 kB
"use strict"; /** * @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