UNPKG

@datorama/akita

Version:

State Management Tailored-Made for JS Applications

45 lines 4.33 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { isNil } from './isNil'; import { hasActiveState, isMultiActiveState, resolveActiveEntity } from './activeState'; // @internal /** * @template S, E * @param {?} __0 * @return {?} */ export function removeEntities({ state, ids }) { if (isNil(ids)) return removeAllEntities(state); /** @type {?} */ const entities = state.entities; /** @type {?} */ let newEntities = {}; for (const id of state.ids) { if (ids.includes(id) === false) { newEntities[id] = entities[id]; } } /** @type {?} */ const newState = Object.assign({}, state, { entities: newEntities, ids: state.ids.filter((/** * @param {?} current * @return {?} */ current => ids.includes(current) === false)) }); if (hasActiveState(state)) { newState.active = resolveActiveEntity(newState); } return newState; } // @internal /** * @template S * @param {?} state * @return {?} */ export function removeAllEntities(state) { return Object.assign({}, state, { entities: {}, ids: [], active: isMultiActiveState(state.active) ? [] : null }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlRW50aXRpZXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGF0b3JhbWEvYWtpdGEvIiwic291cmNlcyI6WyJzcmMvcmVtb3ZlRW50aXRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVF4RixNQUFNLFVBQVUsY0FBYyxDQUE4QixFQUFFLEtBQUssRUFBRSxHQUFHLEVBQThCO0lBQ3BHLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8saUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7O1VBQzFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUTs7UUFDM0IsV0FBVyxHQUFHLEVBQUU7SUFFcEIsS0FBSyxNQUFNLEVBQUUsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFO1FBQzFCLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLEVBQUU7WUFDOUIsV0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNoQztLQUNGOztVQUVLLFFBQVEscUJBQ1QsS0FBSyxJQUNSLFFBQVEsRUFBRSxXQUFXLEVBQ3JCLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU07Ozs7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSyxFQUFDLEdBQ2xFO0lBRUQsSUFBSSxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDekIsUUFBUSxDQUFDLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUNqRDtJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7Ozs7Ozs7QUFHRCxNQUFNLFVBQVUsaUJBQWlCLENBQUksS0FBeUI7SUFDNUQseUJBQ0ssS0FBSyxJQUNSLFFBQVEsRUFBRSxFQUFFLEVBQ1osR0FBRyxFQUFFLEVBQUUsRUFDUCxNQUFNLEVBQUUsa0JBQWtCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFDcEQ7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5U3RhdGUsIElELCBTdGF0ZVdpdGhBY3RpdmUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGlzTmlsIH0gZnJvbSAnLi9pc05pbCc7XG5pbXBvcnQgeyBoYXNBY3RpdmVTdGF0ZSwgaXNNdWx0aUFjdGl2ZVN0YXRlLCByZXNvbHZlQWN0aXZlRW50aXR5IH0gZnJvbSAnLi9hY3RpdmVTdGF0ZSc7XG5cbmV4cG9ydCB0eXBlIFJlbW92ZUVudGl0aWVzUGFyYW1zPFN0YXRlLCBFbnRpdHk+ID0ge1xuICBzdGF0ZTogU3RhdGVXaXRoQWN0aXZlPFN0YXRlPjtcbiAgaWRzOiBhbnlbXTtcbn07XG5cbi8vIEBpbnRlcm5hbFxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUVudGl0aWVzPFMgZXh0ZW5kcyBFbnRpdHlTdGF0ZTxFPiwgRT4oeyBzdGF0ZSwgaWRzIH06IFJlbW92ZUVudGl0aWVzUGFyYW1zPFMsIEU+KTogUyB7XG4gIGlmIChpc05pbChpZHMpKSByZXR1cm4gcmVtb3ZlQWxsRW50aXRpZXMoc3RhdGUpO1xuICBjb25zdCBlbnRpdGllcyA9IHN0YXRlLmVudGl0aWVzO1xuICBsZXQgbmV3RW50aXRpZXMgPSB7fTtcblxuICBmb3IgKGNvbnN0IGlkIG9mIHN0YXRlLmlkcykge1xuICAgIGlmIChpZHMuaW5jbHVkZXMoaWQpID09PSBmYWxzZSkge1xuICAgICAgbmV3RW50aXRpZXNbaWRdID0gZW50aXRpZXNbaWRdO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgIC4uLnN0YXRlLFxuICAgIGVudGl0aWVzOiBuZXdFbnRpdGllcyxcbiAgICBpZHM6IHN0YXRlLmlkcy5maWx0ZXIoY3VycmVudCA9PiBpZHMuaW5jbHVkZXMoY3VycmVudCkgPT09IGZhbHNlKVxuICB9O1xuXG4gIGlmIChoYXNBY3RpdmVTdGF0ZShzdGF0ZSkpIHtcbiAgICBuZXdTdGF0ZS5hY3RpdmUgPSByZXNvbHZlQWN0aXZlRW50aXR5KG5ld1N0YXRlKTtcbiAgfVxuXG4gIHJldHVybiBuZXdTdGF0ZTtcbn1cblxuLy8gQGludGVybmFsXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlQWxsRW50aXRpZXM8Uz4oc3RhdGU6IFN0YXRlV2l0aEFjdGl2ZTxTPik6IFMge1xuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIGVudGl0aWVzOiB7fSxcbiAgICBpZHM6IFtdLFxuICAgIGFjdGl2ZTogaXNNdWx0aUFjdGl2ZVN0YXRlKHN0YXRlLmFjdGl2ZSkgPyBbXSA6IG51bGxcbiAgfTtcbn1cbiJdfQ==