@typed/fp
Version:
Data Structures and Resources for fp-ts
49 lines • 1.14 kB
JavaScript
/**
* RefData is a collection of helpers for working with Refs that manage Data.
* @since 0.12.1
*/
import { flow, pipe } from 'fp-ts/function';
import * as D from './Data';
import * as E from './Env';
import * as Ref from './Ref';
/**
* @since 0.12.1
* @category Combinator
*/
export function toNoData(rd) {
return rd.update(() => E.of(D.noData));
}
/**
* @since 0.12.1
* @category Combinator
*/
export function toLoading(rd) {
return rd.update(flow(D.toLoading, E.of));
}
/**
* @since 0.12.1
* @category Combinator
*/
export function toRefresh(value, progress) {
return (rd) => rd.update(() => E.of(D.refresh(value, progress)));
}
/**
* @since 0.12.1
* @category Combinator
*/
export function toReplete(value) {
return (rd) => rd.update(() => E.of(D.replete(value)));
}
/**
* @since 0.12.1
* @category Combinator
*/
export function loadEnv(env) {
return (rd) => pipe(rd, toLoading, E.chainW(() => rd.update(() => pipe(env, E.map(D.replete)))));
}
/**
* @since 0.12.1
* @category Combinator
*/
export const map = (f) => (ref) => pipe(ref, Ref.map(D.map(f)));
//# sourceMappingURL=RefData.js.map