diff options
Diffstat (limited to 'std/strings/pad.ts')
-rw-r--r-- | std/strings/pad.ts | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/std/strings/pad.ts b/std/strings/pad.ts deleted file mode 100644 index b72ae2074..000000000 --- a/std/strings/pad.ts +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. - -/** FillOption Object */ -export interface FillOption { - /** Char to fill in */ - char?: string; - /** Side to fill in */ - side?: "left" | "right"; - /** If strict, output string can't be greater than strLen*/ - strict?: boolean; - /** char/string used to specify the string has been truncated */ - strictChar?: string; - /** Side of truncate */ - strictSide?: "left" | "right"; -} - -/** - * Pad helper for strings. - * Input string is processed to output a string with a minimal length. - * If the parameter `strict` is set to true, the output string length - * is equal to the `strLen` parameter. - * Example: - * - * pad("deno", 6, { char: "*", side: "left" }) // output : "**deno" - * pad("deno", 6, { char: "*", side: "right"}) // output : "deno**" - * pad("denosorusrex", 6 { - * char: "*", - * side: "left", - * strict: true, - * strictSide: "right", - * strictChar: "..." - * }) // output : "den..." - * - * @param input Input string - * @param strLen Output string lenght - * @param opts Configuration object - * @param [opts.char=" "] Character used to fill in - * @param [opts.side="left"] Side to fill in - * @param [opts.strict=false] Flag to truncate the string if length > strLen - * @param [opts.strictChar=""] Character to add if string is truncated - * @param [opts.strictSide="right"] Side to truncate - */ -export function pad( - input: string, - strLen: number, - opts: FillOption = { - char: " ", - strict: false, - side: "left", - strictChar: "", - strictSide: "right", - } -): string { - let out = input; - const outL = out.length; - if (outL < strLen) { - if (!opts.side || opts.side === "left") { - out = out.padStart(strLen, opts.char); - } else { - out = out.padEnd(strLen, opts.char); - } - } else if (opts.strict && outL > strLen) { - const addChar = opts.strictChar ? opts.strictChar : ""; - if (opts.strictSide === "left") { - let toDrop = outL - strLen; - if (opts.strictChar) { - toDrop += opts.strictChar.length; - } - out = `${addChar}${out.slice(toDrop, outL)}`; - } else { - out = `${out.substring(0, strLen - addChar.length)}${addChar}`; - } - } - return out; -} |