illustrator.js
Version:
JavaScript image processing library
45 lines (44 loc) • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DataSource = void 0;
class DataSource {
constructor() {
this.data = [];
}
loadData(data) {
if (!Array.isArray(data))
throw new TypeError("data source must be array");
this.data = data;
}
addData(data) {
this.data.push(data);
}
removeData(nameOrFn) {
if (typeof nameOrFn === "string")
this.data = this.data.filter((ds) => ds.name === nameOrFn);
if (typeof nameOrFn === "function")
this.data = this.data.filter(nameOrFn);
throw new Error("invalid parameter");
}
get(nameOrFn) {
return this.data.find(typeof nameOrFn === "function" ? nameOrFn : (fn) => fn.name === nameOrFn);
}
toJSON() {
return this.data;
}
toArray() {
return this.data;
}
toString() {
return `DataSource<${this.data.length}>`;
}
clone() {
const ds = new DataSource();
ds.loadData(this.data.slice());
return ds;
}
*[Symbol.iterator]() {
yield* this.data ?? [];
}
}
exports.DataSource = DataSource;