UNPKG

ng-packagr

Version:

Compile and package Angular libraries in Angular Package Format (APF)

34 lines (33 loc) 1.33 kB
import { FSWatcher } from 'chokidar'; import { Node } from './node'; export type SimplePredicate<T = Node> = { (value: T): boolean; and?: (criteria: SimplePredicate<T>) => SimplePredicate<T>; }; export type ComplexPredicate<T = Node, R extends T = T> = SimplePredicate<T> | { (value: T): value is R; and?: (criteria: ComplexPredicate<T, R>) => ComplexPredicate<T, R>; }; export interface Traversable<T> { filter<R extends T = T>(by: ComplexPredicate<T, R>): R[]; find<R extends T = T>(by: ComplexPredicate<T, R>): R | undefined; some(by: SimplePredicate<T>): boolean; } /** * A tree of source files. Eventually, it's a graph. Ideally, it's an acyclic directed graph. * Technically, it's implemented as a map-like collection with references between map entries. */ export declare class BuildGraph implements Traversable<Node> { private store; watcher?: FSWatcher; put(value: Node | Node[]): this; private insert; get(url: string): Node; has(url: string): boolean; entries(): Node[]; values(): IterableIterator<Node>; some<T extends Node = Node>(by: ComplexPredicate<Node, T>): boolean; filter<T extends Node = Node>(by: ComplexPredicate<Node, T>): T[]; find<T extends Node = Node>(by: ComplexPredicate<Node, T>): T | undefined; get size(): number; }