chai-latte
Version:
Build expressive & readable fluent interface libraries.
43 lines (42 loc) • 2.11 kB
TypeScript
import { ConfigurableCallback } from './lib/ConfigurableCallback';
export interface RegisteredAPI<Callback extends Function> {
api: any;
callback: Callback;
expression: Expression<Callback>;
}
declare type FluentCreator = (fluentProxy: any) => void;
declare type Register = (<Callback extends Function>(create: FluentCreator, callback: Callback) => RegisteredAPI<Callback>[]) & (<Callback extends Function>(create: FluentCreator, create2: FluentCreator, callback: Callback) => RegisteredAPI<Callback>[]) & (<Callback extends Function>(create: FluentCreator, create2: FluentCreator, create3: FluentCreator, callback: Callback) => RegisteredAPI<Callback>[]) & (<Callback extends Function>(create: FluentCreator, create2: FluentCreator, create3: FluentCreator, create4: FluentCreator, callback: Callback) => RegisteredAPI<Callback>[]) & (<Callback extends Function>(create: FluentCreator, create2: FluentCreator, create3: FluentCreator, create4: FluentCreator, create5: FluentCreator, callback: Callback) => RegisteredAPI<Callback>[]);
export declare const register: Register;
export declare class Expression<Callback extends Function> {
fluentAPI: any;
pointer: BuildPointer;
static callbacks: WeakSet<object>;
callbacks: Set<ConfigurableCallback>;
callback: Callback;
args: any[];
constructor(callback: Callback);
index: number;
setExpressionIdx(index: number): void;
static isFinalCallback(cb: any): boolean;
getFluentAPI(): any;
createConfigurableCallback(): ConfigurableCallback;
isLastPointerCallback(): boolean;
debugId: string;
updateDebugProp(prop: any): void;
updateDebugFunction(arg: any): void;
callbackCount: number;
handleFunctionCalled(arg: any): void;
handlePropertyAccess(prop: string): void;
createBuilderProxy(): any;
}
declare class BuildPointer {
lastWord: string;
lastPointer: any;
pointer: any;
constructor(initialValue: any);
overrideLastPointer(override: any): any;
getLastPointer(): any;
movePointer(prop: any): void;
accessProp(prop: any): void;
}
export {};