@typed/fp
Version:
Data Structures and Resources for fp-ts
598 lines • 14.8 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MonadRec = exports.ChainRec = exports.chainRec = exports.Monad = exports.chainFirstW = exports.chainFirst = exports.bindW = exports.bind = exports.Chain = exports.Applicative = exports.getSemigroup = exports.apTW = exports.apT = exports.apSecondW = exports.apSecond = exports.apSW = exports.apS = exports.apFirstW = exports.apFirst = exports.Apply = exports.Bifunctor = exports.tupled = exports.flap = exports.bindTo = exports.Functor = exports.Pointed = exports.of = exports.URI = exports.toUnion = exports.swap = exports.fromEnv = exports.right = exports.orLeft = exports.orElseFirst = exports.orElse = exports.matchE = exports.match = exports.mapLeft = exports.map = exports.fromEnvL = exports.left = exports.getOrElseE = exports.getOrElse = exports.chainW = exports.chain = exports.bracket = exports.bimap = exports.ap = exports.altValidation = exports.alt = void 0;
exports.fromPredicate = exports.fromOptionK = exports.fromOption = exports.fromEitherK = exports.filterOrElse = exports.chainOptionK = exports.chainEitherK = exports.fromIOK = exports.chainIOK = exports.chainFirstIOK = exports.fromTaskK = exports.chainTaskK = exports.chainFirstTaskK = exports.useSomeWithEnv = exports.useAllWithEnv = exports.provideSomeWithEnv = exports.provideAllWithEnv = exports.fromEnvK = exports.chainFirstEnvK = exports.chainEnvK = exports.fromResumeK = exports.chainResumeK = exports.chainFirstResumeK = exports.fromReaderK = exports.chainReaderK = exports.asks = exports.ask = exports.useSomeWith = exports.useAllWith = exports.provideSomeWith = exports.provideAllWith = exports.askAndUse = exports.askAndProvide = exports.Provide = exports.ProvideAll = exports.ProvideSome = exports.UseAll = exports.UseSome = exports.Alt = exports.FromEnv = exports.fromReader = exports.FromReader = exports.fromResume = exports.FromResume = exports.fromTask = exports.FromTask = exports.fromIO = exports.FromIO = exports.FromEither = exports.fromEither = void 0;
exports.fromPromiseK = exports.fromPromise = exports.Do = void 0;
const tslib_1 = require("tslib");
const Apply_ = (0, tslib_1.__importStar)(require("fp-ts/Apply"));
const Chain_ = (0, tslib_1.__importStar)(require("fp-ts/Chain"));
const E = (0, tslib_1.__importStar)(require("fp-ts/Either"));
const ET = (0, tslib_1.__importStar)(require("fp-ts/EitherT"));
const FEi = (0, tslib_1.__importStar)(require("fp-ts/FromEither"));
const FIO = (0, tslib_1.__importStar)(require("fp-ts/FromIO"));
const FR = (0, tslib_1.__importStar)(require("fp-ts/FromReader"));
const FT = (0, tslib_1.__importStar)(require("fp-ts/FromTask"));
const function_1 = require("fp-ts/function");
const Functor_ = (0, tslib_1.__importStar)(require("fp-ts/Functor"));
const TaskEither_1 = require("fp-ts/TaskEither");
const Env = (0, tslib_1.__importStar)(require("./Env"));
const FE = (0, tslib_1.__importStar)(require("./FromEnv"));
const FRe = (0, tslib_1.__importStar)(require("./FromResume"));
const internal_1 = require("./internal");
const P = (0, tslib_1.__importStar)(require("./Provide"));
const Resume_1 = require("./Resume");
/**
* @since 0.9.2
* @category Combinator
*/
exports.alt = ET.alt(Env.Monad);
/**
* @since 0.9.2
* @category Typeclass Constructor
*/
const altValidation = (semigroup) => ET.altValidation(Env.Monad, semigroup);
exports.altValidation = altValidation;
/**
* @since 0.9.2
* @category Combinator
*/
exports.ap = ET.ap(Env.Apply);
/**
* @since 0.9.2
* @category Combinator
*/
exports.bimap = ET.bimap(Env.Functor);
/**
* @since 0.9.2
* @category Combinator
*/
exports.bracket = ET.bracket(Env.Monad);
/**
* @since 0.9.2
* @category Combinator
*/
exports.chain = ET.chain(Env.Monad);
/**
* @since 0.9.2
* @category Combinator
*/
exports.chainW = exports.chain;
/**
* @since 0.9.2
* @category Combinator
*/
exports.getOrElse = ET.getOrElse(Env.Monad);
/**
* @since 0.9.2
* @category Combinator
*/
exports.getOrElseE = ET.getOrElseE(Env.Monad);
/**
* @since 0.9.2
* @category Constructor
*/
exports.left = ET.left(Env.Monad);
/**
* @since 0.9.2
* @category Constructor
*/
exports.fromEnvL = ET.leftF(Env.Monad);
/**
* @since 0.9.2
* @category Combinator
*/
exports.map = ET.map(Env.Monad);
/**
* @since 0.9.2
* @category Combinator
*/
exports.mapLeft = ET.mapLeft(Env.Monad);
/**
* @since 0.9.2
* @category Deconstructor
*/
exports.match = ET.match(Env.Monad);
/**
* @since 0.9.2
* @category Deconstructor
*/
exports.matchE = ET.matchE(Env.Monad);
/**
* @since 0.9.2
* @category Deconstructor
*/
exports.orElse = ET.orElse(Env.Monad);
/**
* @since 0.9.2
* @category Combinator
*/
exports.orElseFirst = ET.orElseFirst(Env.Monad);
/**
* @since 0.9.2
* @category Combinator
*/
exports.orLeft = ET.orLeft(Env.Monad);
/**
* @since 0.9.2
* @category Constructor
*/
exports.right = ET.right(Env.Monad);
/**
* @since 0.9.2
* @category Constructor
*/
exports.fromEnv = ET.rightF(Env.Monad);
/**
* @since 0.9.2
* @category Combinator
*/
exports.swap = ET.swap(Env.Functor);
/**
* @since 0.9.2
* @category Deconstructor
*/
exports.toUnion = ET.toUnion(Env.Functor);
/**
* @since 0.9.2
* @category URI
*/
exports.URI = '@typed/fp/EnvEither';
/**
* @since 0.9.2
* @category Constructor
*/
exports.of = (0, function_1.flow)(E.right, Env.of);
/**
* @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 Combinator
*/
exports.bindTo = Functor_.bindTo(exports.Functor);
/**
* @since 0.9.2
* @category Combinator
*/
exports.flap = Functor_.flap(exports.Functor);
/**
* @since 0.9.2
* @category Combinator
*/
exports.tupled = Functor_.tupled(exports.Functor);
/**
* @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 Combinator
*/
exports.apFirst = Apply_.apFirst(exports.Apply);
/**
* @since 0.9.10
* @category Combinator
*/
exports.apFirstW = Apply_.apFirst(exports.Apply);
/**
* @since 0.9.2
* @category Combinator
*/
exports.apS = Apply_.apS(exports.Apply);
/**
* @since 0.9.10
* @category Combinator
*/
exports.apSW = exports.apS;
/**
* @since 0.9.2
* @category Combinator
*/
exports.apSecond = Apply_.apSecond(exports.Apply);
/**
* @since 0.9.10
* @category Combinator
*/
exports.apSecondW = exports.apSecond;
/**
* @since 0.9.2
* @category Combinator
*/
exports.apT = Apply_.apT(exports.Apply);
/**
* @since 0.9.10
* @category Combinator
*/
exports.apTW = exports.apT;
/**
* @since 0.9.2
* @category Typeclass Constructor
*/
exports.getSemigroup = Apply_.getApplySemigroup(exports.Apply);
/**
* @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
*/
exports.bind = Chain_.bind(exports.Chain);
/**
* @since 0.11.1
* @category Combinator
*/
exports.bindW = exports.bind;
/**
* @since 0.9.2
* @category Combinator
*/
exports.chainFirst = Chain_.chainFirst(exports.Chain);
/**
* @since 0.9.11
* @category Combinator
*/
exports.chainFirstW = Chain_.chainFirst(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, Env.chainRec((x) => (0, function_1.pipe)(x, f, Env.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,
};
/**
* @since 0.9.2
* @category Constructor
*/
const fromEither = (e) => () => (0, Resume_1.sync)(() => e);
exports.fromEither = fromEither;
/**
* @since 0.9.2
* @category Instance
*/
exports.FromEither = {
fromEither: exports.fromEither,
};
/**
* @since 0.9.2
* @category Instance
*/
exports.FromIO = {
fromIO: (0, function_1.flow)(Env.fromIO, Env.map(E.right)),
};
/**
* @since 0.9.2
* @category Constructor
*/
exports.fromIO = exports.FromIO.fromIO;
/**
* @since 0.9.2
* @category Instance
*/
exports.FromTask = {
...exports.FromIO,
fromTask: (0, function_1.flow)(Env.fromTask, Env.map(E.right)),
};
/**
* @since 0.9.2
* @category Constructor
*/
exports.fromTask = exports.FromTask.fromTask;
/**
* @since 0.9.2
* @category Instance
*/
exports.FromResume = {
fromResume: (resume) => (0, function_1.pipe)(Env.fromResume(resume), Env.map(E.right)),
};
/**
* @since 0.9.2
* @category Constructor
*/
exports.fromResume = exports.FromResume.fromResume;
/**
* @since 0.9.2
* @category Instance
*/
exports.FromReader = {
fromReader: (0, function_1.flow)(Env.fromReader, Env.map(E.right)),
};
/**
* @since 0.9.2
* @category Constructor
*/
exports.fromReader = exports.FromReader.fromReader;
/**
* @since 0.9.2
* @category Instance
*/
exports.FromEnv = {
fromEnv: exports.fromEnv,
};
/**
* @since 0.9.2
* @category Instance
*/
exports.Alt = {
...exports.Functor,
alt: exports.alt,
};
/**
* @since 0.9.2
* @category Instance
*/
exports.UseSome = {
useSome: Env.useSome,
};
/**
* @since 0.9.2
* @category Instance
*/
exports.UseAll = {
useAll: Env.useAll,
};
/**
* @since 0.9.2
* @category Instance
*/
exports.ProvideSome = {
provideSome: Env.provideSome,
};
/**
* @since 0.9.2
* @category Instance
*/
exports.ProvideAll = {
provideAll: Env.provideAll,
};
/**
* @since 0.9.2
* @category Instance
*/
exports.Provide = {
...exports.UseAll,
...exports.UseSome,
...exports.ProvideSome,
...exports.ProvideAll,
};
/**
* @since 0.9.2
* @category Combinator
*/
exports.askAndProvide = P.askAndProvide({ ...exports.ProvideAll, ...exports.FromReader, ...exports.Chain });
/**
* @since 0.9.2
* @category Combinator
*/
exports.askAndUse = P.askAndUse({ ...exports.UseAll, ...exports.FromReader, ...exports.Chain });
/**
* @since 0.9.2
* @category Combinator
*/
exports.provideAllWith = P.provideAllWith({ ...exports.ProvideAll, ...exports.FromReader, ...exports.Chain });
/**
* @since 0.9.2
* @category Combinator
*/
exports.provideSomeWith = P.provideSomeWith({ ...exports.ProvideSome, ...exports.FromReader, ...exports.Chain });
/**
* @since 0.9.2
* @category Combinator
*/
exports.useAllWith = P.useAllWith({ ...exports.UseAll, ...exports.FromReader, ...exports.Chain });
/**
* @since 0.9.2
* @category Combinator
*/
exports.useSomeWith = P.useSomeWith({ ...exports.UseSome, ...exports.FromReader, ...exports.Chain });
/**
* @since 0.9.2
* @category Constructor
*/
exports.ask = FR.ask(exports.FromReader);
/**
* @since 0.9.2
* @category Constructor
*/
exports.asks = FR.asks(exports.FromReader);
/**
* @since 0.9.2
* @category Combinator
*/
exports.chainReaderK = FR.chainReaderK(exports.FromReader, exports.Chain);
/**
* @since 0.9.2
* @category Constructor
*/
exports.fromReaderK = FR.fromReaderK(exports.FromReader);
/**
* @since 0.9.2
* @category Combinator
*/
exports.chainFirstResumeK = FRe.chainFirstResumeK(exports.FromResume, exports.Chain);
/**
* @since 0.9.2
* @category Combinator
*/
exports.chainResumeK = FRe.chainResumeK(exports.FromResume, exports.Chain);
/**
* @since 0.9.2
* @category Constructor
*/
exports.fromResumeK = FRe.fromResumeK(exports.FromResume);
/**
* @since 0.9.2
* @category Combinator
*/
exports.chainEnvK = FE.chainEnvK(exports.FromEnv, exports.Chain);
/**
* @since 0.9.2
* @category Combinator
*/
exports.chainFirstEnvK = FE.chainFirstEnvK(exports.FromEnv, exports.Chain);
/**
* @since 0.9.2
* @category Constructor
*/
exports.fromEnvK = FE.fromEnvK(exports.FromEnv);
/**
* @since 0.9.15
* @category Combinator
*/
exports.provideAllWithEnv = FE.provideAllWithEnv({ ...exports.FromEnv, ...exports.ProvideAll, ...exports.Chain });
/**
* @since 0.9.15
* @category Combinator
*/
exports.provideSomeWithEnv = FE.provideSomeWithEnv({ ...exports.FromEnv, ...exports.ProvideSome, ...exports.Chain });
/**
* @since 0.9.15
* @category Combinator
*/
exports.useAllWithEnv = FE.useAllWithEnv({ ...exports.FromEnv, ...exports.UseAll, ...exports.Chain });
/**
* @since 0.9.15
* @category Combinator
*/
exports.useSomeWithEnv = FE.useSomeWithEnv({ ...exports.FromEnv, ...exports.UseSome, ...exports.Chain });
/**
* @since 0.9.2
* @category Combinator
*/
exports.chainFirstTaskK = FT.chainFirstTaskK(exports.FromTask, exports.Chain);
/**
* @since 0.9.2
* @category Combinator
*/
exports.chainTaskK = FT.chainTaskK(exports.FromTask, exports.Chain);
/**
* @since 0.9.2
* @category Constructor
*/
exports.fromTaskK = FT.fromTaskK(exports.FromTask);
/**
* @since 0.9.2
* @category Combinator
*/
exports.chainFirstIOK = FIO.chainFirstIOK(exports.FromTask, exports.Chain);
/**
* @since 0.9.2
* @category Combinator
*/
exports.chainIOK = FIO.chainIOK(exports.FromTask, exports.Chain);
/**
* @since 0.9.2
* @category Constructor
*/
exports.fromIOK = FIO.fromIOK(exports.FromTask);
/**
* @since 0.9.2
* @category Combinator
*/
exports.chainEitherK = FEi.chainEitherK(exports.FromEither, exports.Chain);
/**
* @since 0.9.2
* @category Combinator
*/
exports.chainOptionK = FEi.chainOptionK(exports.FromEither, exports.Chain);
/**
* @since 0.9.2
* @category Combinator
*/
exports.filterOrElse = FEi.filterOrElse(exports.FromEither, exports.Chain);
/**
* @since 0.9.2
* @category Constructor
*/
exports.fromEitherK = FEi.fromEitherK(exports.FromEither);
/**
* @since 0.9.2
* @category Constructor
*/
exports.fromOption = FEi.fromOption(exports.FromEither);
/**
* @since 0.9.2
* @category Constructor
*/
exports.fromOptionK = FEi.fromOptionK(exports.FromEither);
/**
* @since 0.9.2
* @category Constructor
*/
exports.fromPredicate = FEi.fromPredicate(exports.FromEither);
/**
* @since 0.11.1
* @category Constructor
*/
exports.Do = (0, exports.fromIO)(() => Object.create(null));
/**
* Construct an EnvEither from a Promise returning function.
* @since 0.12.2
* @category Constructor
*/
exports.fromPromise = (0, function_1.flow)(TaskEither_1.tryCatch, Env.fromTask);
/**
* Construct an EnvEither from a Promise returning function.
* @since 0.12.2
* @category Constructor
*/
const fromPromiseK = (f) => (...args) => (0, exports.fromPromise)(() => f(...args));
exports.fromPromiseK = fromPromiseK;
//# sourceMappingURL=EnvEither.js.map