UNPKG

deeply-freeze

Version:
22 lines 820 B
/* Created by Ben Carp */ var isAnObject = function (something) { return (typeof something === "object" && something !== null); }; var forVal = function (obj) { return function (fun) { return Object.keys(obj).forEach(function (key) { return fun(obj[key]); }); }; }; var _IS_DEEPLY_FROZEN = "_isDeeplyFrozen"; var deepFreeze = function (obj) { if (!isAnObject(obj)) throw Error; forVal(obj)(function (propVal) { if (!isAnObject(propVal)) return; if (propVal.hasOwnProperty(_IS_DEEPLY_FROZEN)) return; deepFreeze(propVal); }); Object.defineProperty(obj, _IS_DEEPLY_FROZEN, { enumerable: false, writable: false, }); return Object.freeze(obj); }; export default deepFreeze; //# sourceMappingURL=index.js.map