From 1711af850df97264fcd3ccb75a39ed8543eb2b8b Mon Sep 17 00:00:00 2001 From: dobon Date: Thu, 5 Dec 2024 22:27:29 -0800 Subject: [PATCH] replace nested ifs with a fall-through switch case --- src/datetime.js | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src/datetime.js b/src/datetime.js index 2fe6382e..78e894e7 100644 --- a/src/datetime.js +++ b/src/datetime.js @@ -250,19 +250,18 @@ function toISOTime( let desiredPrecision = Precision[normalizeUnit(precision)]; if (desiredPrecision === undefined) throw new InvalidUnitError(precision); - let c = padStart(o.c.hour); - if (desiredPrecision >= Precision.minute) { - if (extended) c += ":"; - c += padStart(o.c.minute); - const hideSeconds = suppressSeconds && o.c.millisecond === 0 && o.c.second === 0; - if (desiredPrecision >= Precision.second && !hideSeconds) { - if (extended) c += ":"; - c += padStart(o.c.second); - const hideMilliseconds = suppressMilliseconds && o.c.millisecond === 0; - if (desiredPrecision >= Precision.millisecond && !hideMilliseconds) { - c += "." + padStart(o.c.millisecond, 3); - } - } + switch (true) { + case (desiredPrecision >= Precision.hour): + c += padStart(o.c.hour); + case (desiredPrecision >= Precision.minute): + const extendedGlyph = (extended) ? ":" : ""; + c += extendedGlyph + padStart(o.c.minute); + case (desiredPrecision >= Precision.second): + if (suppressSeconds && o.c.millisecond === 0 && o.c.second === 0) break; + c += extendedGlyph + padStart(o.c.second); + case (desiredPrecision >= Precision.millisecond): + if (suppressMilliseconds && o.c.millisecond === 0) break; + c += "." + padStart(o.c.millisecond, 3); } if (includeOffset) {