@typed/fp
Version:
Data Structures and Resources for fp-ts
36 lines • 1.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.dispose = exports.add = exports.remove = exports.get = exports.RefDisposable = void 0;
const tslib_1 = require("tslib");
const function_1 = require("fp-ts/function");
const E = (0, tslib_1.__importStar)(require("./Env"));
const KV = (0, tslib_1.__importStar)(require("./KV"));
const Ref = (0, tslib_1.__importStar)(require("./Ref"));
/**
* A Ref for tracking resources that can be disposed of.
* @since 0.11.0
* @category Ref
*/
exports.RefDisposable = Ref.fromKV(KV.Disposable);
/**
* @since 0.11.0
* @category Effect
*/
exports.get = exports.RefDisposable.get;
/**
* @since 0.11.0
* @category Effect
*/
exports.remove = exports.RefDisposable.remove;
/**
* @since 0.11.0
* @category Effect
*/
const add = (disposable) => (0, function_1.pipe)(exports.RefDisposable.get, E.map((s) => s.addDisposable(disposable)));
exports.add = add;
/**
* @since 0.11.0
* @category Effect
*/
exports.dispose = (0, function_1.pipe)(exports.RefDisposable.get, E.map((d) => d.dispose()), E.chainFirstW(() => exports.RefDisposable.remove));
//# sourceMappingURL=RefDisposable.js.map