@alwatr/parse-duration
Version:
A simple utility to parse a duration string into milliseconds number.
48 lines (46 loc) • 1.3 kB
JavaScript
/* @alwatr/parse-duration v5.5.4 */
// src/main.ts
import { toNumber } from "@alwatr/is-number";
import { packageTracer } from "@alwatr/package-tracer";
__dev_mode__: packageTracer.add("@alwatr/parse-duration", "5.5.4");
var unitConversion = /* @__PURE__ */ Object.freeze({
s: 1e3,
m: 6e4,
h: 36e5,
d: 864e5,
w: 6048e5,
M: 2592e6,
y: 31536e6
});
var parseDuration = (duration, toUnit) => {
let ms;
if (typeof duration === "number") {
ms = duration;
} else {
if (duration.length < 2) {
throw new Error("invalid_format", { cause: { duration } });
}
const durationUnit = duration.slice(-1);
const unitConversionFactor = unitConversion[durationUnit];
if (unitConversionFactor === void 0) {
throw new Error("invalid_unit", { cause: { durationUnit } });
}
const durationNumber = toNumber(duration.slice(0, -1));
if (durationNumber === null) {
throw new Error("not_a_number", { cause: { duration } });
}
ms = durationNumber * unitConversionFactor;
}
if (toUnit === void 0) {
return ms;
}
const toFactor = unitConversion[toUnit];
if (toFactor === void 0) {
throw new Error("invalid_unit", { cause: { toUnit } });
}
return ms / toFactor;
};
export {
parseDuration
};
//# sourceMappingURL=main.mjs.map