atombeak
Version:
Create asynchronous atomic functions!
25 lines (24 loc) • 1.27 kB
TypeScript
import { Retry, Good } from '../Result';
import { Log } from '../Log';
export declare const OUTER_CHANGED = "OUTER_CHANGED";
export declare type OuterChangedMessage<Outer> = {
type: 'OUTER_CHANGED';
oldOuter: Outer;
newOuter: Outer;
};
export declare function outerChangedMessage<Outer>(oldOuter: Outer, newOuter: Outer): OuterChangedMessage<Outer>;
export declare const NEXT_ITERATION = "NEXT_ITERATION";
export declare type NextIteration<Outer, Action> = {
type: 'NEXT_ITERATION';
attempt: number;
log: Log<Outer, Action>;
};
export declare function nextIteration<Outer, Action>(attempt: number, log: Log<Outer, Action>): NextIteration<Outer, Action>;
export declare const RESULT_RECEIVED = "RESULT_RECEIVED";
export declare type ResultReceivedMessage<Outer, Inner, Action> = {
type: 'RESULT_RECEIVED';
attempt: number;
result: Good<Outer, Inner, Action> | Retry<Outer, Action>;
};
export declare function resultReceivedMessage<Outer, Inner, Action>(attempt: number, result: Good<Outer, Inner, Action> | Retry<Outer, Action>): ResultReceivedMessage<Outer, Inner, Action>;
export declare type Message<Outer, Inner, Action> = OuterChangedMessage<Outer> | NextIteration<Outer, Action> | ResultReceivedMessage<Outer, Inner, Action>;