diff --git a/emvar-lite/mod.ts b/emvar-lite/mod.ts index 01846c4..55cb718 100644 --- a/emvar-lite/mod.ts +++ b/emvar-lite/mod.ts @@ -72,6 +72,9 @@ export function rangeOf(range: string | Checker): Checker { } export function rangeAnd(...ranges: (string | Checker)[]): Checker { + if (ranges.length === 0) { + throw new Error('No ranges given'); + } let [firstCheck, ...rest] = ranges.map(rangeOf); for (const checker of rest) { firstCheck = firstCheck.and(checker); @@ -80,6 +83,9 @@ export function rangeAnd(...ranges: (string | Checker)[]): Checker { } export function rangeOr(...ranges: (string | Checker)[]): Checker { + if (ranges.length === 0) { + throw new Error('No ranges given'); + } let [firstCheck, ...rest] = ranges.map(rangeOf); for (const checker of rest) { firstCheck = firstCheck.or(checker); diff --git a/emvar-lite/test.ts b/emvar-lite/test.ts index 1ad79f9..2e93784 100644 --- a/emvar-lite/test.ts +++ b/emvar-lite/test.ts @@ -157,4 +157,13 @@ const { test } = Deno; expect(checker.check("1.2")).toBe(false); expect(checker.check("1.2.1")).toBe(false); }) +} + +{ + test(`no and ranges`, () => { + expect(() => rangeAnd()).toThrow() + }) + test(`no or ranges`, () => { + expect(() => rangeOr()).toThrow() + }) } \ No newline at end of file