UNPKG

@vtaits/form-schema

Version:

Serialization and parsing form values by schema

65 lines (64 loc) 1.82 kB
import { defaultErrorMessages } from "./chunk-O5F4Y5EZ.js"; // src/fields/input/input.ts function prepareValue(rawValue) { if (typeof rawValue === "number" || typeof rawValue === "boolean") { return String(rawValue); } if (typeof rawValue === "string") { return rawValue; } return ""; } var input = { serializerSingle: ({ value, fieldSchema: { isNumber } }) => { const strValue = prepareValue(value); if (isNumber) { const numericValue = Number.parseFloat(strValue); if (Number.isNaN(numericValue)) { return null; } return numericValue; } return strValue; }, parserSingle: ({ value }) => prepareValue(value), validatorBeforeSubmit: ({ setCurrentError, value, fieldSchema }) => { const { errorMessages: errorMessagesParam, isNumber, required, regExp: regExpParam, maxLength, minLength } = fieldSchema; const errorMessages = { ...defaultErrorMessages, ...errorMessagesParam }; const strValue = prepareValue(value); if (isNumber && strValue && Number.isNaN(Number.parseFloat(strValue))) { setCurrentError(errorMessages.invalidNumber); } if (required && !strValue) { setCurrentError(errorMessages.required); } if (minLength && strValue.length < minLength) { setCurrentError(errorMessages.minLengthStr(minLength)); } if (maxLength && strValue.length > maxLength) { setCurrentError(errorMessages.maxLengthStr(maxLength)); } if (regExpParam) { const regExp = regExpParam instanceof RegExp ? regExpParam : new RegExp(regExpParam); if (!regExp.test(strValue)) { setCurrentError(errorMessages.regexp(regExp.toString())); } } } }; export { input }; //# sourceMappingURL=fields_input.js.map