@d1g1tal/collections
Version:
JavaScript Collections ES Modules
3 lines (2 loc) • 809 B
JavaScript
import{List as n}from"./list.js";class d extends Map{set(e,t){return super.set(e,t instanceof n?t:(super.get(e)??new n).add(t)),this}getOrInsert(e,t){const r=super.get(e);return r!==void 0?r:(super.set(e,t instanceof n?t:(super.get(e)??new n).add(t)),t)}getOrInsertComputed(e,t){const r=super.get(e);if(r!==void 0)return r;const s=t(e);return super.set(e,s instanceof n?s:(super.get(e)??new n).add(s)),s}find(e,t){const r=this.get(e);if(r!==void 0)return Array.from(r).find(t)}hasValue(e,t){const r=super.get(e);return r?r.contains(t):!1}deleteValue(e,t){if(t===void 0)return this.delete(e);const r=super.get(e);if(r)try{const s=!!r.remove(t);return r.size===0&&super.delete(e),s}catch{return!1}return!1}get[Symbol.toStringTag](){return"MultiMap"}}export{d as MultiMap};
//# sourceMappingURL=multi-map.js.map