UNPKG

@datorama/akita

Version:

State Management Tailored-Made for JS Applications

58 lines 4.18 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { hasEntity } from './hasEntity'; import { isArray } from './isArray'; // @internal /** * @template E * @param {?} state * @return {?} */ export function hasActiveState(state) { return state.hasOwnProperty('active'); } // @internal /** * @param {?} active * @return {?} */ export function isMultiActiveState(active) { return isArray(active); } // @internal /** * @template E * @param {?} __0 * @return {?} */ export function resolveActiveEntity({ active, ids, entities }) { if (isMultiActiveState(active)) { return getExitingActives(active, ids); } if (hasEntity(entities, active) === false) { return null; } return active; } // @internal /** * @param {?} currentActivesIds * @param {?} newIds * @return {?} */ export function getExitingActives(currentActivesIds, newIds) { /** @type {?} */ const filtered = currentActivesIds.filter((/** * @param {?} id * @return {?} */ id => newIds.indexOf(id) > -1)); /** Return the same reference if nothing has changed */ if (filtered.length === currentActivesIds.length) { return currentActivesIds; } return filtered; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlU3RhdGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGF0b3JhbWEvYWtpdGEvIiwic291cmNlcyI6WyJzcmMvYWN0aXZlU3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7OztBQUdwQyxNQUFNLFVBQVUsY0FBYyxDQUFJLEtBQXFCO0lBQ3JELE9BQU8sS0FBSyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN4QyxDQUFDOzs7Ozs7QUFHRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsTUFBVztJQUM1QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN6QixDQUFDOzs7Ozs7O0FBR0QsTUFBTSxVQUFVLG1CQUFtQixDQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQXFEO0lBQ2pILElBQUksa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDOUIsT0FBTyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FDdkM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLEtBQUssS0FBSyxFQUFFO1FBQ3pDLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDOzs7Ozs7O0FBR0QsTUFBTSxVQUFVLGlCQUFpQixDQUFDLGlCQUF1QixFQUFFLE1BQVk7O1VBQy9ELFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNOzs7O0lBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFDO0lBQ3hFLHVEQUF1RDtJQUN2RCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssaUJBQWlCLENBQUMsTUFBTSxFQUFFO1FBQ2hELE9BQU8saUJBQWlCLENBQUM7S0FDMUI7SUFFRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZlU3RhdGUsIEVudGl0eVN0YXRlLCBJRCwgSURTLCBNdWx0aUFjdGl2ZVN0YXRlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBoYXNFbnRpdHkgfSBmcm9tICcuL2hhc0VudGl0eSc7XG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnLi9pc0FycmF5JztcblxuLy8gQGludGVybmFsXG5leHBvcnQgZnVuY3Rpb24gaGFzQWN0aXZlU3RhdGU8RT4oc3RhdGU6IEVudGl0eVN0YXRlPEU+KTogc3RhdGUgaXMgRW50aXR5U3RhdGU8RT4gJiAoQWN0aXZlU3RhdGUgfCBNdWx0aUFjdGl2ZVN0YXRlKSB7XG4gIHJldHVybiBzdGF0ZS5oYXNPd25Qcm9wZXJ0eSgnYWN0aXZlJyk7XG59XG5cbi8vIEBpbnRlcm5hbFxuZXhwb3J0IGZ1bmN0aW9uIGlzTXVsdGlBY3RpdmVTdGF0ZShhY3RpdmU6IElEUyk6IGFjdGl2ZSBpcyBJRFtdIHtcbiAgcmV0dXJuIGlzQXJyYXkoYWN0aXZlKTtcbn1cblxuLy8gQGludGVybmFsXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUFjdGl2ZUVudGl0eTxFPih7IGFjdGl2ZSwgaWRzLCBlbnRpdGllcyB9OiBFbnRpdHlTdGF0ZTxFPiAmIChBY3RpdmVTdGF0ZSB8IE11bHRpQWN0aXZlU3RhdGUpKSB7XG4gIGlmIChpc011bHRpQWN0aXZlU3RhdGUoYWN0aXZlKSkge1xuICAgIHJldHVybiBnZXRFeGl0aW5nQWN0aXZlcyhhY3RpdmUsIGlkcyk7XG4gIH1cblxuICBpZiAoaGFzRW50aXR5KGVudGl0aWVzLCBhY3RpdmUpID09PSBmYWxzZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIGFjdGl2ZTtcbn1cblxuLy8gQGludGVybmFsXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXhpdGluZ0FjdGl2ZXMoY3VycmVudEFjdGl2ZXNJZHM6IElEW10sIG5ld0lkczogSURbXSkge1xuICBjb25zdCBmaWx0ZXJlZCA9IGN1cnJlbnRBY3RpdmVzSWRzLmZpbHRlcihpZCA9PiBuZXdJZHMuaW5kZXhPZihpZCkgPiAtMSk7XG4gIC8qKiBSZXR1cm4gdGhlIHNhbWUgcmVmZXJlbmNlIGlmIG5vdGhpbmcgaGFzIGNoYW5nZWQgKi9cbiAgaWYgKGZpbHRlcmVkLmxlbmd0aCA9PT0gY3VycmVudEFjdGl2ZXNJZHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGN1cnJlbnRBY3RpdmVzSWRzO1xuICB9XG5cbiAgcmV0dXJuIGZpbHRlcmVkO1xufVxuIl19