UNPKG

time-conversion-ts

Version:

A tiny typescript library to convert between various time units

117 lines (116 loc) 4.1 kB
"use strict"; 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;