UNPKG

@datorama/akita

Version:

State Management Tailored-Made for JS Applications

56 lines 4.91 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { isFunction } from './isFunction'; import { compareValues } from './sort'; import { coerceArray } from './coerceArray'; // @internal /** * @template E, S * @param {?} state * @param {?} options * @return {?} */ export function entitiesToArray(state, options) { /** @type {?} */ var arr = []; var ids = state.ids, entities = state.entities; var filterBy = options.filterBy, limitTo = options.limitTo, sortBy = options.sortBy, sortByOrder = options.sortByOrder; var _loop_1 = function (i) { /** @type {?} */ var entity = entities[ids[i]]; if (!filterBy) { arr.push(entity); return "continue"; } /** @type {?} */ var toArray = coerceArray(filterBy); /** @type {?} */ var allPass = toArray.every((/** * @param {?} fn * @return {?} */ function (fn) { return fn(entity, i); })); if (allPass) { arr.push(entity); } }; for (var i = 0; i < ids.length; i++) { _loop_1(i); } if (sortBy) { /** @type {?} */ var _sortBy_1 = isFunction(sortBy) ? sortBy : compareValues(sortBy, sortByOrder); arr = arr.sort((/** * @param {?} a * @param {?} b * @return {?} */ function (a, b) { return _sortBy_1(a, b, state); })); } /** @type {?} */ var length = Math.min(limitTo || arr.length, arr.length); return length === arr.length ? arr : arr.slice(0, length); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRpZXNUb0FycmF5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGRhdG9yYW1hL2FraXRhLyIsInNvdXJjZXMiOlsic3JjL2VudGl0aWVzVG9BcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBRzVDLE1BQU0sVUFBVSxlQUFlLENBQTJCLEtBQVEsRUFBRSxPQUF5Qjs7UUFDdkYsR0FBRyxHQUFHLEVBQUU7SUFDSixJQUFBLGVBQUcsRUFBRSx5QkFBUTtJQUNiLElBQUEsMkJBQVEsRUFBRSx5QkFBTyxFQUFFLHVCQUFNLEVBQUUsaUNBQVc7NEJBRXJDLENBQUM7O1lBQ0YsTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7O1NBRWxCOztZQUVLLE9BQU8sR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDOztZQUMvQixPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUs7Ozs7UUFBQyxVQUFBLEVBQUUsSUFBSSxPQUFBLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQWIsQ0FBYSxFQUFDO1FBQ2xELElBQUksT0FBTyxFQUFFO1lBQ1gsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNsQjs7SUFYSCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUU7Z0JBQTFCLENBQUM7S0FZVDtJQUVELElBQUksTUFBTSxFQUFFOztZQUNOLFNBQU8sR0FBUSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUM7UUFDbkYsR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJOzs7OztRQUFDLFVBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSyxPQUFBLFNBQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFwQixDQUFvQixFQUFDLENBQUM7S0FDaEQ7O1FBRUssTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUUxRCxPQUFPLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzVELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlTdGF0ZSwgU2VsZWN0T3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJy4vaXNGdW5jdGlvbic7XG5pbXBvcnQgeyBjb21wYXJlVmFsdWVzIH0gZnJvbSAnLi9zb3J0JztcbmltcG9ydCB7IGNvZXJjZUFycmF5IH0gZnJvbSAnLi9jb2VyY2VBcnJheSc7XG5cbi8vIEBpbnRlcm5hbFxuZXhwb3J0IGZ1bmN0aW9uIGVudGl0aWVzVG9BcnJheTxFLCBTIGV4dGVuZHMgRW50aXR5U3RhdGU+KHN0YXRlOiBTLCBvcHRpb25zOiBTZWxlY3RPcHRpb25zPEU+KTogRVtdIHtcbiAgbGV0IGFyciA9IFtdO1xuICBjb25zdCB7IGlkcywgZW50aXRpZXMgfSA9IHN0YXRlO1xuICBjb25zdCB7IGZpbHRlckJ5LCBsaW1pdFRvLCBzb3J0QnksIHNvcnRCeU9yZGVyIH0gPSBvcHRpb25zO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaWRzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgZW50aXR5ID0gZW50aXRpZXNbaWRzW2ldXTtcbiAgICBpZiAoIWZpbHRlckJ5KSB7XG4gICAgICBhcnIucHVzaChlbnRpdHkpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgdG9BcnJheSA9IGNvZXJjZUFycmF5KGZpbHRlckJ5KTtcbiAgICBjb25zdCBhbGxQYXNzID0gdG9BcnJheS5ldmVyeShmbiA9PiBmbihlbnRpdHksIGkpKTtcbiAgICBpZiAoYWxsUGFzcykge1xuICAgICAgYXJyLnB1c2goZW50aXR5KTtcbiAgICB9XG4gIH1cblxuICBpZiAoc29ydEJ5KSB7XG4gICAgbGV0IF9zb3J0Qnk6IGFueSA9IGlzRnVuY3Rpb24oc29ydEJ5KSA/IHNvcnRCeSA6IGNvbXBhcmVWYWx1ZXMoc29ydEJ5LCBzb3J0QnlPcmRlcik7XG4gICAgYXJyID0gYXJyLnNvcnQoKGEsIGIpID0+IF9zb3J0QnkoYSwgYiwgc3RhdGUpKTtcbiAgfVxuXG4gIGNvbnN0IGxlbmd0aCA9IE1hdGgubWluKGxpbWl0VG8gfHwgYXJyLmxlbmd0aCwgYXJyLmxlbmd0aCk7XG5cbiAgcmV0dXJuIGxlbmd0aCA9PT0gYXJyLmxlbmd0aCA/IGFyciA6IGFyci5zbGljZSgwLCBsZW5ndGgpO1xufVxuIl19