const cache = require('memory-cache') ,Slack = require('./slack.js').Slack; function SlackManager() { } var instance = new SlackManager(); SlackManager.prototype.getScope = function() { return [ "client" ]; } SlackManager.prototype.lazyGet = function(sess) { var key = "SLACK_" +sess.sessId ,val = cache.get(key); if (val) { cache.put(key, val, 1000 * 60 * 60 * 24, function(key, val) { instance.removed(key, val); }); } else { val = new Slack(sess); cache.put(key, val, 1000 * 60 * 60 * 24, function(key, val) { instance.removed(key, val); }); } return val; } SlackManager.prototype.removed = function(key, slack) { slack.close(); } module.exports.SlackManager = instance;