UNPKG

atombeak

Version:

Create asynchronous atomic functions!

12 lines (11 loc) 747 B
import { Operation } from './Operation'; import { Log } from '../Log'; import { Trampoline } from '../Trampoline'; export declare abstract class AbstractOperation<Outer, Inner, Action> implements Operation<Outer, Inner, Action> { abstract execute(log: Log<Outer, Action>): Trampoline<Outer, Inner, Action>; map<NewInner>(fn: (inner: Inner) => NewInner): Operation<Outer, NewInner, Action>; flatMap<NewInner>(fn: (inner: Inner) => Operation<Outer, NewInner, Action>): Operation<Outer, NewInner, Action>; assign<Inner extends object, K extends string | number | symbol, V>(this: Operation<Outer, Inner, Action>, key: K, valueOperation: Operation<Outer, V, Action>): Operation<Outer, Inner & { [KK in K]: V; }, Action>; }