UNPKG

helping-js

Version:

helping-js: zero-dependency JavaScript utilities — type guards, 50+ regex patterns, validate(), TypeScript .d.ts, v3 helpers (string, array, object, async, date, URL, tree, DOM). Official docs: https://helping-js.netlify.app

36 lines (35 loc) 1.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.validate = validate; /** * Lightweight schema/rule-based validation. * Rules can be a RegExp (test against String(value)) or a function (value) => boolean. * @param {Record<string, unknown>} data - Object to validate * @param {Record<string, RegExp | ((value: unknown) => boolean)>} rules - Map of field name to rule * @returns {{ valid: boolean, errors: Record<string, boolean> }} */ function validate(data, rules) { var errors = {}; var valid = true; for (var _i = 0, _Object$keys = Object.keys(rules); _i < _Object$keys.length; _i++) { var key = _Object$keys[_i]; var rule = rules[key]; var value = data[key]; var pass = false; if (typeof rule === 'function') { pass = rule(value) === true; } else if (rule && typeof rule.test === 'function') { pass = rule.test(String(value !== null && value !== void 0 ? value : '')) === true; } if (!pass) { errors[key] = false; valid = false; } } return { valid: valid, errors: errors }; }