UNPKG

@topgroup/diginext

Version:

A BUILD SERVER & CLI to deploy apps to any Kubernetes clusters.

63 lines (62 loc) 2.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.allElementsAreEqual = exports.uniqueStrings = exports.filterUniqueItemWithCondition = exports.sortedDaysOfWeek = exports.filterUniqueItems = exports.filterAsync = void 0; function mapAsync(array, callbackfn) { return Promise.all(array.map(callbackfn)); } async function filterAsync(array, callbackfn) { const filterMap = await mapAsync(array, callbackfn); return array.filter((value, index) => filterMap[index]); } exports.filterAsync = filterAsync; function filterUniqueItems(arr) { return [...new Set(arr)]; } exports.filterUniqueItems = filterUniqueItems; const sortedDaysOfWeek = (daysOfWeek) => daysOfWeek.sort((a, b) => { const dayOrder = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"]; return dayOrder.indexOf(a) - dayOrder.indexOf(b); }); exports.sortedDaysOfWeek = sortedDaysOfWeek; function filterUniqueItemWithCondition(array, uniqueField, priorityCondition) { const uniqueMap = new Map(); array.forEach((item) => { const fieldValue = item[uniqueField]; const existingItem = uniqueMap.get(fieldValue); if (!existingItem) { uniqueMap.set(fieldValue, item); } else if (existingItem[priorityCondition.field] !== priorityCondition.value && item[priorityCondition.field] === priorityCondition.value) { uniqueMap.set(fieldValue, item); } }); return Array.from(uniqueMap.values()); } exports.filterUniqueItemWithCondition = filterUniqueItemWithCondition; /** * Create array of unique strings based on a given array of strings. * @example * const array = ["1", "2", "1"]; * console.log(uniqueStrings(array)); // Should log `["1", "2"]` * @param array - Input array * @returns {string[]} */ function uniqueStrings(array) { return [...new Set(array)]; } exports.uniqueStrings = uniqueStrings; /** * Check whether all elements in a single array are the same. * * @example * const array1 = ["1", "1", "1"]; * const array2 = ["1", "2", "1"]; * console.log(allElementsAreEqual(array1)); // Should log `true` * console.log(allElementsAreEqual(array2)); // Should log `false` * @param array - Input array * @returns {boolean} */ function allElementsAreEqual(array) { return array.every((element) => element === array[0]); } exports.allElementsAreEqual = allElementsAreEqual;