@datorama/akita
Version:
State Management Tailored-Made for JS Applications
39 lines • 3.75 kB
JavaScript
/**
* @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=