UNPKG

freeze-object

Version:

Recursively freeze an object and its properties.

26 lines (20 loc) 451 B
module.exports = function freezeObject(object, frozenSet = new WeakSet()) { if (object === null) { return object; } switch (typeof object) { case 'object': case 'function': break; default: return object; } if (frozenSet.has(object)) { return object; } frozenSet.add(Object.freeze(object)); Reflect.ownKeys(object).forEach((key) => freezeObject(object[key], frozenSet), ); return object; };