pomeranian-durations
Version:
An immutable duration library based on the ISO-8601 format for durations.
46 lines (37 loc) • 1.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.invert = exports.absolute = void 0;
var _transformations = require("./transformations");
var _utils = require("./_utils");
/**
* Generic helpers to do math operations on durations.
* @name default
*/
/**
* Converts all negative values from a duration and converts them to be positive.
* @param isoString {string} - isoString
* @returns isoString
* @example
* absolute('PT-1S') // => 'PT1S'
* @example
* absolute('PT1S') // => 'PT1S'
*/
var absolute = function absolute(isoString) {
return (0, _utils.pipe)(isoString, _transformations.toFragments, (0, _utils.mapValues)(Math.abs), _transformations.toIso);
};
/**
* Inverts all units of an iso duration.
* @param isoString {string} - isoString
* @returns isoString
* @example
* invert('PT-1M') // => 'PT1M'
* @example
* invert('P-1DT1S') // => 'P1DT-1S'
*/
exports.absolute = absolute;
var invert = function invert(isoString) {
return (0, _utils.pipe)(isoString, _transformations.toFragments, (0, _utils.mapValues)(_utils.negate), _transformations.toIso);
};
exports.invert = invert;