UNPKG

illustrator.js

Version:

JavaScript image processing library

45 lines (44 loc) 1.18 kB
"use strict"; 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;