UNPKG

dns-cached

Version:
1 lines 1.32 kB
'use strict';Object.defineProperty(exports,'__esModule',{value:!0}),exports.CachedDNS=void 0;var _events=require('events'),_events2=_interopRequireDefault(_events),_cache=require('../cache'),_cache2=_interopRequireDefault(_cache),_memoizeDns=require('./memoize-dns');function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}class CachedDNS extends _events2.default{constructor(a,b){var c;if(c=super(),CachedDNS.$instance)throw new Error('CachedDNS Class already has an instance!');CachedDNS.$instance=this,this.methods=null,CachedDNS.cacheObj=(0,_cache2.default)(a,b),CachedDNS.cacheObj.on('flush-complete',function(a){c.emit('flush-cache',a)})}overrideMethods(a){var b=(0,_memoizeDns.getAllDnsMethods)();if(!a)this.methods=b;else if('string'==typeof a){if(b.includes(a))this.methods=[a];else throw new Error(`Invalid DNS Method - '${a}'`);}else if(!Array.isArray(a))throw new TypeError('Expected a string or an array of strings');else if(a.every(function(a){return b.includes(a)}))this.methods=a;else throw new Error('An invalid dns method was passed');return(0,_memoizeDns.memoizeDnsMethods)(this.methods,CachedDNS.cacheObj),!0}flush(){CachedDNS.cacheObj.flush=!0,CachedDNS.cacheObj.flushCache()}}exports.CachedDNS=CachedDNS;var dnsCached=function(a,b){return new CachedDNS(a,b)};exports.default=dnsCached;