UNPKG

@mantine/form

Version:

Mantine form management library

64 lines (63 loc) 2.22 kB
"use client"; const require_get_path = require("../paths/get-path.cjs"); const require_validate_values = require("./validate-values.cjs"); const require_get_rule_for_path = require("./get-rule-for-path.cjs"); //#region packages/@mantine/form/src/validate/validate-field-value.ts const defaultResolveError = (err) => err instanceof Error ? err.message : String(err); function fieldResultFromErrors(path, errors) { const pathInError = Object.keys(errors).find((errorKey) => path.split(".").every((pathPart, i) => pathPart === errorKey.split(".")[i])); return { hasError: !!pathInError, error: pathInError ? errors[pathInError] : null }; } function validateFieldValue(path, rules, values, resolveValidationError = defaultResolveError, signal = new AbortController().signal) { if (typeof path !== "string") return { hasError: false, error: null }; if (typeof rules === "function") { const results = require_validate_values.validateValues(rules, values, resolveValidationError, signal); if (results instanceof Promise) return results.then((r) => fieldResultFromErrors(path, r.errors)); return fieldResultFromErrors(path, results.errors); } const rule = require_get_rule_for_path.getRuleForPath(path, rules); if (rule) { const value = require_get_path.getPath(path, values); try { const result = rule(value, values, path, signal); if (result instanceof Promise) return result.then((error) => { if (error) return { hasError: true, error }; return { hasError: false, error: null }; }, (err) => ({ hasError: true, error: resolveValidationError(err) })); if (result) return { hasError: true, error: result }; return { hasError: false, error: null }; } catch (err) { return { hasError: true, error: resolveValidationError(err) }; } } const results = require_validate_values.validateValues(rules, values, resolveValidationError, signal); if (results instanceof Promise) return results.then((r) => fieldResultFromErrors(path, r.errors)); return fieldResultFromErrors(path, results.errors); } //#endregion exports.validateFieldValue = validateFieldValue; //# sourceMappingURL=validate-field-value.cjs.map