@typed/fp
Version:
Data Structures and Resources for fp-ts
31 lines • 804 B
JavaScript
import { pipe } from 'fp-ts/function';
import * as E from './Env';
import * as KV from './KV';
import * as Ref from './Ref';
/**
* A Ref for tracking resources that can be disposed of.
* @since 0.11.0
* @category Ref
*/
export const RefDisposable = Ref.fromKV(KV.Disposable);
/**
* @since 0.11.0
* @category Effect
*/
export const get = RefDisposable.get;
/**
* @since 0.11.0
* @category Effect
*/
export const remove = RefDisposable.remove;
/**
* @since 0.11.0
* @category Effect
*/
export const add = (disposable) => pipe(RefDisposable.get, E.map((s) => s.addDisposable(disposable)));
/**
* @since 0.11.0
* @category Effect
*/
export const dispose = pipe(RefDisposable.get, E.map((d) => d.dispose()), E.chainFirstW(() => RefDisposable.remove));
//# sourceMappingURL=RefDisposable.js.map