@valkyriestudios/validator
Version:
A lightweight configurable javascript validator
20 lines (19 loc) • 639 B
JavaScript
import { fnv1A } from '@valkyriestudios/utils/hash/fnv1A';
import { memoize } from '@valkyriestudios/utils/caching/memoize';
const memoizedHashParams = memoize((params) => {
const hashed = [];
for (const el of params)
hashed.push(fnv1A(el));
return hashed;
});
function vIn(val, params) {
if (!Array.isArray(params) || params.length === 0)
return false;
if (typeof val === 'string' ||
Number.isFinite(val) ||
val === true ||
val === false)
return params.indexOf(val) > -1;
return memoizedHashParams(params).indexOf(fnv1A(val)) > -1;
}
export { vIn, vIn as default };