laravel-form-validation
Version:
Yet another form validation helper for Laravel
47 lines (46 loc) • 1.05 kB
JavaScript
/**
* Check if the given data contains any instance of File.
*
* @param {Object} data
* @return {Boolean}
*/
var hasFile = function (data) {
for (var property in data) {
if (hasFileDeep(data[property])) {
return true;
}
}
return false;
};
/**
* Determines if object is file.
*
* @param {Object} item
* @returns {boolean}
*/
var isFile = function (item) {
return item instanceof Blob || item instanceof FileList;
};
/**
* Check if the given item is (or contains) a File.
*
* @param {Object|Array} item
* @return {Boolean}
*/
var hasFileDeep = function (item) {
if (isFile(item)) {
return true;
}
if (typeof item === 'object') {
for (var key in item) {
if (item.hasOwnProperty(key) && hasFileDeep(item[key])) {
return true;
}
}
}
if (Array.isArray(item)) {
return item.some(function (element) { return hasFileDeep(element); });
}
return false;
};
export { hasFile, isFile, hasFileDeep };