UNPKG

@dooboostore/dom-render

Version:
106 lines (105 loc) 2.92 kB
var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var Appender_exports = {}; __export(Appender_exports, { Appender: () => Appender }); module.exports = __toCommonJS(Appender_exports); 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; } } //# sourceMappingURL=Appender.js.map