UNPKG

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
"use strict"; 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))); }