@navikt/ds-react
Version:
React components from the Norwegian Labour and Welfare Administration.
44 lines • 1.37 kB
JavaScript
import { fileRejectionReason, } from "../FileUpload.types.js";
import { isAcceptedFileType } from "./is-accepted-file-type.js";
import { isAcceptedSize } from "./is-accepted-size.js";
export const validateFiles = (files, accept, validator, maxSizeInBytes = -1) => {
const allFiles = [];
const accepted = [];
const rejected = [];
files.forEach((file) => {
const acceptedFileType = isAcceptedFileType(file, accept);
const acceptedFileSize = isAcceptedSize(file, maxSizeInBytes);
const customValidation = validator ? validator(file) : true;
const reasons = [];
if (customValidation !== true) {
reasons.push(customValidation);
}
if (!acceptedFileType) {
reasons.push(fileRejectionReason.FileType);
}
if (!acceptedFileSize) {
reasons.push(fileRejectionReason.FileSize);
}
allFiles.push({
file,
error: reasons.length > 0,
reasons,
});
if (reasons.length === 0) {
accepted.push(file);
return;
}
rejected.push({
file,
reasons,
});
});
return {
files: allFiles,
partitionedFiles: {
accepted,
rejected,
},
};
};
//# sourceMappingURL=validate-files.js.map