evanesce
Version:
Evanesce disappears your web application framework for desired routes by managing AOT page builds on dependency change.
39 lines (38 loc) • 1.36 kB
TypeScript
export declare type SignalKeyString = string;
export interface SignalKeyObject {
key: SignalKeyString;
keys: Array<SignalKeyString>;
}
export declare type SignalKey = SignalKeyString | SignalKeyObject;
export interface Signal {
key: SignalKeyString;
[key: SignalKeyString]: any | (() => Promise<void>);
rebuildDependencies: () => Promise<void>;
parent?: Signal;
children?: SignalsList;
}
export declare type SignalsList = Array<Signal>;
export declare type SignalOrFunction = Signal | ((obj: any) => Signal);
export declare type SignalsOrFunctions = Array<SignalOrFunction>;
export interface SignalRebuildTargets {
rebuildTargets: Array<any>;
[key: SignalKeyString]: SignalRebuildTargets | undefined | Array<any>;
}
export interface SignalsRebuildTargets {
[key: SignalKeyString]: SignalRebuildTargets;
}
export interface Signals {
[key: SignalKeyString]: Signal;
}
export declare const access: (obj: any, path: Array<any>) => any;
export declare const buildSignals: <Render>({ signalKeys, onRouteRebuild, render }: {
signalKeys: Array<SignalKey>;
onRouteRebuild: ({ route, html }: {
route: string;
html: string;
}) => void;
render: Render;
}) => {
signals: Signals;
addToSignalsRebuildTargets: (signalKeys: Array<SignalKeyString>, { controller, route, params }: any) => any;
};