You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
2.0 KiB
56 lines
2.0 KiB
"use strict"; |
|
|
|
Object.defineProperty(exports, "__esModule", { |
|
value: true |
|
}); |
|
exports.default = formatISODuration; |
|
|
|
var _index = _interopRequireDefault(require("../_lib/requiredArgs/index.js")); |
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
|
|
|
/** |
|
* @name formatISODuration |
|
* @category Common Helpers |
|
* @summary Format a duration object according as ISO 8601 duration string |
|
* |
|
* @description |
|
* Format a duration object according to the ISO 8601 duration standard (https://www.digi.com/resources/documentation/digidocs/90001437-13/reference/r_iso_8601_duration_format.htm) |
|
* |
|
* @param {Duration} duration - the duration to format |
|
* |
|
* @returns {String} The ISO 8601 duration string |
|
* @throws {TypeError} Requires 1 argument |
|
* @throws {Error} Argument must be an object |
|
* |
|
* @example |
|
* // Format the given duration as ISO 8601 string |
|
* formatISODuration({ |
|
* years: 39, |
|
* months: 2, |
|
* days: 20, |
|
* hours: 7, |
|
* minutes: 5, |
|
* seconds: 0 |
|
* }) |
|
* //=> 'P39Y2M20DT0H0M0S' |
|
*/ |
|
function formatISODuration(duration) { |
|
(0, _index.default)(1, arguments); |
|
if (typeof duration !== 'object') throw new Error('Duration must be an object'); |
|
var _duration$years = duration.years, |
|
years = _duration$years === void 0 ? 0 : _duration$years, |
|
_duration$months = duration.months, |
|
months = _duration$months === void 0 ? 0 : _duration$months, |
|
_duration$days = duration.days, |
|
days = _duration$days === void 0 ? 0 : _duration$days, |
|
_duration$hours = duration.hours, |
|
hours = _duration$hours === void 0 ? 0 : _duration$hours, |
|
_duration$minutes = duration.minutes, |
|
minutes = _duration$minutes === void 0 ? 0 : _duration$minutes, |
|
_duration$seconds = duration.seconds, |
|
seconds = _duration$seconds === void 0 ? 0 : _duration$seconds; |
|
return "P".concat(years, "Y").concat(months, "M").concat(days, "DT").concat(hours, "H").concat(minutes, "M").concat(seconds, "S"); |
|
} |
|
|
|
module.exports = exports.default; |