UNPKG

map-ext

Version:
22 lines 1.63 kB
export class WeakMapExt extends WeakMap { constructor(cb) { super(); this.cb = cb; } } export class MapExt extends Map { constructor(cb) { super(); this.cb = cb; } } const factory = (prototype) => function get(key) { if (this.has(key)) return prototype.call(this, key); const v = this.cb(key); this.set(key, v); return v; }; WeakMapExt.prototype.get = factory(WeakMap.prototype.get); MapExt.prototype.get = factory(Map.prototype.get); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLFVBQWdDLFNBQVEsT0FBYTtJQUM5RCxZQUE2QixFQUFlO1FBQ3hDLEtBQUssRUFBRSxDQUFBO1FBRGtCLE9BQUUsR0FBRixFQUFFLENBQWE7SUFFNUMsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLE1BQWEsU0FBUSxHQUFTO0lBRXZDLFlBQTZCLEVBQWU7UUFDeEMsS0FBSyxFQUFFLENBQUE7UUFEa0IsT0FBRSxHQUFGLEVBQUUsQ0FBYTtJQUU1QyxDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sR0FBRyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRztJQUMzQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1FBQUUsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNwRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLE9BQU8sQ0FBQyxDQUFDO0FBQ2IsQ0FBQyxDQUFBO0FBRUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDMUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMifQ==