@hapiness/redis
Version:
Hapiness module for redis
43 lines • 1.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const core_1 = require("@hapiness/core");
const Observable_1 = require("rxjs/Observable");
const managers_1 = require("./managers");
const debug = require('debug')('hapiness:redis');
class RedisExt {
static setConfig(config) {
return {
token: RedisExt,
config
};
}
/**
* Initilization of the extension
* Create the manager instance
*
* @param {CoreModule} module
* @param {RedisConfig} config
*
* @returns Observable
*/
onExtensionLoad(module, config) {
debug('load redis extension', config);
return Observable_1.Observable
.of(new managers_1.RedisClientManager(config))
.switchMap(redisClient => redisClient.createClient().map(() => redisClient))
.map(redisClient => ({
instance: this,
token: RedisExt,
value: redisClient
}));
}
onShutdown(module, redisClient) {
debug('SIGTERM received, shutdown redis');
return {
priority: core_1.ExtensionShutdownPriority.NORMAL,
resolver: redisClient.clientObs.quit()
};
}
}
exports.RedisExt = RedisExt;
//# sourceMappingURL=redis.extension.js.map