diff --git a/package.json b/package.json index 61be3ef..5ebe8df 100644 --- a/package.json +++ b/package.json @@ -26,9 +26,6 @@ "typedoc-material-theme": "^1.3.0" }, "pnpm": { - "onlyBuiltDependencies": [ - "@biomejs/biome", - "esbuild" - ] + "onlyBuiltDependencies": ["@biomejs/biome", "esbuild"] } } diff --git a/src/ts/strings.test.ts b/src/ts/strings.test.ts index 318605a..fc59197 100644 --- a/src/ts/strings.test.ts +++ b/src/ts/strings.test.ts @@ -14,3 +14,14 @@ describe('endsWithOneOf', () => { expect(strings.endsWithOneOf('baa', ['ab', 'ac'])).toBe(false); }); }); + +describe('iEqual', () => { + it('returns true when strings are equal', () => { + expect(strings.iEqual('A', 'a')).toBe(true); + expect(strings.iEqual('Hello, World!', 'hello, world!')).toBe(true); + }); + + it('returns false when strings are not equal', () => { + expect(strings.iEqual('a', 'b')).toBe(false); + }); +}); diff --git a/src/ts/strings.ts b/src/ts/strings.ts index ef680c1..1a00e51 100644 --- a/src/ts/strings.ts +++ b/src/ts/strings.ts @@ -37,3 +37,18 @@ export function endsWithOneOf(str: string, strings: string[]): boolean { return false; } + +/** Case insensitive equality. Returns true if `left.toLowerCase()` and `right.toLowerCase()` are equal. + * + * @param left + * @param right + * @returns + * + * ## Usage + * ```ts + * iEqual('Hello, World!', 'hello, World!'); // true + * ``` + */ +export function iEqual(left: string, right: string): boolean { + return left.toLowerCase() === right.toLowerCase(); +}