fp-ts-fluture
Version:
fp-ts bindings for Fluture
206 lines (205 loc) • 3.63 kB
JavaScript
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 };