UNPKG

kilto

Version:

A state management system with easy async and low boilerplate.

18 lines (14 loc) 451 B
export default function deepFreeze(obj) { // Retrieve the property names defined on obj const propNames = Object.getOwnPropertyNames(obj); // Freeze properties before freezing self propNames.forEach((name) => { const prop = obj[name]; // Freeze prop if it is an object if (typeof prop === 'object' && prop !== null) { deepFreeze(prop); } }); // Freeze self (no-op if already frozen) return Object.freeze(obj); }