diff --git a/src/compiler/core.ts b/src/compiler/core.ts index c5bdaf50c5e..249aededcdd 100644 --- a/src/compiler/core.ts +++ b/src/compiler/core.ts @@ -2250,18 +2250,26 @@ namespace ts { } } - export function padLeft(s: string, length: number) { - while (s.length < length) { - s = " " + s; - } - return s; + + /** + * Returns string left-padded with spaces or zeros until it reaches the given length. + * + * @param s String to pad. + * @param length Final padded length. If less than or equal to 's.length', returns 's' unchanged. + * @param padString Character to use as padding (default " "). + */ + export function padLeft(s: string, length: number, padString: " " | "0" = " ") { + return length <= s.length ? s : padString.repeat(length - s.length) + s; } - export function padRight(s: string, length: number) { - while (s.length < length) { - s = s + " "; - } - - return s; + /** + * Returns string right-padded with spaces until it reaches the given length. + * + * @param s String to pad. + * @param length Final padded length. If less than or equal to 's.length', returns 's' unchanged. + * @param padString Character to use as padding (default " "). + */ + export function padRight(s: string, length: number, padString: " " = " ") { + return length <= s.length ? s : s + padString.repeat(length - s.length); } } diff --git a/src/jsTyping/shared.ts b/src/jsTyping/shared.ts index ce6004f251d..b41d3d0c455 100644 --- a/src/jsTyping/shared.ts +++ b/src/jsTyping/shared.ts @@ -57,6 +57,6 @@ namespace ts.server { export function nowString() { // E.g. "12:34:56.789" const d = new Date(); - return `${d.getHours()}:${d.getMinutes()}:${d.getSeconds()}.${d.getMilliseconds()}`; + return `${padLeft(d.getHours().toString(), 2, "0")}:${padLeft(d.getMinutes().toString(), 2, "0")}:${padLeft(d.getSeconds().toString(), 2, "0")}.${padLeft(d.getMilliseconds().toString(), 3, "0")}`; } }