Deeply reconstruct any object iterating over its property descriptors.
reconstruct-descriptors
is published on NPM Registry, so you can install it using any node package manager.
npm install reconstruct-descriptors
# If you're using Yarn.
yarn add reconstruct-descriptors
This module exports a function that receives an object and a function to iterate over property descriptors.
import reconstruct from 'reconstruct-descriptors'
const immutable = (object) => reconstruct(object, (descriptor, property) => ({
[property]: {
...descriptor,
writable: false,
configurable: false
}
}))
const user = immutable({ name: 'Ryan' })
user.name = 'Bruno'
console.log(user.name) // 'Ryan'
delete user.name
console.log(user.name) // 'Ryan'
Released under MIT license. You can see it here.