@typed/fp
Version:
Data Structures and Resources for fp-ts
197 lines • 4.14 kB
JavaScript
"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