UNPKG

vis-data

Version:

Manage unstructured data using DataSet. Add, update, and remove data, and listen for changes in the data.

184 lines 6.19 kB
import { Id } from "./data-interface"; /** * Data stream * * @remarks * [[DataStream]] offers an always up to date stream of items from a [[DataSet]] or [[DataView]]. * That means that the stream is evaluated at the time of iteration, conversion to another data type or when [[cache]] is called, not when the [[DataStream]] was created. * Multiple invocations of for example [[toItemArray]] may yield different results (if the data source like for example [[DataSet]] gets modified). * * @typeparam Item - The item type this stream is going to work with. */ export declare class DataStream<Item> implements Iterable<[Id, Item]> { private readonly _pairs; /** * Create a new data stream. * * @param _pairs - The id, item pairs. */ constructor(_pairs: Iterable<[Id, Item]>); /** * Return an iterable of key, value pairs for every entry in the stream. */ [Symbol.iterator](): IterableIterator<[Id, Item]>; /** * Return an iterable of key, value pairs for every entry in the stream. */ entries(): IterableIterator<[Id, Item]>; /** * Return an iterable of keys in the stream. */ keys(): IterableIterator<Id>; /** * Return an iterable of values in the stream. */ values(): IterableIterator<Item>; /** * Return an array containing all the ids in this stream. * * @remarks * The array may contain duplicities. * * @returns The array with all ids from this stream. */ toIdArray(): Id[]; /** * Return an array containing all the items in this stream. * * @remarks * The array may contain duplicities. * * @returns The array with all items from this stream. */ toItemArray(): Item[]; /** * Return an array containing all the entries in this stream. * * @remarks * The array may contain duplicities. * * @returns The array with all entries from this stream. */ toEntryArray(): [Id, Item][]; /** * Return an object map containing all the items in this stream accessible by ids. * * @remarks * In case of duplicate ids (coerced to string so `7 == '7'`) the last encoutered appears in the returned object. * * @returns The object map of all id → item pairs from this stream. */ toObjectMap(): Record<Id, Item>; /** * Return a map containing all the items in this stream accessible by ids. * * @returns The map of all id → item pairs from this stream. */ toMap(): Map<Id, Item>; /** * Return a set containing all the (unique) ids in this stream. * * @returns The set of all ids from this stream. */ toIdSet(): Set<Id>; /** * Return a set containing all the (unique) items in this stream. * * @returns The set of all items from this stream. */ toItemSet(): Set<Item>; /** * Cache the items from this stream. * * @remarks * This method allows for items to be fetched immediatelly and used (possibly multiple times) later. * It can also be used to optimize performance as [[DataStream]] would otherwise reevaluate everything upon each iteration. * * ## Example * ```javascript * const ds = new DataSet([…]) * * const cachedStream = ds.stream() * .filter(…) * .sort(…) * .map(…) * .cached(…) // Data are fetched, processed and cached here. * * ds.clear() * chachedStream // Still has all the items. * ``` * * @returns A new [[DataStream]] with cached items (detached from the original [[DataSet]]). */ cache(): DataStream<Item>; /** * Get the distinct values of given property. * * @param callback - The function that picks and possibly converts the property. * * @typeparam T - The type of the distinct value. * * @returns A set of all distinct properties. */ distinct<T>(callback: (item: Item, id: Id) => T): Set<T>; /** * Filter the items of the stream. * * @param callback - The function that decides whether an item will be included. * * @returns A new data stream with the filtered items. */ filter(callback: (item: Item, id: Id) => boolean): DataStream<Item>; /** * Execute a callback for each item of the stream. * * @param callback - The function that will be invoked for each item. */ forEach(callback: (item: Item, id: Id) => boolean): void; /** * Map the items into a different type. * * @param callback - The function that does the conversion. * * @typeparam Mapped - The type of the item after mapping. * * @returns A new data stream with the mapped items. */ map<Mapped>(callback: (item: Item, id: Id) => Mapped): DataStream<Mapped>; /** * Get the item with the maximum value of given property. * * @param callback - The function that picks and possibly converts the property. * * @returns The item with the maximum if found otherwise null. */ max(callback: (item: Item, id: Id) => number): Item | null; /** * Get the item with the minimum value of given property. * * @param callback - The function that picks and possibly converts the property. * * @returns The item with the minimum if found otherwise null. */ min(callback: (item: Item, id: Id) => number): Item | null; /** * Reduce the items into a single value. * * @param callback - The function that does the reduction. * @param accumulator - The initial value of the accumulator. * * @typeparam T - The type of the accumulated value. * * @returns The reduced value. */ reduce<T>(callback: (accumulator: T, item: Item, id: Id) => T, accumulator: T): T; /** * Sort the items. * * @param callback - Item comparator. * * @returns A new stream with sorted items. */ sort(callback: (itemA: Item, itemB: Item, idA: Id, idB: Id) => number): DataStream<Item>; } //# sourceMappingURL=data-stream.d.ts.map