UNPKG

nhb-toolbox

Version:

A versatile collection of smart, efficient, and reusable utility functions, classes and types for everyday development needs.

49 lines (48 loc) 1.7 kB
import { isString } from '../guards/primitives.js'; export 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; } export function isOriginFileObj(value) { if (typeof value !== 'object' || value === null || Array.isArray(value)) { return false; } const obj = value; return isString(obj.uid); } export function isCustomFile(value) { if (typeof value !== 'object' || value === null || Array.isArray(value)) { return false; } const obj = value; return 'originFileObj' in obj && isOriginFileObj(obj.originFileObj); } export function isCustomFileArray(value) { return Array.isArray(value) && value?.length > 0 && value?.every(isCustomFile); } export function isFileArray(value) { return Array.isArray(value) && value?.length > 0 && value?.every(isFileOrBlob); } export function isFileList(value) { return typeof FileList !== 'undefined' && value instanceof FileList; } export function isFileOrBlob(value) { return ((typeof File !== 'undefined' && value instanceof File) || (typeof Blob !== 'undefined' && value instanceof Blob)); } export 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))); }