diff options
-rw-r--r-- | std/strings/mod.ts | 1 | ||||
-rw-r--r-- | std/strings/pad.ts | 75 | ||||
-rw-r--r-- | std/strings/pad_test.ts | 73 |
3 files changed, 0 insertions, 149 deletions
diff --git a/std/strings/mod.ts b/std/strings/mod.ts index 4603068ef..def161ae0 100644 --- a/std/strings/mod.ts +++ b/std/strings/mod.ts @@ -2,4 +2,3 @@ export * from "./encode.ts"; export * from "./decode.ts"; -export * from "./pad.ts"; 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; -} diff --git a/std/strings/pad_test.ts b/std/strings/pad_test.ts deleted file mode 100644 index 806874bd0..000000000 --- a/std/strings/pad_test.ts +++ /dev/null @@ -1,73 +0,0 @@ -const { test } = Deno; -import { assertEquals } from "../testing/asserts.ts"; -import { pad } from "./pad.ts"; - -test(function padTest(): void { - const expected1 = "**deno"; - const expected2 = "deno"; - const expected3 = "deno**"; - const expected4 = "denosorusrex"; - const expected5 = "denosorus"; - const expected6 = "sorusrex"; - const expected7 = "den..."; - const expected8 = "...rex"; - assertEquals(pad("deno", 6, { char: "*", side: "left" }), expected1); - assertEquals(pad("deno", 4, { char: "*", side: "left" }), expected2); - assertEquals(pad("deno", 6, { char: "*", side: "right" }), expected3); - assertEquals( - pad("denosorusrex", 4, { - char: "*", - side: "right", - strict: false, - }), - expected4 - ); - assertEquals( - pad("denosorusrex", 9, { - char: "*", - side: "left", - strict: true, - strictSide: "right", - }), - expected5 - ); - assertEquals( - pad("denosorusrex", 8, { - char: "*", - side: "left", - strict: true, - strictSide: "left", - }), - expected6 - ); - assertEquals( - pad("denosorusrex", 6, { - char: "*", - side: "left", - strict: true, - strictSide: "right", - strictChar: "...", - }), - expected7 - ); - assertEquals( - pad("denosorusrex", 6, { - char: "*", - side: "left", - strict: true, - strictSide: "left", - strictChar: "...", - }), - expected8 - ); - assertEquals( - pad("deno", 4, { - char: "*", - side: "left", - strict: true, - strictSide: "right", - strictChar: "...", - }), - expected2 - ); -}); |