n4s
Version:
typed schema validation version of enforce
40 lines (29 loc) • 1.02 kB
text/typescript
// Shared length-based predicates for strings and arrays.
// Works on any value with a .length property.
type Lengthable = { length: number };
export function minLength(value: Lengthable, n: number): boolean {
return value.length >= n;
}
export function maxLength(value: Lengthable, n: number): boolean {
return value.length <= n;
}
export const min = minLength;
export const max = maxLength;
export function lengthEquals(value: Lengthable, n: number): boolean {
return value.length === n;
}
export function lengthNotEquals(value: Lengthable, n: number): boolean {
return value.length !== n;
}
export function longerThan(value: Lengthable, n: number): boolean {
return value.length > n;
}
export function longerThanOrEquals(value: Lengthable, n: number): boolean {
return value.length >= n;
}
export function shorterThan(value: Lengthable, n: number): boolean {
return value.length < n;
}
export function shorterThanOrEquals(value: Lengthable, n: number): boolean {
return value.length <= n;
}