UNPKG

@typed/fp

Version:

Data Structures and Resources for fp-ts

197 lines 4.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Alternative = exports.Alt = exports.MonadRec = exports.Monad = exports.ChainRec = exports.chainRec = exports.Chain = exports.Applicative = exports.Apply = exports.Functor = exports.Pointed = exports.URI = exports.zero = exports.some = exports.matchE = exports.match = exports.map = exports.getOrElseE = exports.getOrElse = exports.fromPredicate = exports.fromOptionK = exports.fromNullableK = exports.fromNullable = exports.fromData = exports.fromEither = exports.chainOptionK = exports.chainNullableK = exports.chain = exports.ap = exports.alt = void 0; const tslib_1 = require("tslib"); const E = (0, tslib_1.__importStar)(require("fp-ts/Either")); const function_1 = require("fp-ts/function"); const O = (0, tslib_1.__importStar)(require("fp-ts/Option")); const OT = (0, tslib_1.__importStar)(require("fp-ts/OptionT")); const D = (0, tslib_1.__importStar)(require("./Data")); /** * @since 0.9.2 * @category Combinator */ exports.alt = OT.alt(D.Monad); /** * @since 0.9.2 * @category Combinator */ exports.ap = OT.ap(D.Apply); /** * @since 0.9.2 * @category Combinator */ exports.chain = OT.chain(D.Monad); /** * @since 0.9.2 * @category Combinator */ exports.chainNullableK = OT.chainNullableK(D.Monad); /** * @since 0.9.2 * @category Combinator */ /** * @since 0.9.2 * @category Combinator */ exports.chainOptionK = OT.chainOptionK(D.Monad); /** * @since 0.9.2 * @category Constructor */ exports.fromEither = OT.fromEither(D.Monad); /** * @since 0.9.2 * @category Constructor */ exports.fromData = OT.fromF(D.Monad); /** * @since 0.9.2 * @category Constructor */ exports.fromNullable = OT.fromNullable(D.Pointed); /** * @since 0.9.2 * @category Constructor */ exports.fromNullableK = OT.fromNullableK(D.Pointed); /** * @since 0.9.2 * @category Constructor */ exports.fromOptionK = OT.fromOptionK(D.Pointed); /** * @since 0.9.2 * @category Constructor */ exports.fromPredicate = OT.fromPredicate(D.Pointed); /** * @since 0.9.2 * @category Combinator */ exports.getOrElse = OT.getOrElse(D.Functor); /** * @since 0.9.2 * @category Combinator */ exports.getOrElseE = OT.getOrElseE(D.Monad); /** * @since 0.9.2 * @category Combinator */ exports.map = OT.map(D.Functor); /** * @since 0.9.2 * @category Deconstructor */ exports.match = OT.match(D.Functor); /** * @since 0.9.2 * @category Deconstructor */ exports.matchE = OT.matchE(D.Chain); /** * @since 0.9.2 * @category Constructor */ exports.some = OT.some(D.Pointed); /** * @since 0.9.2 * @category Constructor */ exports.zero = OT.zero(D.Pointed); /** * @since 0.9.2 * @category URI */ exports.URI = '@typed/fp/DataOption'; /** * @since 0.9.2 * @category Instance */ exports.Pointed = { of: (0, function_1.flow)(O.some, D.of), }; /** * @since 0.9.2 * @category Instance */ exports.Functor = { map: exports.map, }; /** * @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 Combinator */ const chainRec = (f) => D.chainRec((0, function_1.flow)(f, D.map((oe) => { if (O.isNone(oe)) { return E.right(oe); } return (0, function_1.pipe)(oe.value, E.map(O.some)); }))); exports.chainRec = chainRec; /** * @since 0.9.2 * @category Instance */ exports.ChainRec = { chainRec: exports.chainRec, }; /** * @since 0.9.2 * @category Instance */ exports.Monad = { ...exports.Chain, ...exports.Pointed, }; /** * @since 0.9.2 * @category Instance */ exports.MonadRec = { ...exports.Monad, ...exports.ChainRec, }; /** * @since 0.9.2 * @category Instance */ exports.Alt = { ...exports.Functor, alt: exports.alt, }; /** * @since 0.9.2 * @category Instance */ exports.Alternative = { ...exports.Alt, zero: exports.zero, }; //# sourceMappingURL=DataOption.js.map