UNPKG

@datorama/akita

Version:

State Management Tailored-Made for JS Applications

39 lines 3.75 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { coerceArray } from './coerceArray'; import { isArray } from './isArray'; /** * @template Root, Entity * @param {?} keyOrRoot * @param {?} newEntity * @param {?=} options * @return {?} */ export function arrayAdd(keyOrRoot, newEntity, options) { if (options === void 0) { options = {}; } /** @type {?} */ var newEntities = coerceArray(newEntity); /** @type {?} */ var addFn = (/** * @param {?} state * @return {?} */ function (state) { return (options.prepend ? tslib_1.__spread(newEntities, (state || [])) : tslib_1.__spread((state || []), newEntities)); }); if (isArray(keyOrRoot)) { return addFn(keyOrRoot); } return (/** * @param {?} state * @return {?} */ function (state) { var _a; return _a = {}, _a[(/** @type {?} */ (keyOrRoot))] = addFn(state[keyOrRoot]), _a; }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXlBZGQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGF0b3JhbWEvYWtpdGEvIiwic291cmNlcyI6WyJzcmMvYXJyYXlBZGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7O0FBa0JwQyxNQUFNLFVBQVUsUUFBUSxDQUFxQixTQUF1QyxFQUFFLFNBQTBCLEVBQUUsT0FBZ0M7SUFBaEMsd0JBQUEsRUFBQSxZQUFnQzs7UUFDMUksV0FBVyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUM7O1FBRXBDLEtBQUs7Ozs7SUFBRyxVQUFBLEtBQUssSUFBSSxPQUFBLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGtCQUFLLFdBQVcsRUFBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLGtCQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFLLFdBQVcsQ0FBQyxDQUFDLEVBQTNGLENBQTJGLENBQUE7SUFFbEgsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDdEIsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDekI7SUFFRDs7OztJQUFPLFVBQUEsS0FBSzs7UUFDVjtZQUNFLEdBQUMsbUJBQUEsU0FBUyxFQUF5QixJQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7ZUFDN0Q7SUFDSixDQUFDLEVBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJyYXlQcm9wZXJ0aWVzLCBPckFycmF5IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBjb2VyY2VBcnJheSB9IGZyb20gJy4vY29lcmNlQXJyYXknO1xuaW1wb3J0IHsgQWRkRW50aXRpZXNPcHRpb25zIH0gZnJvbSAnLi9hZGRFbnRpdGllcyc7XG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnLi9pc0FycmF5JztcblxuLyoqXG4gKiBBZGQgaXRlbSB0byBhIGNvbGxlY3Rpb25cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqXG4gKiBzdG9yZS51cGRhdGUoc3RhdGUgPT4gKHtcbiAqICAgY29tbWVudHM6IGFycmF5QWRkKHN0YXRlLmNvbW1lbnRzLCB7IGlkOiAyIH0pXG4gKiB9KSlcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcnJheUFkZDxSb290IGV4dGVuZHMgYW55W10sIEVudGl0eSA9IGFueT4oa2V5T3JSb290OiBSb290LCBuZXdFbnRpdHk6IE9yQXJyYXk8Um9vdFswXT4sIG9wdGlvbnM/OiBBZGRFbnRpdGllc09wdGlvbnMpOiBSb290WzBdW107XG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcnJheUFkZDxSb290LCBFbnRpdHkgPSBhbnk+KGtleU9yUm9vdDogQXJyYXlQcm9wZXJ0aWVzPFJvb3Q+LCBuZXdFbnRpdHk6IE9yQXJyYXk8RW50aXR5Piwgb3B0aW9ucz86IEFkZEVudGl0aWVzT3B0aW9ucyk6IChzdGF0ZTogUm9vdCkgPT4gUm9vdDtcbmV4cG9ydCBmdW5jdGlvbiBhcnJheUFkZDxSb290LCBFbnRpdHkgPSBhbnk+KGtleU9yUm9vdDogQXJyYXlQcm9wZXJ0aWVzPFJvb3Q+IHwgUm9vdCwgbmV3RW50aXR5OiBPckFycmF5PEVudGl0eT4sIG9wdGlvbnM6IEFkZEVudGl0aWVzT3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IG5ld0VudGl0aWVzID0gY29lcmNlQXJyYXkobmV3RW50aXR5KTtcblxuICBjb25zdCBhZGRGbiA9IHN0YXRlID0+IChvcHRpb25zLnByZXBlbmQgPyBbLi4ubmV3RW50aXRpZXMsIC4uLihzdGF0ZSB8fCBbXSldIDogWy4uLihzdGF0ZSB8fCBbXSksIC4uLm5ld0VudGl0aWVzXSk7XG5cbiAgaWYgKGlzQXJyYXkoa2V5T3JSb290KSkge1xuICAgIHJldHVybiBhZGRGbihrZXlPclJvb3QpO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgW2tleU9yUm9vdCBhcyBBcnJheVByb3BlcnRpZXM8Um9vdD5dOiBhZGRGbihzdGF0ZVtrZXlPclJvb3RdKVxuICAgIH07XG4gIH07XG59XG4iXX0=