UNPKG

@vtaits/form-schema

Version:

Serialization and parsing form values by schema

79 lines (78 loc) 1.74 kB
import { defaultErrorMessages } from "./chunk-O5F4Y5EZ.js"; // src/fields/file/file.ts function prepareValue(rawValue) { if (!rawValue) { return null; } const fileValue = rawValue; if (fileValue.file) { return fileValue.file; } if (fileValue.hasPreviousFile) { return void 0; } return null; } var file = { serializerSingle: ({ value }) => { return prepareValue(value); }, parserSingle: ({ value }) => { if (!value) { return { file: null, hasPreviousFile: false }; } if (value instanceof Blob) { return { file: value, hasPreviousFile: true }; } if (typeof value === "string") { return { file: null, name: value, hasPreviousFile: true }; } if (typeof value === "object") { return { file: null, hasPreviousFile: true, ...value }; } }, validatorBeforeSubmit: ({ setCurrentError, value, fieldSchema }) => { const { errorMessages: errorMessagesParam, required, maxSize, minSize } = fieldSchema; const errorMessages = { ...defaultErrorMessages, ...errorMessagesParam }; const fileValue = prepareValue(value); if (required && (fileValue === void 0 && !value?.hasPreviousFile || fileValue === null)) { setCurrentError(errorMessages.required); } if (fileValue) { if (minSize && fileValue.size < minSize) { setCurrentError(errorMessages.minLengthFile(minSize)); } if (maxSize && fileValue.size > maxSize) { setCurrentError(errorMessages.maxLengthFile(maxSize)); } } } }; export { file }; //# sourceMappingURL=fields_file.js.map