UNPKG

@datorama/akita

Version:

State Management Tailored-Made for JS Applications

79 lines 6.06 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { isNil } from './isNil'; import { coerceArray } from './coerceArray'; // @internal /** * @template S, E * @param {?} state * @param {?} options * @return {?} */ export function entitiesToMap(state, options) { /** @type {?} */ var map = {}; var filterBy = options.filterBy, limitTo = options.limitTo; var ids = state.ids, entities = state.entities; if (!filterBy && !limitTo) { return entities; } /** @type {?} */ var hasLimit = isNil(limitTo) === false; if (filterBy && hasLimit) { /** @type {?} */ var count = 0; var _loop_1 = function (i, length_1) { if (count === limitTo) return "break"; /** @type {?} */ var id = ids[i]; /** @type {?} */ var entity = entities[id]; /** @type {?} */ var allPass = coerceArray(filterBy).every((/** * @param {?} fn * @return {?} */ function (fn) { return fn(entity, i); })); if (allPass) { map[id] = entity; count++; } }; for (var i = 0, length_1 = ids.length; i < length_1; i++) { var state_1 = _loop_1(i, length_1); if (state_1 === "break") break; } } else { /** @type {?} */ var finalLength = Math.min(limitTo || ids.length, ids.length); var _loop_2 = function (i) { /** @type {?} */ var id = ids[i]; /** @type {?} */ var entity = entities[id]; if (!filterBy) { map[id] = entity; return "continue"; } /** @type {?} */ var allPass = coerceArray(filterBy).every((/** * @param {?} fn * @return {?} */ function (fn) { return fn(entity, i); })); if (allPass) { map[id] = entity; } }; for (var i = 0; i < finalLength; i++) { _loop_2(i); } } return map; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRpZXNUb01hcC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9ha2l0YS8iLCJzb3VyY2VzIjpbInNyYy9lbnRpdGllc1RvTWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBRzVDLE1BQU0sVUFBVSxhQUFhLENBQThCLEtBQVEsRUFBRSxPQUFPOztRQUNwRSxHQUFHLEdBQUcsRUFBRTtJQUNOLElBQUEsMkJBQVEsRUFBRSx5QkFBTztJQUNqQixJQUFBLGVBQUcsRUFBRSx5QkFBUTtJQUVyQixJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ3pCLE9BQU8sUUFBUSxDQUFDO0tBQ2pCOztRQUNLLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSztJQUV6QyxJQUFJLFFBQVEsSUFBSSxRQUFRLEVBQUU7O1lBQ3BCLEtBQUssR0FBRyxDQUFDO2dDQUNKLENBQUMsRUFBTSxRQUFNO1lBQ3BCLElBQUksS0FBSyxLQUFLLE9BQU87K0JBQVE7O2dCQUN2QixFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQzs7Z0JBQ1gsTUFBTSxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUM7O2dCQUNyQixPQUFPLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUs7Ozs7WUFBQyxVQUFBLEVBQUUsSUFBSSxPQUFBLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQWIsQ0FBYSxFQUFDO1lBQ2hFLElBQUksT0FBTyxFQUFFO2dCQUNYLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUM7Z0JBQ2pCLEtBQUssRUFBRSxDQUFDO2FBQ1Q7O1FBUkgsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLFFBQU0sRUFBRSxDQUFDLEVBQUU7a0NBQTNDLENBQUMsRUFBTSxRQUFNOzs7U0FTckI7S0FDRjtTQUFNOztZQUNDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUM7Z0NBRXRELENBQUM7O2dCQUNGLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDOztnQkFDWCxNQUFNLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUUzQixJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNiLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUM7O2FBRWxCOztnQkFFSyxPQUFPLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUs7Ozs7WUFBQyxVQUFBLEVBQUUsSUFBSSxPQUFBLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQWIsQ0FBYSxFQUFDO1lBQ2hFLElBQUksT0FBTyxFQUFFO2dCQUNYLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUM7YUFDbEI7O1FBWkgsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsRUFBRSxDQUFDLEVBQUU7b0JBQTNCLENBQUM7U0FhVDtLQUNGO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5U3RhdGUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGlzTmlsIH0gZnJvbSAnLi9pc05pbCc7XG5pbXBvcnQgeyBjb2VyY2VBcnJheSB9IGZyb20gJy4vY29lcmNlQXJyYXknO1xuXG4vLyBAaW50ZXJuYWxcbmV4cG9ydCBmdW5jdGlvbiBlbnRpdGllc1RvTWFwPFMgZXh0ZW5kcyBFbnRpdHlTdGF0ZTxFPiwgRT4oc3RhdGU6IFMsIG9wdGlvbnMpIHtcbiAgY29uc3QgbWFwID0ge307XG4gIGNvbnN0IHsgZmlsdGVyQnksIGxpbWl0VG8gfSA9IG9wdGlvbnM7XG4gIGNvbnN0IHsgaWRzLCBlbnRpdGllcyB9ID0gc3RhdGU7XG5cbiAgaWYgKCFmaWx0ZXJCeSAmJiAhbGltaXRUbykge1xuICAgIHJldHVybiBlbnRpdGllcztcbiAgfVxuICBjb25zdCBoYXNMaW1pdCA9IGlzTmlsKGxpbWl0VG8pID09PSBmYWxzZTtcblxuICBpZiAoZmlsdGVyQnkgJiYgaGFzTGltaXQpIHtcbiAgICBsZXQgY291bnQgPSAwO1xuICAgIGZvciAobGV0IGkgPSAwLCBsZW5ndGggPSBpZHMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChjb3VudCA9PT0gbGltaXRUbykgYnJlYWs7XG4gICAgICBjb25zdCBpZCA9IGlkc1tpXTtcbiAgICAgIGNvbnN0IGVudGl0eSA9IGVudGl0aWVzW2lkXTtcbiAgICAgIGNvbnN0IGFsbFBhc3MgPSBjb2VyY2VBcnJheShmaWx0ZXJCeSkuZXZlcnkoZm4gPT4gZm4oZW50aXR5LCBpKSk7XG4gICAgICBpZiAoYWxsUGFzcykge1xuICAgICAgICBtYXBbaWRdID0gZW50aXR5O1xuICAgICAgICBjb3VudCsrO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCBmaW5hbExlbmd0aCA9IE1hdGgubWluKGxpbWl0VG8gfHwgaWRzLmxlbmd0aCwgaWRzLmxlbmd0aCk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbmFsTGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGlkID0gaWRzW2ldO1xuICAgICAgY29uc3QgZW50aXR5ID0gZW50aXRpZXNbaWRdO1xuXG4gICAgICBpZiAoIWZpbHRlckJ5KSB7XG4gICAgICAgIG1hcFtpZF0gPSBlbnRpdHk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBhbGxQYXNzID0gY29lcmNlQXJyYXkoZmlsdGVyQnkpLmV2ZXJ5KGZuID0+IGZuKGVudGl0eSwgaSkpO1xuICAgICAgaWYgKGFsbFBhc3MpIHtcbiAgICAgICAgbWFwW2lkXSA9IGVudGl0eTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWFwO1xufVxuIl19