@navikt/ds-react
Version:
React components from the Norwegian Labour and Welfare Administration.
48 lines • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateFiles = void 0;
const FileUpload_types_1 = require("../FileUpload.types");
const is_accepted_file_type_1 = require("./is-accepted-file-type");
const is_accepted_size_1 = require("./is-accepted-size");
const validateFiles = (files, accept, validator, maxSizeInBytes = -1) => {
const allFiles = [];
const accepted = [];
const rejected = [];
files.forEach((file) => {
const acceptedFileType = (0, is_accepted_file_type_1.isAcceptedFileType)(file, accept);
const acceptedFileSize = (0, is_accepted_size_1.isAcceptedSize)(file, maxSizeInBytes);
const customValidation = validator ? validator(file) : true;
const reasons = [];
if (customValidation !== true) {
reasons.push(customValidation);
}
if (!acceptedFileType) {
reasons.push(FileUpload_types_1.fileRejectionReason.FileType);
}
if (!acceptedFileSize) {
reasons.push(FileUpload_types_1.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,
},
};
};
exports.validateFiles = validateFiles;
//# sourceMappingURL=validate-files.js.map