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
			| 
											3 years ago
										 | "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; |