@typed/fp
Version:
Data Structures and Resources for fp-ts
67 lines • 1.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.map = exports.loadEnvEither = exports.loadEnv = exports.toReplete = exports.toRefresh = exports.toLoading = exports.toNoData = void 0;
const tslib_1 = require("tslib");
/**
* RefDataEither is a collection of helpers for working with Refs that manage DataEither.
* @since 0.12.1
*/
const function_1 = require("fp-ts/function");
const DE = (0, tslib_1.__importStar)(require("./DataEither"));
const E = (0, tslib_1.__importStar)(require("./Env"));
const Ref = (0, tslib_1.__importStar)(require("./Ref"));
/**
* @since 0.12.1
* @category Combinator
*/
function toNoData(rd) {
return rd.update(() => E.of(DE.noData));
}
exports.toNoData = toNoData;
/**
* @since 0.12.1
* @category Combinator
*/
function toLoading(rd) {
return rd.update((0, function_1.flow)(DE.toLoading, E.of));
}
exports.toLoading = toLoading;
/**
* @since 0.12.1
* @category Combinator
*/
function toRefresh(value, progress) {
return (rd) => rd.update(() => E.of(DE.refresh(value, progress)));
}
exports.toRefresh = toRefresh;
/**
* @since 0.12.1
* @category Combinator
*/
function toReplete(value) {
return (rd) => rd.update(() => E.of(DE.replete(value)));
}
exports.toReplete = toReplete;
/**
* @since 0.12.1
* @category Combinator
*/
function loadEnv(env) {
return (rd) => (0, function_1.pipe)(rd, toLoading, E.chainW(() => rd.update(() => (0, function_1.pipe)(env, E.map(DE.replete)))));
}
exports.loadEnv = loadEnv;
/**
* @since 0.12.1
* @category Combinator
*/
function loadEnvEither(env) {
return (rd) => (0, function_1.pipe)(rd, toLoading, E.chainW(() => rd.update(() => (0, function_1.pipe)(env, E.map(DE.fromEither)))));
}
exports.loadEnvEither = loadEnvEither;
/**
* @since 0.12.1
* @category Combinator
*/
const map = (f) => (ref) => (0, function_1.pipe)(ref, Ref.map(DE.map(f)));
exports.map = map;
//# sourceMappingURL=RefDataEither.js.map