jet-validators
Version:
Fast, zero-dependency TypeScript validators and utilities for runtime checks, parsing, and lightweight object schema validation.
27 lines (26 loc) • 733 B
JavaScript
import { markSafe } from '../utils/parseObject/mark-safe.js';
export function isInArray(arg) {
return isInArrayCore(arg, false, false);
}
export function isOptionalInArray(arg) {
return isInArrayCore(arg, true, false);
}
export function isNullableInArray(arg) {
return isInArrayCore(arg, false, true);
}
export function isNullishInArray(arg) {
return isInArrayCore(arg, true, true);
}
function isInArrayCore(arr, optional, nullable) {
const lookup = new Set(arr);
const validator = (arg) => {
if (arg === undefined) {
return !!optional;
}
if (arg === null) {
return !!nullable;
}
return lookup.has(arg);
};
return markSafe(validator);
}