UNPKG

@aplus-frontend/antdv

Version:

Vue basic component library maintained based on ant-design-vue

48 lines (47 loc) 1.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _warning = require("../vc-util/warning"); var _default = (file, acceptedFiles) => { if (file && acceptedFiles) { const acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(','); const fileName = file.name || ''; const mimeType = file.type || ''; const baseMimeType = mimeType.replace(/\/.*$/, ''); return acceptedFilesArray.some(type => { const validType = type.trim(); // This is something like */*,* allow all files if (/^\*(\/\*)?$/.test(type)) { return true; } // like .jpg, .png if (validType.charAt(0) === '.') { const lowerFileName = fileName.toLowerCase(); const lowerType = validType.toLowerCase(); let affixList = [lowerType]; if (lowerType === '.jpg' || lowerType === '.jpeg') { affixList = ['.jpg', '.jpeg']; } return affixList.some(affix => lowerFileName.endsWith(affix)); } // This is something like a image/* mime type if (/\/\*$/.test(validType)) { return baseMimeType === validType.replace(/\/.*$/, ''); } // Full match if (mimeType === validType) { return true; } // Invalidate type should skip if (/^\w+$/.test(validType)) { (0, _warning.warning)(false, `Upload takes an invalidate 'accept' type '${validType}'.Skip for check.`); return true; } return false; }); } return true; }; exports.default = _default;