fractal-core
Version:
A minimalist and well crafted app, content or component is our conviction
81 lines (80 loc) • 3.03 kB
TypeScript
import { Context, InterfaceHelpers, CtxPerformTask, EventData, State } from '.';
import { Emit, Off, Descriptor } from 'pullable-event-bus';
import { CtxToIn } from './module';
export interface FractalOn {
(evName: string, evData: EventData, pullable?: boolean): Descriptor;
}
export interface InputHelpers<S> extends InterfaceHelpers<S> {
state: S;
toIn: CtxToIn;
toChild: CtxToChild;
toChildAct: CtxToChildAct;
toAct: CtxToAct;
set: CtxSet;
task: CtxPerformTask;
emit: Emit;
on: FractalOn;
off: Off;
comps: CtxComponentHelpers;
_clearCache: CtxClearCache;
}
export declare const makeInputHelpers: <S extends State>(ctx: Context<S>) => InputHelpers<S>;
export interface CtxStateOf<S extends State> {
(name?: string): S;
}
export declare const _stateOf: (ctx: Context<any>) => CtxStateOf<any>;
export interface CtxToChild {
(childCompName: string, inputName: string, msg?: any): void;
}
export declare const toChild: <S>(ctx: Context<S>) => (childCompName: any, inputName: any, msg?: any) => Promise<void>;
export interface CtxToChildAct {
(childCompName: string, actionName: string, msg?: any): void;
}
export declare const toChildAct: <S>(ctx: Context<S>) => (childCompName: any, actionName: any, msg?: any) => Promise<void>;
export interface CtxToAct {
(actionName: string, data?: any): Promise<any>;
}
export declare const toAct: <S>(ctx: Context<S>) => CtxToAct;
export interface CtxSet {
(arg0: any, arg1?: any): Promise<any>;
}
export declare const set: <S>(ctx: Context<S>) => CtxSet;
export declare type SubscriptionInfo = Descriptor;
export interface CtxClearCache {
(interfaceName: string, childNames?: string[]): void;
}
/**
* Clears the interface cache of a component and its descendants
* @param ctx The component Context
*/
export declare const _clearCache: <S>(ctx: Context<S>) => CtxClearCache;
export interface Instruction extends Array<any> {
0: string;
1: string;
2: any;
}
export interface ComponentHelpers {
getState(key: string, options?: {
exceptions?: string[];
nameFn?(name: string): string;
}): any;
getStates(options?: {
path?: string[];
exceptions?: string[];
nameFn?(name: string): string;
}): any;
executeAll(insts: Instruction[]): void;
broadcast(inputName: string, data?: any): void;
optionalBroadcast(inputName: string, data?: any): void;
seqBroadcast(inputName: string, data?: any): Promise<any>;
seqOptionalBroadcast(inputName: string, data?: any): Promise<any>;
getNames(): string[];
getCompleteNames(): string[];
}
export interface CtxComponentHelpers {
(groupName: string): ComponentHelpers;
}
export declare const getName: (name: string) => string;
export declare const getCompleteNames: (state: any, groupName: string) => string[];
export declare const getNames: (state: any, groupName: string) => string[];
export declare const _componentHelpers: <S extends State>(ctx: Context<S>) => CtxComponentHelpers;