UNPKG

@xlink-network/xlink-sdk

Version:
104 lines (103 loc) 2.33 kB
// src/utils/arrayHelpers.ts function hasAny(ary) { return ary.length > 0; } function hasLength(input, length) { return input.length === length; } function first(ary) { return ary[0]; } function last(ary) { return ary[ary.length - 1]; } var _concat = [].concat; function concat(...inputArrays) { return _concat.apply([], inputArrays); } var _reduce = [].reduce; function reduce(fn, initialValue, inputArray) { return _reduce.call(inputArray, fn, initialValue); } function range(start, end) { return Array.from({ length: end - start }, (_, i) => i + start); } function reverse(ary) { const newAry = [...ary]; newAry.reverse(); return newAry; } function uniq(ary, iteratee = (item) => item) { const seen = /* @__PURE__ */ new Set(); return ary.filter((item) => { const key = iteratee(item); if (seen.has(key)) { return false; } seen.add(key); return true; }); } function oneOf(...coll) { return (input) => coll.includes(input); } function sortBy(iteratee, ary) { const _iteratee = Array.isArray(iteratee) ? iteratee : [iteratee]; return ary.map((value, index, ary2) => ({ value, index, criteria: _iteratee.map((f) => f(value, index, ary2)) })).sort((left, right) => compareMultiple(left, right)).map((v) => v.value); } function compareMultiple(obj, oth) { const objCriteria = obj.criteria; const othCriteria = oth.criteria; const length = objCriteria.length; let index = -1; while (++index < length) { const objCri = objCriteria[index]; const othCri = othCriteria[index]; let result = 0; if (typeof objCri === typeof othCri) { result = Number(objCri - othCri); } else { result = Number(objCri) - Number(othCri); } if (result) return result; } return obj.index - oth.index; } var mapFind = (fn, input) => { for (const item of input) { const result = fn(item); if (result != null) { return result; } } return void 0; }; var mapFindP = async (fn, input) => { for (const item of input) { const result = await fn(item); if (result != null) { return result; } } return void 0; }; export { hasAny, hasLength, first, last, concat, reduce, range, reverse, uniq, oneOf, sortBy, mapFind, mapFindP }; //# sourceMappingURL=chunk-PRLWYSC3.mjs.map