@m-ld/gateway
Version:
m-ld gateway for services
20 lines • 1.46 kB
JavaScript
import LRUCache from 'lru-cache';
import LOG from 'loglevel';
/**
* All mutating access to the cache should be serialised with m-ld states
*/
export class SubdomainCache extends LRUCache {
constructor(config) {
super({
max: config.subdomainCacheSize ?? 100,
dispose(_name, sdc) {
sdc.close().catch(err => LOG.warn(err));
},
});
}
async clear() {
await Promise.all(this.values().map(sdc => sdc.close()));
super.reset();
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3ViZG9tYWluQ2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmVyL1N1YmRvbWFpbkNhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sUUFBUSxNQUFNLFdBQVcsQ0FBQztBQUVqQyxPQUFPLEdBQUcsTUFBTSxVQUFVLENBQUM7QUFHM0I7O0dBRUc7QUFDSCxNQUFNLE9BQU8sY0FBZSxTQUFRLFFBQWdDO0lBQ2xFLFlBQVksTUFBcUI7UUFDL0IsS0FBSyxDQUFDO1lBQ0osR0FBRyxFQUFFLE1BQU0sQ0FBQyxrQkFBa0IsSUFBSSxHQUFHO1lBQ3JDLE9BQU8sQ0FBQyxLQUFhLEVBQUUsR0FBbUI7Z0JBQ3hDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDMUMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RCxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEIsQ0FBQztDQUNGIn0=