UNPKG

@dooboostore/dom-render

Version:
87 lines (86 loc) 2.02 kB
class Appender { constructor(...defaultDatas) { this.length = 0; this.keyMap = /* @__PURE__ */ new Map(); this.isAppender = true; this.push(...defaultDatas); } [Symbol.iterator]() { const items = this.getAll(); let idx = 0; return { next(value) { let r = { value: void 0, done: true }; if (items.length > idx) { r = { value: items[idx], done: false }; } idx++; return r; } }; } get(key) { const o = this.keyMap.get(key); if (o !== void 0) { return this[o]; } return void 0; } set(key, ...v) { const o = this.keyMap.get(key); if (o !== void 0) { this[o] = v; } else { this.keyMap.set(key, this.length); this.push(...v); } } delete(key) { const o = this.keyMap.get(key); if (o !== void 0) { this[o] = this[o].map((it) => void 0); this.keyMap.delete(key); } } getAll() { return this.getAlls().flat(); } getAlls() { const map = Array.from({ length: this.length }).filter((it, idx) => this[idx]).map((it, idx) => this[idx]); return map; } push(...items) { if (items && items.length > 0) { items.index = this.length; this[this.length++] = items; } } // delete(idx: number): void { // // if (idx in this) { // // console.log('---------dele',idx) // // delete this[idx]; // // this.length = this.length - 1; // // } // this.length = this.length - 1; // } // 인덱스 접근을 위한 getter와 setter 추가 // get(index: number): T | undefined { // return this.storage[index]; // } // // set(index: number, value: T): void { // this.storage[index] = value; // this.length = Math.max(this.length, index + 1); // } clear() { for (let i = 0; i < this.length; i++) { delete this[i]; } this.keyMap.clear(); this.length = 0; } } export { Appender }; //# sourceMappingURL=Appender.js.map