time-conversion-ts
Version:
A tiny typescript library to convert between various time units
117 lines (116 loc) • 4.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var types_1 = require("./types");
var Time = /** @class */ (function () {
function Time() {
}
/**
* Convert a time value from any supported unit to milliseconds
* @param value The time value to convert
* @param units The time value unit type
*/
Time.toMilliseconds = function (value, units) {
if (units === void 0) { units = types_1.TimeUnit.Milliseconds; }
switch (units) {
case types_1.TimeUnit.Days:
value *= 24 /* Day */;
case types_1.TimeUnit.Hours:
value *= 60 /* Hour */;
case types_1.TimeUnit.Minutes:
value *= 60 /* Minute */;
case types_1.TimeUnit.Seconds:
value *= 1000 /* Second */;
case types_1.TimeUnit.Milliseconds:
return value;
default:
throw new Error('Invalid TimeUnit');
}
};
/**
* Convert a time value from milliseconds to any supported unit
* @param ms The millisecond time value to convert
* @param units The time value unit type
*/
Time.fromMilliseconds = function (ms, units) {
switch (units) {
case types_1.TimeUnit.Days:
return ms / 86400000 /* Day */;
case types_1.TimeUnit.Hours:
return ms / 3600000 /* Hour */;
case types_1.TimeUnit.Minutes:
return ms / 60000 /* Minute */;
case types_1.TimeUnit.Seconds:
return ms / 1000 /* Second */;
case types_1.TimeUnit.Milliseconds:
return ms;
default:
throw new Error('Invalid TimeUnit');
}
};
/**
* Convert a time value from any supported unit to seconds
* @param value The time value to convert
* @param units The time value unit type
*/
Time.toSeconds = function (value, units) {
if (units === void 0) { units = types_1.TimeUnit.Seconds; }
switch (units) {
case types_1.TimeUnit.Days:
value *= 24 /* Day */;
case types_1.TimeUnit.Hours:
value *= 60 /* Hour */;
case types_1.TimeUnit.Minutes:
value *= 60 /* Minute */;
case types_1.TimeUnit.Seconds:
return value;
case types_1.TimeUnit.Milliseconds:
return value / 1000 /* Second */;
default:
throw new Error('Invalid TimeUnit');
}
};
/**
* Convert a time value from seconds to any supported unit
* @param s The second time value to convert
* @param units The time value unit type
*/
Time.fromSeconds = function (s, units) {
switch (units) {
case types_1.TimeUnit.Days:
return s / 86400 /* Day */;
case types_1.TimeUnit.Hours:
return s / 3600 /* Hour */;
case types_1.TimeUnit.Minutes:
return s / 60 /* Minute */;
case types_1.TimeUnit.Seconds:
return s;
case types_1.TimeUnit.Milliseconds:
return s * 1000 /* Second */;
default:
throw new Error('Invalid TimeUnit');
}
};
/**
* Convert a time quantity to any supported unit
* @param quantity The time quantity
* @param unit The unit type of the time quantity
*/
Time.from = function (quantity, unit) {
return (quantity && this.fromMilliseconds(quantity.getTotalMilliseconds(), unit));
};
/**
* Assert the passed time unit is valid
* @param unit The unit type to check
*/
Time.assertValid = function (unit) {
if (isNaN(unit) ||
unit > types_1.TimeUnit.Days ||
unit < types_1.TimeUnit.Milliseconds ||
Math.floor(unit) !== unit) {
throw new Error('Invalid TimeUnit');
}
return true;
};
return Time;
}());
exports.Time = Time;