decord/source/modules/queries/ArraySearch.tsx

225 lines
6.5 KiB
TypeScript
Raw Normal View History

2026-07-27 11:26:19 +00:00
// Module ID: 11182
// Function ID: 86960
2026-07-20 16:05:17 +00:00
// Name: _createForOfIteratorHelperLoose
2026-07-23 10:11:24 +00:00
// Dependencies: [2]
2026-07-20 16:05:17 +00:00
// Exports: queryData
2026-07-27 11:26:19 +00:00
// Module 11182 (_createForOfIteratorHelperLoose)
2026-07-23 10:11:24 +00:00
function _createForOfIteratorHelperLoose(iterable) {
let closure_0 = iterable;
iterable = "undefined" !== typeof Symbol;
if (iterable) {
2026-07-20 16:05:17 +00:00
const _Symbol = Symbol;
2026-07-23 10:11:24 +00:00
iterable = iterable[Symbol.iterator];
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
if (!iterable) {
iterable = iterable[Symbol.iterator];
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
if (iterable) {
const iter = iterable.call(iterable);
2026-07-20 16:05:17 +00:00
const next = iter.next;
return next.bind(iter);
} else {
const _Array = Array;
2026-07-23 10:11:24 +00:00
let tmp = iterable;
if (!Array.isArray(iterable)) {
2026-07-20 16:05:17 +00:00
let tmp2;
2026-07-23 10:11:24 +00:00
if (iterable) {
if ("string" === typeof iterable) {
tmp2 = _arrayLikeToArray(iterable, undefined);
2026-07-20 16:05:17 +00:00
} else {
const toString = {}.toString;
2026-07-23 10:11:24 +00:00
const substr = toString.call(iterable).slice(8, -1);
2026-07-20 16:05:17 +00:00
let name = substr;
if (tmp3) {
2026-07-23 10:11:24 +00:00
name = iterable.constructor.name;
2026-07-20 16:05:17 +00:00
}
if ("Map" !== name) {
if ("Set" !== name) {
if ("Arguments" === name) {
2026-07-23 10:11:24 +00:00
let arr = _arrayLikeToArray(iterable, undefined);
2026-07-20 16:05:17 +00:00
} else {
2026-07-23 10:11:24 +00:00
let obj = /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/;
2026-07-20 16:05:17 +00:00
}
}
tmp2 = arr;
}
const _Array2 = Array;
2026-07-23 10:11:24 +00:00
arr = Array.from(iterable);
const callResult = toString.call(iterable);
tmp3 = "Object" === substr && iterable.constructor;
2026-07-20 16:05:17 +00:00
}
}
tmp = tmp2;
if (!tmp2) {
const _TypeError = TypeError;
const typeError = new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
throw typeError;
}
}
if (tmp) {
2026-07-23 10:11:24 +00:00
closure_0 = tmp;
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
_arrayLikeToArray = 0;
2026-07-20 16:05:17 +00:00
return () => {
2026-07-23 10:11:24 +00:00
if (closure_1 >= length.length) {
2026-07-20 16:05:17 +00:00
let obj = { done: true };
} else {
obj = { done: false };
closure_1 = tmp3 + 1;
2026-07-23 10:11:24 +00:00
obj.value = length[+closure_1];
2026-07-20 16:05:17 +00:00
}
return obj;
};
}
}
function _arrayLikeToArray(arg0, arg1) {
let length;
if (tmp) {
length = arg0.length;
}
const ArrayResult = Array(length);
for (let num = 0; num < length; num = num + 1) {
ArrayResult[num] = arg0[num];
}
return ArrayResult;
}
function sortGroup(value, sortComparers) {
2026-07-23 10:11:24 +00:00
let closure_0 = sortComparers;
2026-07-20 16:05:17 +00:00
return value.sort((arg0, arg1) => {
2026-07-23 10:11:24 +00:00
const tmp = sortComparers(sortComparers);
2026-07-20 16:05:17 +00:00
const iter = tmp();
let iter2 = iter;
if (!iter.done) {
const valueResult = iter2.value(arg0, arg1);
while (0 === valueResult) {
let iter3 = tmp();
iter2 = iter3;
}
return valueResult;
}
return 0;
});
}
2026-07-23 10:11:24 +00:00
const result = require("set").fileFinishedImporting("modules/queries/ArraySearch.tsx");
2026-07-20 16:05:17 +00:00
export const queryData = function queryData(arr, limit) {
limit = limit.limit;
let num = Infinity;
if (null != limit) {
num = limit;
}
let filterPredicates = limit.filterPredicates;
if (null == filterPredicates) {
filterPredicates = [];
}
2026-07-23 10:11:24 +00:00
let arr2 = (function applyFilters(arr, filterPredicates) {
let closure_0 = filterPredicates;
2026-07-20 16:05:17 +00:00
return arr.filter((arg0) => {
2026-07-23 10:11:24 +00:00
let closure_0 = arg0;
return closure_0.every((arg0) => arg0(closure_0));
2026-07-20 16:05:17 +00:00
});
2026-07-23 10:11:24 +00:00
})(arr, filterPredicates);
2026-07-20 16:05:17 +00:00
if (null != limit.bucketPredicates) {
if (limit.bucketPredicates.length > 0) {
if (num >= arr2.length) {
let bucketPredicates = limit.bucketPredicates;
if (null == bucketPredicates) {
bucketPredicates = [];
}
2026-07-23 10:11:24 +00:00
let tmp = (function applyBucketingSingleIteration(arr2, bucketPredicates) {
2026-07-20 16:05:17 +00:00
let iter2;
const array = new Array(bucketPredicates.length);
const mapped = array.fill(null).map(() => []);
2026-07-23 10:11:24 +00:00
const tmp2 = outer1_0(arr2);
2026-07-20 16:05:17 +00:00
let iter = tmp2();
if (!iter.done) {
do {
let value = iter.value;
let num = 0;
if (0 < bucketPredicates.length) {
let tmp3 = num;
while (!bucketPredicates[num](value)) {
num = num + 1;
}
arr2 = mapped[num];
let arr = arr2.push(value);
}
iter2 = tmp2();
iter = iter2;
} while (!iter2.done);
}
return mapped;
2026-07-23 10:11:24 +00:00
})(arr2, bucketPredicates);
2026-07-20 16:05:17 +00:00
} else {
let bucketPredicates1 = limit.bucketPredicates;
if (null == bucketPredicates1) {
bucketPredicates1 = [];
}
2026-07-23 10:11:24 +00:00
tmp = (function applyBucketing(arr2, bucketPredicates1, arg2) {
2026-07-20 16:05:17 +00:00
let tmp = arr2;
const items = [];
2026-07-23 10:11:24 +00:00
const tmp2 = outer1_0(bucketPredicates1);
2026-07-20 16:05:17 +00:00
const iter = tmp2();
if (!iter.done) {
while (true) {
let items1 = [];
let items2 = [];
2026-07-23 10:11:24 +00:00
let tmp5 = outer1_0;
let tmp6 = outer1_0(tmp);
2026-07-20 16:05:17 +00:00
let iter2 = tmp6();
if (!iter2.done) {
do {
let value = iter2.value;
if (tmp4(value)) {
let arr = items2.push(value);
} else {
arr = items1.push(value);
}
2026-07-23 10:11:24 +00:00
iter3 = tmp6();
2026-07-20 16:05:17 +00:00
iter2 = iter3;
let tmp9 = value;
} while (!iter3.done);
}
let arr1 = items.push(items2);
if (items.reduce((arg0, arg1) => arg1.length + arg0, 0) >= arg2) {
break;
} else {
let iter4 = tmp2();
let tmp3 = iter4;
tmp = items1;
if (iter4.done) {
break;
}
}
}
}
return items;
2026-07-23 10:11:24 +00:00
})(arr2, bucketPredicates1, num);
2026-07-20 16:05:17 +00:00
}
}
}
2026-07-23 10:11:24 +00:00
let items = [arr2];
2026-07-20 16:05:17 +00:00
let sortComparers = limit.sortComparers;
if (null == sortComparers) {
sortComparers = [];
}
2026-07-23 10:11:24 +00:00
let items1 = [];
let tmp3 = _createForOfIteratorHelperLoose(items);
2026-07-20 16:05:17 +00:00
let iter = tmp3();
if (!iter.done) {
const push = items1.push;
2026-07-23 10:11:24 +00:00
let items2 = [];
2026-07-20 16:05:17 +00:00
HermesBuiltin.arraySpread(sortGroup(iter.value, sortComparers), 0);
HermesBuiltin.apply(items2, items1);
while (items1.length < num) {
let iter2 = tmp3();
iter = iter2;
if (iter2.done) {
break;
}
}
}
return items1.slice(0, num);
};