victory-core
Version:
64 lines (62 loc) • 2.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.containsDates = containsDates;
exports.containsNumbers = containsNumbers;
exports.containsOnlyStrings = containsOnlyStrings;
exports.containsStrings = containsStrings;
exports.difference = difference;
exports.getMaxValue = getMaxValue;
exports.getMinValue = getMinValue;
exports.isArrayOfArrays = isArrayOfArrays;
exports.removeUndefined = removeUndefined;
function isNonEmptyArray(collection) {
return Array.isArray(collection) && collection.length > 0;
}
function containsStrings(collection) {
return Array.isArray(collection) && collection.some(value => typeof value === "string");
}
function containsDates(collection) {
return Array.isArray(collection) && collection.some(value => value instanceof Date);
}
function containsNumbers(collection) {
return Array.isArray(collection) && collection.some(value => typeof value === "number");
}
function containsOnlyStrings(collection) {
return isNonEmptyArray(collection) && collection.every(value => typeof value === "string");
}
/**
* Creates an array of array values not included in the other given arrays
* @param a The array to inspect
* @param b The values to exclude
* @returns The new array of filtered values
*/
function difference(a, b) {
if (a && b) {
return a.filter(value => !b.includes(value));
}
return [];
}
function isArrayOfArrays(collection) {
return isNonEmptyArray(collection) && collection.every(Array.isArray);
}
function removeUndefined(arr) {
return arr.filter(el => el !== undefined);
}
function getMaxValue(arr) {
for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
values[_key - 1] = arguments[_key];
}
const array = arr.concat(values);
return containsDates(array) ? new Date(Math.max(...array)) // Dates will be coerced to numbers
: Math.max(...array);
}
function getMinValue(arr) {
for (var _len2 = arguments.length, values = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
values[_key2 - 1] = arguments[_key2];
}
const array = arr.concat(values);
return containsDates(array) ? new Date(Math.min(...array)) // Dates will be coerced to numbers
: Math.min(...array);
}