d3-dag
Version:
Layout algorithms for visualizing directed acylic graphs.
48 lines (47 loc) • 2.57 kB
TypeScript
/** iterable callback that maps a value into another */
export interface MapCallback<in T, out S> {
(element: T, index: number): S;
}
/** iterable callback that maps a value into another */
export interface GuardCallback<in T, R extends T> {
(element: T, index: number): element is R;
}
/** reduce callback */
export interface ReduceCallback<in T, in out S> {
(accumulator: S, currentValue: T, index: number): S;
}
/** filter guard callback */
export interface FilterGuardCallback<in T, out S extends T> {
(element: T, index: number): element is S;
}
/** elements with their zero based index */
export declare function entries<T>(iter: Iterable<T>): IterableIterator<[number, T]>;
/** iterable flat map */
export declare function flatMap<T, S>(iter: Iterable<T>, callback: MapCallback<T, Iterable<S>>): IterableIterator<S>;
/** iterable reduce */
export declare function reduce<T, S>(iter: Iterable<T>, callback: ReduceCallback<T, S>, initialValue: S): S;
/** iterable map */
export declare function map<T, S>(iter: Iterable<T>, callback: MapCallback<T, S>): IterableIterator<S>;
/** guard iterable filter */
export declare function filter<T, S extends T>(iter: Iterable<T>, callback: FilterGuardCallback<T, S>): IterableIterator<S>;
/** generic iterable filter */
export declare function filter<T>(iter: Iterable<T>, callback: MapCallback<T, boolean>): IterableIterator<T>;
/** iterable some */
export declare function some<T>(iter: Iterable<T>, callback: MapCallback<T, boolean>): boolean;
/** iterable every */
export declare function every<T, R extends T>(iter: Iterable<T>, callback: GuardCallback<T, R>): iter is Iterable<R>;
export declare function every<T>(iter: Iterable<T>, callback: MapCallback<T, boolean>): boolean;
/** iterable length */
export declare function length(iter: Iterable<unknown>): number;
/** iterable slice of an array */
export declare function slice<T>(arr: readonly T[], frm?: number, to?: number, stride?: number): IterableIterator<T>;
/** iterable reverse of an array */
export declare function reverse<T>(arr: readonly T[]): IterableIterator<T>;
/** chain several iterables */
export declare function chain<T>(...iters: Iterable<T>[]): IterableIterator<T>;
/** iterate over bigrams of an iterable */
export declare function bigrams<T>(iterable: Iterable<T>): IterableIterator<[T, T]>;
/** return the first element of an iterable */
export declare function first<T>(iterable: Iterable<T>): T | undefined;
/** return if something is iterable */
export declare function isIterable(obj: unknown): obj is Iterable<unknown>;