Files
w4rpservices/node_modules/laravel-mix/src/helpers.js
2018-10-27 03:51:47 -05:00

62 lines
1.0 KiB
JavaScript
Vendored

let objectValues = require('lodash').values;
/**
* Generic tap function.
*
* @param {mixed} val
* @param {Function} callback
*/
global.tap = function(val, callback) {
callback(val);
return val;
};
/**
* Add tap to arrays.
*
* @param {mixed} val
* @param {Function} callback
*/
Object.defineProperty(Array.prototype, 'tap', {
value: function(callback) {
if (this.length) {
callback(this);
}
return this;
}
});
/**
* Reject items from an array.
*
* @param {mixed} val
* @param {Function} callback
*/
Object.defineProperty(Array.prototype, 'reject', {
value: function(callback) {
return this.filter(item => !callback(item));
}
});
/**
* Flatten the given array.
*
* @param {Array} arr
*/
global.flatten = function(arr) {
return [].concat.apply([], objectValues(arr));
};
/**
* Sort object by keys
*
* @param {Object} obj
*/
global.sortObjectKeys = obj => {
return Object.keys(obj)
.sort()
.reduce((r, k) => ((r[k] = obj[k]), r), {});
};