UNPKG

deat

Version:

Model and manage your runtime feature-oriented dependencies

58 lines (56 loc) 1.89 kB
declare class Deat<S extends { [k: string]: any; }, D extends { [k: string]: any; }, P extends Deat<any, any, any>> { private readonly build; private key; private keys; private headerKey; private next; private isHeader; private prefixedDeps; deps: S; constructor(deps: S, build: (deps: S & P) => D); static create<S extends { [k: string]: any; }, D extends { [k: string]: any; }, P extends Deat<any, any, any> = Deat<{}, any, any>>(deps: S, build: (deps: S & P["deps"]) => D, peer?: P): Deat<S, D, P>; private static genPrefixForDeps; private static setPrefixForDeps; private static removePrefixForDeps; private static updatePrefixForDeps; private static getIsolatedDeps; private copy; private getDuplicates; private validateHeader; private tail; private getNodeByKey; _inspect(): void; private _chain; chain<M extends { [k: string]: any; }, N extends { [k: string]: any; }, Q extends Deat<any, any, any>>(deat: Deat<M, N, Q>): Deat<S & M & D, N, Deat<P["deps"] & Q["deps"], any, any>>; append<T extends { [k: string]: any; }, R extends { [k: string]: any; }>(deps: T, build: (deps: T & D & S & P["deps"]) => R): Deat<S & T & D, R, P>; appendDeps<T extends { [k: string]: any; }>(deps: T): Deat<S & T & D, {}, Deat<P["deps"] & {}, any, any>>; appendBuilder<T extends { [k: string]: any; }>(build: (deps: S & D & P["deps"]) => T): Deat<S & T & D, T, P>; union<M extends { [k: string]: any; }, N extends { [k: string]: any; }, Q extends Deat<any, any, any>>(deat: Deat<M, N, Q>): Deat<S & M & D & N, {}, Deat<P["deps"] & Q["deps"], any, any>>; update(key: string, value: any): Deat<any, any, Deat<{}, any, any>>; run(): S & D; } export { Deat };