UNPKG

dnsd-name

Version:

Dynamic authoritative name server for Iris services

48 lines (39 loc) 932 B
var LruCache = require('lru-cache'); var LruWrapper = function () { var lru; var passiveLru = { get: function () { }, set: function () { }, del: function () { } }; var activeLru; Object.defineProperty(this, 'enabled', { get: function () { return lru === activeLru; }, set: function (v) { if (v) { lru = activeLru = activeLru || new LruCache({ max: v.size || 0, maxAge: (v.ttl || 0) * 1000 }); } else { lru = passiveLru; } } }); this.enabled = false; this.get = function (k) { return lru.get(k); }; this.del = function (k) { return lru.del(k); }; this.set = function (k, v) { return lru.set(k, v); }; }; module.exports = LruWrapper;