From baae22657e5ea4504ca817fbf02b489e495e0b5a Mon Sep 17 00:00:00 2001 From: Waldemar Reusch Date: Sat, 1 Apr 2023 22:44:13 +0200 Subject: [PATCH] style: fix formatting --- src/bin/tools/trimIndent.ts | 8 +++-- test/bin/tools/trimIndet.spec.ts | 50 ++++++++++++++++++-------------- 2 files changed, 34 insertions(+), 24 deletions(-) diff --git a/src/bin/tools/trimIndent.ts b/src/bin/tools/trimIndent.ts index 1c826cd7..7ebafb7a 100644 --- a/src/bin/tools/trimIndent.ts +++ b/src/bin/tools/trimIndent.ts @@ -30,9 +30,11 @@ export default function trimIndent(strings: TemplateStringsArray, ...args: any[] let string = populateTemplate(strings, ...args) .replace(/^[\r\n]/, "") .replace(/\r?\n *$/, ""); - const dents = string.match(/^([ \t])+/gm) - ?.filter(s => /^\s+$/.test(s)) - ?.map(s => s.length) ?? []; + const dents = + string + .match(/^([ \t])+/gm) + ?.filter(s => /^\s+$/.test(s)) + ?.map(s => s.length) ?? []; // No dents? no change required if (!dents || dents.length == 0) return string; const minDent = Math.min(...dents); diff --git a/test/bin/tools/trimIndet.spec.ts b/test/bin/tools/trimIndet.spec.ts index b25c33e9..07dd8af5 100644 --- a/test/bin/tools/trimIndet.spec.ts +++ b/test/bin/tools/trimIndet.spec.ts @@ -2,36 +2,35 @@ import trimIndent from "keycloakify/bin/tools/trimIndent"; import { it, describe, assert } from "vitest"; describe("trimIndent", () => { - it("does not change a left-aligned string as expected", () => { const txt = trimIndent`lorem -ipsum` - assert.equal(txt, ['lorem', 'ipsum'].join('\n')) - }) +ipsum`; + assert.equal(txt, ["lorem", "ipsum"].join("\n")); + }); it("removes leading and trailing empty lines from a left-aligned string", () => { const txt = trimIndent` lorem ipsum -` - assert.equal(txt, ['lorem', 'ipsum'].join('\n')) - }) +`; + assert.equal(txt, ["lorem", "ipsum"].join("\n")); + }); it("removes indent from an aligned string", () => { const txt = trimIndent` lorem ipsum - ` - assert.equal(txt, ['lorem', 'ipsum'].join('\n')) - }) + `; + assert.equal(txt, ["lorem", "ipsum"].join("\n")); + }); it("removes indent from unaligned string", () => { const txt = trimIndent` lorem ipsum - ` - assert.equal(txt, ['lorem', ' ipsum'].join('\n')) - }) + `; + assert.equal(txt, ["lorem", " ipsum"].join("\n")); + }); it("removes only first and last empty line", () => { const txt = trimIndent` @@ -39,19 +38,28 @@ ipsum lorem ipsum - ` - - assert.equal(txt, ['', 'lorem', 'ipsum', ''].join('\n')) - }) + `; + assert.equal(txt, ["", "lorem", "ipsum", ""].join("\n")); + }); it("interpolates non-strings", () => { - const d = new Date() + const d = new Date(); const txt = trimIndent` lorem ${d} - ipsum` + ipsum`; - assert.equal(txt, ['lorem', String(d), 'ipsum'].join('\n')) + assert.equal(txt, ["lorem", String(d), "ipsum"].join("\n")); + }); +}); + + it("inderpolates preserving new-lines in the interpolated bits", () => { + const a = ["ipsum", "dolor", "sit"].join('\n') + const txt = trimIndent` + lorem + ${a} + amet + ` + assert.equal(txt, ['lorem', 'ipsum', 'dolor', 'sit', 'amet'].join('\n')) }) -}) \ No newline at end of file