UNPKG

atombeak

Version:

Create asynchronous atomic functions!

18 lines (17 loc) 994 B
import { Operation } from "./Operation/Operation"; import { Log } from "./Log"; import { Result } from "./Result"; export declare const ITER = "ITER"; export declare type Iter<Outer, Inner, Action> = { type: 'ITER'; next: () => Promise<[Operation<Outer, Inner, Action>, Log<Outer, Action>]>; }; export declare function iter<Outer, Inner, Action>(next: () => Promise<[Operation<Outer, Inner, Action>, Log<Outer, Action>]>): Iter<Outer, Inner, Action>; export declare const DONE = "DONE"; export declare type Done<Outer, Inner, Action> = { type: 'DONE'; value: Result<Outer, Inner, Action>; }; export declare function done<Outer, Inner, Action>(value: Result<Outer, Inner, Action>): Done<Outer, Inner, Action>; export declare type Trampoline<Outer, Inner, Action> = Iter<Outer, Inner, Action> | Done<Outer, Inner, Action>; export declare function runAsPromise<Outer, Inner, Action>(operation: Operation<Outer, Inner, Action>, outer: Outer): Promise<Result<Outer, Inner, Action>>;