@datorama/akita
Version:
State Management Tailored-Made for JS Applications
44 lines • 2.96 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
/**
* \@internal
*
* \@example
* setValue(state, 'todos.ui', { filter: {} })
* @param {?} obj
* @param {?} prop
* @param {?} val
* @return {?}
*/
export function setValue(obj, prop, val) {
/** @type {?} */
var split = prop.split('.');
if (split.length === 1) {
return val;
}
obj = tslib_1.__assign({}, obj);
/** @type {?} */
var lastIndex = split.length - 2;
/** @type {?} */
var removeStoreName = prop.split('.').slice(1);
removeStoreName.reduce((/**
* @param {?} acc
* @param {?} part
* @param {?} index
* @return {?}
*/
function (acc, part, index) {
if (index === lastIndex) {
acc[part] = val;
}
else {
acc[part] = tslib_1.__assign({}, acc[part]);
}
return acc && acc[part];
}), obj);
return obj;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0VmFsdWVCeVN0cmluZy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9ha2l0YS8iLCJzb3VyY2VzIjpbInNyYy9zZXRWYWx1ZUJ5U3RyaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQU1BLE1BQU0sVUFBVSxRQUFRLENBQUMsR0FBUSxFQUFFLElBQVksRUFBRSxHQUFROztRQUNqRCxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFFN0IsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN0QixPQUFPLEdBQUcsQ0FBQztLQUNaO0lBRUQsR0FBRyx3QkFBUSxHQUFHLENBQUUsQ0FBQzs7UUFFWCxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDOztRQUM1QixlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBRWhELGVBQWUsQ0FBQyxNQUFNOzs7Ozs7SUFBQyxVQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSztRQUN0QyxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDdkIsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUNqQjthQUFNO1lBQ0wsR0FBRyxDQUFDLElBQUksQ0FBQyx3QkFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUUsQ0FBQztTQUM5QjtRQUVELE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDLEdBQUUsR0FBRyxDQUFDLENBQUM7SUFFUixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBpbnRlcm5hbFxuICpcbiAqIEBleGFtcGxlXG4gKiBzZXRWYWx1ZShzdGF0ZSwgJ3RvZG9zLnVpJywgeyBmaWx0ZXI6IHt9IH0pXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRWYWx1ZShvYmo6IGFueSwgcHJvcDogc3RyaW5nLCB2YWw6IGFueSkge1xuICBjb25zdCBzcGxpdCA9IHByb3Auc3BsaXQoJy4nKTtcblxuICBpZiAoc3BsaXQubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIHZhbDtcbiAgfVxuXG4gIG9iaiA9IHsgLi4ub2JqIH07XG5cbiAgY29uc3QgbGFzdEluZGV4ID0gc3BsaXQubGVuZ3RoIC0gMjtcbiAgY29uc3QgcmVtb3ZlU3RvcmVOYW1lID0gcHJvcC5zcGxpdCgnLicpLnNsaWNlKDEpO1xuXG4gIHJlbW92ZVN0b3JlTmFtZS5yZWR1Y2UoKGFjYywgcGFydCwgaW5kZXgpID0+IHtcbiAgICBpZiAoaW5kZXggPT09IGxhc3RJbmRleCkge1xuICAgICAgYWNjW3BhcnRdID0gdmFsO1xuICAgIH0gZWxzZSB7XG4gICAgICBhY2NbcGFydF0gPSB7IC4uLmFjY1twYXJ0XSB9O1xuICAgIH1cblxuICAgIHJldHVybiBhY2MgJiYgYWNjW3BhcnRdO1xuICB9LCBvYmopO1xuXG4gIHJldHVybiBvYmo7XG59XG4iXX0=