@typed/fp
Version:
Data Structures and Resources for fp-ts
206 lines • 4.38 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MonadRec = exports.ChainRec = exports.chainRec = exports.Monad = exports.Chain = exports.Applicative = exports.Apply = exports.Bifunctor = exports.Functor = exports.Pointed = exports.of = exports.URI = exports.toUnion = exports.swap = exports.fromStream = exports.right = exports.orLeft = exports.orElseFirst = exports.orElse = exports.matchE = exports.match = exports.mapLeft = exports.map = exports.fromStreamL = exports.left = exports.getOrElseE = exports.getOrElse = exports.chain = exports.bracket = exports.bimap = exports.ap = exports.altValidation = exports.alt = void 0;
const tslib_1 = require("tslib");
/**
* StreamEither is a EitherT of Stream
* @since 0.9.2
*/
const core_1 = require("@most/core");
const E = (0, tslib_1.__importStar)(require("fp-ts/Either"));
const ET = (0, tslib_1.__importStar)(require("fp-ts/EitherT"));
const function_1 = require("./function");
const internal_1 = require("./internal");
const S = (0, tslib_1.__importStar)(require("./Stream"));
/**
* @since 0.9.2
* @category Combinator
*/
exports.alt = ET.alt(S.Monad);
/**
* @since 0.9.2
* @category Typecalss Constructor
*/
const altValidation = (semigroup) => ET.altValidation(S.Monad, semigroup);
exports.altValidation = altValidation;
/**
* @since 0.9.2
* @category Combinator
*/
exports.ap = ET.ap(S.Apply);
/**
* @since 0.9.2
* @category Combinator
*/
exports.bimap = ET.bimap(S.Functor);
/**
* @since 0.9.2
* @category Combinator
*/
exports.bracket = ET.bracket(S.Monad);
/**
* @since 0.9.2
* @category Combinator
*/
exports.chain = ET.chain(S.Monad);
/**
* @since 0.9.2
* @category Combinator
*/
exports.getOrElse = ET.getOrElse(S.Monad);
/**
* @since 0.9.2
* @category Combinator
*/
exports.getOrElseE = ET.getOrElseE(S.Monad);
/**
* @since 0.9.2
* @category Constructor
*/
exports.left = ET.left(S.Monad);
/**
* @since 0.9.2
* @category Constructor
*/
exports.fromStreamL = ET.leftF(S.Monad);
/**
* @since 0.9.2
* @category Combinator
*/
exports.map = ET.map(S.Monad);
/**
* @since 0.9.2
* @category Combinator
*/
exports.mapLeft = ET.mapLeft(S.Monad);
/**
* @since 0.9.2
* @category Combinator
*/
exports.match = ET.match(S.Monad);
/**
* @since 0.9.2
* @category Combinator
*/
exports.matchE = ET.matchE(S.Monad);
/**
* @since 0.9.2
* @category Combinator
*/
exports.orElse = ET.orElse(S.Monad);
/**
* @since 0.9.2
* @category Combinator
*/
exports.orElseFirst = ET.orElseFirst(S.Monad);
/**
* @since 0.9.2
* @category Combinator
*/
exports.orLeft = ET.orLeft(S.Monad);
/**
* @since 0.9.2
* @category Constructor
*/
exports.right = ET.right(S.Monad);
/**
* @since 0.9.2
* @category Constructor
*/
exports.fromStream = ET.rightF(S.Monad);
/**
* @since 0.9.2
* @category Combinator
*/
exports.swap = ET.swap(S.Functor);
/**
* @since 0.9.2
* @category Combinator
*/
exports.toUnion = ET.toUnion(S.Functor);
/**
* @since 0.9.2
* @category URI
*/
exports.URI = '@typed/fp/StreamEither';
/**
* @since 0.9.2
* @category Constructor
*/
exports.of = (0, function_1.flow)(E.right, core_1.now);
/**
* @since 0.9.2
* @category Instance
*/
exports.Pointed = {
of: exports.of,
};
/**
* @since 0.9.2
* @category Instance
*/
exports.Functor = {
map: exports.map,
};
/**
* @since 0.9.2
* @category Instance
*/
exports.Bifunctor = {
bimap: exports.bimap,
mapLeft: exports.mapLeft,
};
/**
* @since 0.9.2
* @category Instance
*/
exports.Apply = {
...exports.Functor,
ap: exports.ap,
};
/**
* @since 0.9.2
* @category Instance
*/
exports.Applicative = {
...exports.Apply,
...exports.Pointed,
};
/**
* @since 0.9.2
* @category Instance
*/
exports.Chain = {
...exports.Functor,
chain: exports.chain,
};
/**
* @since 0.9.2
* @category Instance
*/
exports.Monad = {
...exports.Chain,
...exports.Pointed,
};
/**
* @since 0.9.2
* @category Combinator
*/
const chainRec = (f) => (a) => (0, function_1.pipe)(a, S.chainRec((x) => (0, function_1.pipe)(x, f, S.map(internal_1.swapEithers))));
exports.chainRec = chainRec;
/**
* @since 0.9.2
* @category Instance
*/
exports.ChainRec = {
chainRec: exports.chainRec,
};
/**
* @since 0.9.2
* @category Instance
*/
exports.MonadRec = {
...exports.Monad,
chainRec: exports.chainRec,
};
//# sourceMappingURL=StreamEither.js.map