map-ext
Version:
27 lines • 1.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MapExt = exports.WeakMapExt = void 0;
class WeakMapExt extends WeakMap {
constructor(cb) {
super();
this.cb = cb;
}
}
exports.WeakMapExt = WeakMapExt;
class MapExt extends Map {
constructor(cb) {
super();
this.cb = cb;
}
}
exports.MapExt = MapExt;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsTUFBYSxVQUFnQyxTQUFRLE9BQWE7SUFDOUQsWUFBNkIsRUFBZTtRQUN4QyxLQUFLLEVBQUUsQ0FBQTtRQURrQixPQUFFLEdBQUYsRUFBRSxDQUFhO0lBRTVDLENBQUM7Q0FDSjtBQUpELGdDQUlDO0FBRUQsTUFBYSxNQUFhLFNBQVEsR0FBUztJQUV2QyxZQUE2QixFQUFlO1FBQ3hDLEtBQUssRUFBRSxDQUFBO1FBRGtCLE9BQUUsR0FBRixFQUFFLENBQWE7SUFFNUMsQ0FBQztDQUNKO0FBTEQsd0JBS0M7QUFFRCxNQUFNLE9BQU8sR0FBRyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRztJQUMzQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1FBQUUsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNwRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLE9BQU8sQ0FBQyxDQUFDO0FBQ2IsQ0FBQyxDQUFBO0FBRUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDMUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMifQ==