UNPKG

util-helpers

Version:

一个基于业务场景的工具方法库

42 lines (38 loc) 1.48 kB
'use strict'; 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;