UNPKG

@datorama/akita

Version:

State Management Tailored-Made for JS Applications

43 lines 2.93 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * \@internal * * \@example * setValue(state, 'todos.ui', { filter: {} }) * @param {?} obj * @param {?} prop * @param {?} val * @return {?} */ export function setValue(obj, prop, val) { /** @type {?} */ const split = prop.split('.'); if (split.length === 1) { return val; } obj = Object.assign({}, obj); /** @type {?} */ const lastIndex = split.length - 2; /** @type {?} */ const removeStoreName = prop.split('.').slice(1); removeStoreName.reduce((/** * @param {?} acc * @param {?} part * @param {?} index * @return {?} */ (acc, part, index) => { if (index === lastIndex) { acc[part] = val; } else { acc[part] = Object.assign({}, acc[part]); } return acc && acc[part]; }), obj); return obj; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0VmFsdWVCeVN0cmluZy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9ha2l0YS8iLCJzb3VyY2VzIjpbInNyYy9zZXRWYWx1ZUJ5U3RyaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBTUEsTUFBTSxVQUFVLFFBQVEsQ0FBQyxHQUFRLEVBQUUsSUFBWSxFQUFFLEdBQVE7O1VBQ2pELEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztJQUU3QixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3RCLE9BQU8sR0FBRyxDQUFDO0tBQ1o7SUFFRCxHQUFHLHFCQUFRLEdBQUcsQ0FBRSxDQUFDOztVQUVYLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUM7O1VBQzVCLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFFaEQsZUFBZSxDQUFDLE1BQU07Ozs7OztJQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUMxQyxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDdkIsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUNqQjthQUFNO1lBQ0wsR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUUsQ0FBQztTQUM5QjtRQUVELE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDLEdBQUUsR0FBRyxDQUFDLENBQUM7SUFFUixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBpbnRlcm5hbFxuICpcbiAqIEBleGFtcGxlXG4gKiBzZXRWYWx1ZShzdGF0ZSwgJ3RvZG9zLnVpJywgeyBmaWx0ZXI6IHt9IH0pXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRWYWx1ZShvYmo6IGFueSwgcHJvcDogc3RyaW5nLCB2YWw6IGFueSkge1xuICBjb25zdCBzcGxpdCA9IHByb3Auc3BsaXQoJy4nKTtcblxuICBpZiAoc3BsaXQubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIHZhbDtcbiAgfVxuXG4gIG9iaiA9IHsgLi4ub2JqIH07XG5cbiAgY29uc3QgbGFzdEluZGV4ID0gc3BsaXQubGVuZ3RoIC0gMjtcbiAgY29uc3QgcmVtb3ZlU3RvcmVOYW1lID0gcHJvcC5zcGxpdCgnLicpLnNsaWNlKDEpO1xuXG4gIHJlbW92ZVN0b3JlTmFtZS5yZWR1Y2UoKGFjYywgcGFydCwgaW5kZXgpID0+IHtcbiAgICBpZiAoaW5kZXggPT09IGxhc3RJbmRleCkge1xuICAgICAgYWNjW3BhcnRdID0gdmFsO1xuICAgIH0gZWxzZSB7XG4gICAgICBhY2NbcGFydF0gPSB7IC4uLmFjY1twYXJ0XSB9O1xuICAgIH1cblxuICAgIHJldHVybiBhY2MgJiYgYWNjW3BhcnRdO1xuICB9LCBvYmopO1xuXG4gIHJldHVybiBvYmo7XG59XG4iXX0=