UNPKG

@datorama/akita

Version:

State Management Tailored-Made for JS Applications

67 lines 5.84 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { DEFAULT_ID_KEY } from './defaultIDKey'; import { coerceArray } from './coerceArray'; import { isFunction } from './isFunction'; import { isObject } from './isObject'; import { isArray } from './isArray'; /** * @template Root, Entity * @param {?} keyOrRoot * @param {?} predicateOrIds * @param {?} obj * @param {?=} idKey * @return {?} */ export function arrayUpdate(keyOrRoot, predicateOrIds, obj, idKey) { if (idKey === void 0) { idKey = DEFAULT_ID_KEY; } /** @type {?} */ var condition; if (isFunction(predicateOrIds)) { condition = predicateOrIds; } else { /** @type {?} */ var ids_1 = coerceArray(predicateOrIds); condition = (/** * @param {?} item * @return {?} */ function (item) { return ids_1.includes(isObject(item) ? item[idKey] : item) === true; }); } /** @type {?} */ var updateFn = (/** * @param {?} state * @return {?} */ function (state) { return state.map((/** * @param {?} entity * @return {?} */ function (entity) { if (condition(entity) === true) { return isObject(entity) ? tslib_1.__assign({}, entity, obj) : obj; } return entity; })); }); if (isArray(keyOrRoot)) { return updateFn(keyOrRoot); } return (/** * @param {?} root * @return {?} */ function (root) { var _a; return _a = {}, _a[(/** @type {?} */ (keyOrRoot))] = updateFn(root[keyOrRoot]), _a; }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXlVcGRhdGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGF0b3JhbWEvYWtpdGEvIiwic291cmNlcyI6WyJzcmMvYXJyYXlVcGRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7O0FBaUJwQyxNQUFNLFVBQVUsV0FBVyxDQUFxQixTQUF1QyxFQUFFLGNBQTJDLEVBQUUsR0FBb0IsRUFBRSxLQUFzQjtJQUF0QixzQkFBQSxFQUFBLHNCQUFzQjs7UUFDNUssU0FBZ0M7SUFFcEMsSUFBSSxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUU7UUFDOUIsU0FBUyxHQUFHLGNBQWMsQ0FBQztLQUM1QjtTQUFNOztZQUNDLEtBQUcsR0FBRyxXQUFXLENBQUMsY0FBYyxDQUFDO1FBQ3ZDLFNBQVM7Ozs7UUFBRyxVQUFBLElBQUksSUFBSSxPQUFBLEtBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBMUQsQ0FBMEQsQ0FBQSxDQUFDO0tBQ2hGOztRQUVLLFFBQVE7Ozs7SUFBRyxVQUFBLEtBQUs7UUFDcEIsT0FBQSxLQUFLLENBQUMsR0FBRzs7OztRQUFDLFVBQUEsTUFBTTtZQUNkLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDOUIsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDO29CQUNyQixDQUFDLHNCQUNNLE1BQU0sRUFDTixHQUFHLEVBRVYsQ0FBQyxDQUFDLEdBQUcsQ0FBQzthQUNUO1lBRUQsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxFQUFDO0lBWEYsQ0FXRSxDQUFBO0lBRUosSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDdEIsT0FBTyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDNUI7SUFFRDs7OztJQUFPLFVBQUEsSUFBSTs7UUFDVDtZQUNFLEdBQUMsbUJBQUEsU0FBUyxFQUFVLElBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztlQUNoRDtJQUNKLENBQUMsRUFBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcnJheVByb3BlcnRpZXMsIElEUywgSXRlbVByZWRpY2F0ZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgREVGQVVMVF9JRF9LRVkgfSBmcm9tICcuL2RlZmF1bHRJREtleSc7XG5pbXBvcnQgeyBjb2VyY2VBcnJheSB9IGZyb20gJy4vY29lcmNlQXJyYXknO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJy4vaXNGdW5jdGlvbic7XG5pbXBvcnQgeyBpc09iamVjdCB9IGZyb20gJy4vaXNPYmplY3QnO1xuaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gJy4vaXNBcnJheSc7XG5cbi8qKlxuICogVXBkYXRlIGl0ZW0gaW4gYSBjb2xsZWN0aW9uXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKlxuICogc3RvcmUudXBkYXRlKDEsIGVudGl0eSA9PiAoe1xuICogICBjb21tZW50czogYXJyYXlVcGRhdGUoZW50aXR5LmNvbW1lbnRzLCAxLCB7IG5hbWU6ICduZXdDb21tZW50JyB9KVxuICogfSkpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcnJheVVwZGF0ZTxSb290IGV4dGVuZHMgYW55W10sIEVudGl0eSA9IGFueT4oa2V5T3JSb290OiBSb290LCBwcmVkaWNhdGVPcklkczogSURTIHwgSXRlbVByZWRpY2F0ZTxSb290WzBdPiwgb2JqOiBQYXJ0aWFsPFJvb3RbMF0+LCBpZEtleT86IHN0cmluZyk6IFJvb3RbMF1bXTtcbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFycmF5VXBkYXRlPFJvb3QsIEVudGl0eSA9IGFueT4oa2V5T3JSb290OiBBcnJheVByb3BlcnRpZXM8Um9vdD4sIHByZWRpY2F0ZU9ySWRzOiBJRFMgfCBJdGVtUHJlZGljYXRlPEVudGl0eT4sIG9iajogUGFydGlhbDxFbnRpdHk+LCBpZEtleT86IHN0cmluZyk6IChzdGF0ZTogUm9vdCkgPT4gUm9vdDtcbmV4cG9ydCBmdW5jdGlvbiBhcnJheVVwZGF0ZTxSb290LCBFbnRpdHkgPSBhbnk+KGtleU9yUm9vdDogQXJyYXlQcm9wZXJ0aWVzPFJvb3Q+IHwgUm9vdCwgcHJlZGljYXRlT3JJZHM6IElEUyB8IEl0ZW1QcmVkaWNhdGU8RW50aXR5Piwgb2JqOiBQYXJ0aWFsPEVudGl0eT4sIGlkS2V5ID0gREVGQVVMVF9JRF9LRVkpIHtcbiAgbGV0IGNvbmRpdGlvbjogSXRlbVByZWRpY2F0ZTxFbnRpdHk+O1xuXG4gIGlmIChpc0Z1bmN0aW9uKHByZWRpY2F0ZU9ySWRzKSkge1xuICAgIGNvbmRpdGlvbiA9IHByZWRpY2F0ZU9ySWRzO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGlkcyA9IGNvZXJjZUFycmF5KHByZWRpY2F0ZU9ySWRzKTtcbiAgICBjb25kaXRpb24gPSBpdGVtID0+IGlkcy5pbmNsdWRlcyhpc09iamVjdChpdGVtKSA/IGl0ZW1baWRLZXldIDogaXRlbSkgPT09IHRydWU7XG4gIH1cblxuICBjb25zdCB1cGRhdGVGbiA9IHN0YXRlID0+XG4gICAgc3RhdGUubWFwKGVudGl0eSA9PiB7XG4gICAgICBpZiAoY29uZGl0aW9uKGVudGl0eSkgPT09IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIGlzT2JqZWN0KGVudGl0eSlcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgLi4uZW50aXR5LFxuICAgICAgICAgICAgICAuLi5vYmpcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IG9iajtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGVudGl0eTtcbiAgICB9KTtcblxuICBpZiAoaXNBcnJheShrZXlPclJvb3QpKSB7XG4gICAgcmV0dXJuIHVwZGF0ZUZuKGtleU9yUm9vdCk7XG4gIH1cblxuICByZXR1cm4gcm9vdCA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIFtrZXlPclJvb3QgYXMgc3RyaW5nXTogdXBkYXRlRm4ocm9vdFtrZXlPclJvb3RdKVxuICAgIH07XG4gIH07XG59XG4iXX0=