@datorama/akita
Version:
State Management Tailored-Made for JS Applications
58 lines • 4.84 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { isNil } from './isNil';
import { hasActiveState, isMultiActiveState, resolveActiveEntity } from './activeState';
// @internal
/**
* @template S, E
* @param {?} __0
* @return {?}
*/
export function removeEntities(_a) {
var state = _a.state, ids = _a.ids;
var e_1, _b;
if (isNil(ids))
return removeAllEntities(state);
/** @type {?} */
var entities = state.entities;
/** @type {?} */
var newEntities = {};
try {
for (var _c = tslib_1.__values(state.ids), _d = _c.next(); !_d.done; _d = _c.next()) {
var id = _d.value;
if (ids.includes(id) === false) {
newEntities[id] = entities[id];
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
}
finally { if (e_1) throw e_1.error; }
}
/** @type {?} */
var newState = tslib_1.__assign({}, state, { entities: newEntities, ids: state.ids.filter((/**
* @param {?} current
* @return {?}
*/
function (current) { return ids.includes(current) === false; })) });
if (hasActiveState(state)) {
newState.active = resolveActiveEntity(newState);
}
return newState;
}
// @internal
/**
* @template S
* @param {?} state
* @return {?}
*/
export function removeAllEntities(state) {
return tslib_1.__assign({}, state, { entities: {}, ids: [], active: isMultiActiveState(state.active) ? [] : null });
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlRW50aXRpZXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGF0b3JhbWEvYWtpdGEvIiwic291cmNlcyI6WyJzcmMvcmVtb3ZlRW50aXRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFReEYsTUFBTSxVQUFVLGNBQWMsQ0FBOEIsRUFBMEM7UUFBeEMsZ0JBQUssRUFBRSxZQUFHOztJQUN0RSxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDOztRQUMxQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVE7O1FBQzNCLFdBQVcsR0FBRyxFQUFFOztRQUVwQixLQUFpQixJQUFBLEtBQUEsaUJBQUEsS0FBSyxDQUFDLEdBQUcsQ0FBQSxnQkFBQSw0QkFBRTtZQUF2QixJQUFNLEVBQUUsV0FBQTtZQUNYLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLEVBQUU7Z0JBQzlCLFdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDaEM7U0FDRjs7Ozs7Ozs7OztRQUVLLFFBQVEsd0JBQ1QsS0FBSyxJQUNSLFFBQVEsRUFBRSxXQUFXLEVBQ3JCLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU07Ozs7UUFBQyxVQUFBLE9BQU8sSUFBSSxPQUFBLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSyxFQUEvQixDQUErQixFQUFDLEdBQ2xFO0lBRUQsSUFBSSxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDekIsUUFBUSxDQUFDLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUNqRDtJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7Ozs7Ozs7QUFHRCxNQUFNLFVBQVUsaUJBQWlCLENBQUksS0FBeUI7SUFDNUQsNEJBQ0ssS0FBSyxJQUNSLFFBQVEsRUFBRSxFQUFFLEVBQ1osR0FBRyxFQUFFLEVBQUUsRUFDUCxNQUFNLEVBQUUsa0JBQWtCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFDcEQ7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5U3RhdGUsIElELCBTdGF0ZVdpdGhBY3RpdmUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGlzTmlsIH0gZnJvbSAnLi9pc05pbCc7XG5pbXBvcnQgeyBoYXNBY3RpdmVTdGF0ZSwgaXNNdWx0aUFjdGl2ZVN0YXRlLCByZXNvbHZlQWN0aXZlRW50aXR5IH0gZnJvbSAnLi9hY3RpdmVTdGF0ZSc7XG5cbmV4cG9ydCB0eXBlIFJlbW92ZUVudGl0aWVzUGFyYW1zPFN0YXRlLCBFbnRpdHk+ID0ge1xuICBzdGF0ZTogU3RhdGVXaXRoQWN0aXZlPFN0YXRlPjtcbiAgaWRzOiBhbnlbXTtcbn07XG5cbi8vIEBpbnRlcm5hbFxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUVudGl0aWVzPFMgZXh0ZW5kcyBFbnRpdHlTdGF0ZTxFPiwgRT4oeyBzdGF0ZSwgaWRzIH06IFJlbW92ZUVudGl0aWVzUGFyYW1zPFMsIEU+KTogUyB7XG4gIGlmIChpc05pbChpZHMpKSByZXR1cm4gcmVtb3ZlQWxsRW50aXRpZXMoc3RhdGUpO1xuICBjb25zdCBlbnRpdGllcyA9IHN0YXRlLmVudGl0aWVzO1xuICBsZXQgbmV3RW50aXRpZXMgPSB7fTtcblxuICBmb3IgKGNvbnN0IGlkIG9mIHN0YXRlLmlkcykge1xuICAgIGlmIChpZHMuaW5jbHVkZXMoaWQpID09PSBmYWxzZSkge1xuICAgICAgbmV3RW50aXRpZXNbaWRdID0gZW50aXRpZXNbaWRdO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgIC4uLnN0YXRlLFxuICAgIGVudGl0aWVzOiBuZXdFbnRpdGllcyxcbiAgICBpZHM6IHN0YXRlLmlkcy5maWx0ZXIoY3VycmVudCA9PiBpZHMuaW5jbHVkZXMoY3VycmVudCkgPT09IGZhbHNlKVxuICB9O1xuXG4gIGlmIChoYXNBY3RpdmVTdGF0ZShzdGF0ZSkpIHtcbiAgICBuZXdTdGF0ZS5hY3RpdmUgPSByZXNvbHZlQWN0aXZlRW50aXR5KG5ld1N0YXRlKTtcbiAgfVxuXG4gIHJldHVybiBuZXdTdGF0ZTtcbn1cblxuLy8gQGludGVybmFsXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlQWxsRW50aXRpZXM8Uz4oc3RhdGU6IFN0YXRlV2l0aEFjdGl2ZTxTPik6IFMge1xuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIGVudGl0aWVzOiB7fSxcbiAgICBpZHM6IFtdLFxuICAgIGFjdGl2ZTogaXNNdWx0aUFjdGl2ZVN0YXRlKHN0YXRlLmFjdGl2ZSkgPyBbXSA6IG51bGxcbiAgfTtcbn1cbiJdfQ==