@valkyriestudios/validator
Version:
A lightweight configurable javascript validator
23 lines (22 loc) • 773 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.vIn = vIn;
exports.default = vIn;
const fnv1A_1 = require("@valkyriestudios/utils/hash/fnv1A");
const memoize_1 = require("@valkyriestudios/utils/caching/memoize");
const memoizedHashParams = (0, memoize_1.memoize)((params) => {
const hashed = [];
for (const el of params)
hashed.push((0, fnv1A_1.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((0, fnv1A_1.fnv1A)(val)) > -1;
}