UNPKG

fp-ts-fluture

Version:
206 lines (205 loc) 3.63 kB
import { getStateM } from 'fp-ts/es6/StateT'; import { pipeable, pipe } from 'fp-ts/es6/pipeable'; import * as F from './Future'; var T = getStateM(F.future); /** * @since 0.6.5 */ export var URI = 'StateFuture'; /** * @since 0.6.5 */ export var evalState = T.evalState; /** * @since 0.6.5 */ export var execState = T.execState; /** * @since 0.6.5 */ export function left(e) { return fromFuture(F.left(e)); } /** * @since 0.6.5 */ export var right = T.of; /** * @since 0.6.5 */ export function rightTask(ma) { return fromFuture(F.rightTask(ma)); } /** * @since 0.6.5 */ export function leftTask(me) { return fromFuture(F.leftTask(me)); } /** * @since 0.6.5 */ export var fromFuture = T.fromM; /** * @since 0.6.5 */ export function rightIO(ma) { return fromFuture(F.rightIO(ma)); } /** * @since 0.6.5 */ export function leftIO(me) { return fromFuture(F.leftIO(me)); } /** * @since 0.6.5 */ export var rightState = T.fromState; /** * @since 0.6.5 */ export function leftState(me) { return function (s) { return F.left(me(s)[0]); }; } /** * @since 0.6.5 */ export function orElse(f) { return function (ma) { return function (c) { return pipe(ma(c), F.orElse(function (e) { return f(e)(c); })); }; }; } /** * @since 0.6.5 */ export var get = T.get; /** * @since 0.6.5 */ export var put = T.put; /** * @since 0.6.5 */ export var modify = T.modify; /** * @since 0.6.5 */ export var gets = T.gets; /** * @since 0.6.5 */ export function fromEitherK(f) { return function () { var a = []; for (var _i = 0; _i < arguments.length; _i++) { a[_i] = arguments[_i]; } return fromEither(f.apply(void 0, a)); }; } /** * @since 0.6.5 */ export function chainEitherK(f) { return chain(fromEitherK(f)); } /** * @since 0.6.5 */ export function fromFutureK(f) { return function () { var a = []; for (var _i = 0; _i < arguments.length; _i++) { a[_i] = arguments[_i]; } return fromFuture(f.apply(void 0, a)); }; } /** * @since 0.6.5 */ export function chainFutureK(f) { return chain(fromFutureK(f)); } /** * @since 0.6.5 */ export var stateFuture = { URI: URI, map: T.map, of: right, ap: T.ap, chain: T.chain, throwError: left, alt: function (fx, f) { return function (c) { return pipe(fx(c), F.alt(function () { return f()(c); })); }; }, bimap: function (fea, f, g) { return function (c) { return pipe(fea(c), F.bimap(f, function (_a) { var a = _a[0], c = _a[1]; return [g(a), c]; })); }; }, mapLeft: function (fea, f) { return function (c) { return pipe(fea(c), F.mapLeft(f)); }; }, fromIO: rightIO, fromTask: rightTask }; var _a = pipeable(stateFuture), alt = _a.alt, ap = _a.ap, apFirst = _a.apFirst, apSecond = _a.apSecond, bimap = _a.bimap, chain = _a.chain, chainFirst = _a.chainFirst, flatten = _a.flatten, map = _a.map, mapLeft = _a.mapLeft, filterOrElse = _a.filterOrElse, fromEither = _a.fromEither, fromOption = _a.fromOption, fromPredicate = _a.fromPredicate; export { /** * @since 0.6.5 */ alt, /** * @since 0.6.5 */ ap, /** * @since 0.6.5 */ apFirst, /** * @since 0.6.5 */ apSecond, /** * @since 0.6.5 */ bimap, /** * @since 0.6.5 */ chain, /** * @since 0.6.5 */ chainFirst, /** * @since 0.6.5 */ flatten, /** * @since 0.6.5 */ map, /** * @since 0.6.5 */ mapLeft, /** * @since 0.6.5 */ filterOrElse, /** * @since 0.6.5 */ fromEither, /** * @since 0.6.5 */ fromOption, /** * @since 0.6.5 */ fromPredicate };