UNPKG

@datorama/akita

Version:

State Management Tailored-Made for JS Applications

48 lines 4.66 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { DEFAULT_ID_KEY } from './defaultIDKey'; import { coerceArray } from './coerceArray'; import { isObject } from './isObject'; import { isFunction } from './isFunction'; import { not } from './not'; /** * @template Root, Entity * @param {?} keyOrRoot * @param {?} identifier * @param {?=} idKey * @return {?} */ export function arrayRemove(keyOrRoot, identifier, idKey = DEFAULT_ID_KEY) { /** @type {?} */ let identifiers; /** @type {?} */ let filterFn; if (isFunction(identifier)) { filterFn = not(identifier); } else { identifiers = coerceArray((/** @type {?} */ (identifier))); filterFn = (/** * @param {?} current * @return {?} */ current => { return identifiers.includes(isObject(current) ? current[idKey] : current) === false; }); } if (Array.isArray(keyOrRoot)) { return keyOrRoot.filter(filterFn); } return (/** * @param {?} state * @return {?} */ state => { return { [(/** @type {?} */ (keyOrRoot))]: state[keyOrRoot].filter(filterFn) }; }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXlSZW1vdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGF0b3JhbWEvYWtpdGEvIiwic291cmNlcyI6WyJzcmMvYXJyYXlSZW1vdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sT0FBTyxDQUFDOzs7Ozs7OztBQWlCNUIsTUFBTSxVQUFVLFdBQVcsQ0FBcUIsU0FBdUMsRUFBRSxVQUF1QyxFQUFFLEtBQUssR0FBRyxjQUFjOztRQUNsSixXQUFXOztRQUNYLFFBQVE7SUFFWixJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRTtRQUMxQixRQUFRLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQzVCO1NBQU07UUFDTCxXQUFXLEdBQUcsV0FBVyxDQUFDLG1CQUFBLFVBQVUsRUFBTyxDQUFDLENBQUM7UUFDN0MsUUFBUTs7OztRQUFHLE9BQU8sQ0FBQyxFQUFFO1lBQ25CLE9BQU8sV0FBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSyxDQUFDO1FBQ3RGLENBQUMsQ0FBQSxDQUFDO0tBQ0g7SUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDNUIsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQ25DO0lBRUQ7Ozs7SUFBTyxLQUFLLENBQUMsRUFBRTtRQUNiLE9BQU87WUFDTCxDQUFDLG1CQUFBLFNBQVMsRUFBVSxDQUFDLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7U0FDekQsQ0FBQztJQUNKLENBQUMsRUFBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcnJheVByb3BlcnRpZXMsIElEUywgSXRlbVByZWRpY2F0ZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgREVGQVVMVF9JRF9LRVkgfSBmcm9tICcuL2RlZmF1bHRJREtleSc7XG5pbXBvcnQgeyBjb2VyY2VBcnJheSB9IGZyb20gJy4vY29lcmNlQXJyYXknO1xuaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tICcuL2lzT2JqZWN0JztcbmltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICcuL2lzRnVuY3Rpb24nO1xuaW1wb3J0IHsgbm90IH0gZnJvbSAnLi9ub3QnO1xuXG4vKipcbiAqIFJlbW92ZSBpdGVtIGZyb20gY29sbGVjdGlvblxuICpcbiAqIEBleGFtcGxlXG4gKlxuICpcbiAqIHN0b3JlLnVwZGF0ZShzdGF0ZSA9PiAoe1xuICogICBuYW1lczogYXJyYXlSZW1vdmUoc3RhdGUubmFtZXMsIFsnb25lJywgJ3NlY29uZCddKVxuICogfSkpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcnJheVJlbW92ZTxSb290IGV4dGVuZHMgYW55W10sIEVudGl0eSA9IFJvb3RbMF0+KGtleU9yUm9vdDogUm9vdCwgaWRlbnRpZmllcjogSURTIHwgSXRlbVByZWRpY2F0ZTxSb290WzBdPiwgaWRLZXk/OiBzdHJpbmcpOiBSb290WzBdW107XG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcnJheVJlbW92ZTxSb290LCBFbnRpdHkgPSBhbnk+KGtleU9yUm9vdDogQXJyYXlQcm9wZXJ0aWVzPFJvb3Q+LCBpZGVudGlmaWVyOiBJRFMgfCBJdGVtUHJlZGljYXRlPEVudGl0eT4sIGlkS2V5Pzogc3RyaW5nKTogKHN0YXRlOiBSb290KSA9PiBSb290O1xuZXhwb3J0IGZ1bmN0aW9uIGFycmF5UmVtb3ZlPFJvb3QsIEVudGl0eSA9IGFueT4oa2V5T3JSb290OiBBcnJheVByb3BlcnRpZXM8Um9vdD4gfCBSb290LCBpZGVudGlmaWVyOiBJRFMgfCBJdGVtUHJlZGljYXRlPEVudGl0eT4sIGlkS2V5ID0gREVGQVVMVF9JRF9LRVkpIHtcbiAgbGV0IGlkZW50aWZpZXJzO1xuICBsZXQgZmlsdGVyRm47XG5cbiAgaWYgKGlzRnVuY3Rpb24oaWRlbnRpZmllcikpIHtcbiAgICBmaWx0ZXJGbiA9IG5vdChpZGVudGlmaWVyKTtcbiAgfSBlbHNlIHtcbiAgICBpZGVudGlmaWVycyA9IGNvZXJjZUFycmF5KGlkZW50aWZpZXIgYXMgSURTKTtcbiAgICBmaWx0ZXJGbiA9IGN1cnJlbnQgPT4ge1xuICAgICAgcmV0dXJuIGlkZW50aWZpZXJzLmluY2x1ZGVzKGlzT2JqZWN0KGN1cnJlbnQpID8gY3VycmVudFtpZEtleV0gOiBjdXJyZW50KSA9PT0gZmFsc2U7XG4gICAgfTtcbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KGtleU9yUm9vdCkpIHtcbiAgICByZXR1cm4ga2V5T3JSb290LmZpbHRlcihmaWx0ZXJGbik7XG4gIH1cblxuICByZXR1cm4gc3RhdGUgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBba2V5T3JSb290IGFzIHN0cmluZ106IHN0YXRlW2tleU9yUm9vdF0uZmlsdGVyKGZpbHRlckZuKVxuICAgIH07XG4gIH07XG59XG4iXX0=