UNPKG

pomeranian-durations

Version:

An immutable duration library based on the ISO-8601 format for durations.

46 lines (37 loc) 1.15 kB
"use strict"; 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;