atombeak
Version:
Create asynchronous atomic functions!
12 lines (11 loc) • 747 B
TypeScript
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>;
}