@dooboostore/dom-render
Version:
html view template engine
106 lines (105 loc) • 2.92 kB
JavaScript
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