util-helpers
Version:
42 lines (38 loc) • 1.48 kB
JavaScript
;
var ut2 = require('ut2');
var file_util = require('./utils/file.util.js');
var getExtname = require('./getExtname.js');
function checkFileType(file, accept) {
var _a, _b;
var isFileType = ut2.isFile(file);
if (!isFileType && !file_util.isUploadFile(file)) {
return false;
}
if (!ut2.isString(accept)) {
accept = ut2.toString(accept);
}
accept = accept.trim();
if (!accept || accept === '*') {
return true;
}
var ret = false;
var types = accept.toLowerCase().split(/,(?:\s+)?/);
var fileName = (file.name || (!isFileType && (file.fileName || ((_a = file.originFileObj) === null || _a === void 0 ? void 0 : _a.name))) || '').toLowerCase();
var fileType = file.type || (!isFileType && ((_b = file.originFileObj) === null || _b === void 0 ? void 0 : _b.type)) || '';
var fileUrl = (!isFileType && file.url) || '';
types.some(function (type) {
if (type === '*' || fileType === type || (type.indexOf('.') === 0 && (getExtname(fileName) === type || getExtname(fileUrl) === type))) {
ret = true;
}
else if (type.includes('/*') && fileType.includes('/')) {
var match = type.match(/(.*)\/\*/);
var fileParentType = fileType.split('/')[0];
if (match && match[1] === fileParentType) {
ret = true;
}
}
return ret;
});
return ret;
}
module.exports = checkFileType;