d3-dag
Version:
Layout algorithms for visualizing directed acylic graphs.
40 lines (39 loc) • 2.53 kB
TypeScript
/** iterable callback that maps a value into another */
export type MapCallback<in T, out S> = (element: T, index: number) => S;
/** iterable callback that maps a value into another */
export type GuardCallback<in T, R extends T> = (element: T, index: number) => element is R;
/** reduce callback */
export type ReduceCallback<in T, in out S> = (accumulator: S, currentValue: T, index: number) => S;
/** filter guard callback */
export type 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>;