Vinyl
    Preparing search index...

    Type Alias FlattenDependencies<Dm, K, Current>

    FlattenDependencies: Dm[K] extends () => any
        ? never
        : Dm[K] extends (deps: infer Expected) => any
            ? keyof Expected extends Current
                ? never
                : | keyof Expected
                | FlattenDependencies<
                    Dm,
                    keyof Expected & keyof Dm,
                    Current
                    | keyof Expected & keyof Dm,
                >
            : never

    Flattens the dependency graph for the given dependency factory. E.g. given a map:

    type Map = {
    a: () => 1,
    b: (deps: { a: number }) => 2,
    c: () => 3,
    d: (deps: { b: number, c: number }) => 4,
    }

    FlattenDependencies<'d', Map> // 'c' | 'b' | 'a'

    Type Parameters

    • Dm
    • K extends keyof Dm
    • Current extends keyof Dm = never