ngrx-store-freeze
Version:
@ngrx/store meta reducer that prevents state from being mutated.
27 lines (22 loc) • 851 B
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(factory((global.ngrxStoreFreeze = global.ngrxStoreFreeze || {})));
}(this, (function (exports) { 'use strict';
var deepFreeze = require('deep-freeze-strict');
function storeFreeze(reducer) {
return function freeze(state, action) {
state = state || {};
deepFreeze(state);
// guard against trying to freeze null or undefined types
if (action.payload) {
deepFreeze(action.payload);
}
var nextState = reducer(state, action);
deepFreeze(nextState);
return nextState;
};
}
exports.storeFreeze = storeFreeze;
Object.defineProperty(exports, '__esModule', { value: true });
})));