UNPKG

@typed/fp

Version:

Data Structures and Resources for fp-ts

38 lines 1.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Semigroup = exports.Eq = exports.Show = exports.progress = void 0; const tslib_1 = require("tslib"); const O = (0, tslib_1.__importStar)(require("fp-ts/Option")); const Eq_1 = require("./Eq"); const function_1 = require("./function"); /** * @since 0.9.2 * @category Constructor */ const progress = (loaded, total = O.none) => ({ loaded, total, }); exports.progress = progress; /** * @since 0.9.2 * @category Instance */ exports.Show = { show: (p) => (0, function_1.pipe)(p.total, O.matchW(() => `${p.loaded}`, () => `${p.loaded}/${p.total}`)), }; /** * @since 0.9.2 * @category Instance */ exports.Eq = { equals: (s) => (f) => Eq_1.deepEqualsEq.equals(s)(f), }; /** * @since 0.9.2 * @category Instance */ exports.Semigroup = { concat: (s) => (f) => (0, function_1.pipe)(O.Do, O.apS('sTotal', s.total), O.apS('fTotal', f.total), O.map(({ sTotal, fTotal }) => (0, exports.progress)(f.loaded + s.loaded, O.some(fTotal + sTotal))), O.getOrElse(() => (0, exports.progress)(f.loaded + s.loaded))), }; //# sourceMappingURL=Progress.js.map