nhb-toolbox
Version:
A versatile collection of smart, efficient, and reusable utility functions, classes and types for everyday development needs.
59 lines (58 loc) • 2.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isValidFormData = isValidFormData;
exports.isOriginFileObj = isOriginFileObj;
exports.isCustomFile = isCustomFile;
exports.isCustomFileArray = isCustomFileArray;
exports.isFileArray = isFileArray;
exports.isFileList = isFileList;
exports.isFileOrBlob = isFileOrBlob;
exports.isFileUpload = isFileUpload;
const primitives_1 = require("../guards/primitives");
function isValidFormData(value) {
if (!(value instanceof FormData))
return false;
if ('entries' in value) {
if (typeof value.entries !== 'function') {
console.warn('`FormData.entries()` is not supported!');
return false;
}
return Array.from(value.entries())?.length > 0;
}
return false;
}
function isOriginFileObj(value) {
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
return false;
}
const obj = value;
return (0, primitives_1.isString)(obj.uid);
}
function isCustomFile(value) {
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
return false;
}
const obj = value;
return 'originFileObj' in obj && isOriginFileObj(obj.originFileObj);
}
function isCustomFileArray(value) {
return Array.isArray(value) && value?.length > 0 && value?.every(isCustomFile);
}
function isFileArray(value) {
return Array.isArray(value) && value?.length > 0 && value?.every(isFileOrBlob);
}
function isFileList(value) {
return typeof FileList !== 'undefined' && value instanceof FileList;
}
function isFileOrBlob(value) {
return ((typeof File !== 'undefined' && value instanceof File) ||
(typeof Blob !== 'undefined' && value instanceof Blob));
}
function isFileUpload(value) {
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
return false;
}
const obj = value;
return (('file' in obj && isCustomFile(obj.file)) ||
('fileList' in obj && isCustomFileArray(obj.fileList)));
}