Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

unwritable

m59peacemaker5CC0-1.01.1.0

Convenience for working with writable: false object properties.

writable, false, defineProperty, define, prop, property, descriptor, unwritable, write, change, value

readme

unwritable

Convenience for working with writable: false object properties.

Read about the writable attribute here.

install

# npm install unwritable

example

const { unwritable, writable, write } = require('unwritable')

const obj = { foo: 123 }

unwritable(obj, 'foo')

obj.foo = 456 // does nothing
obj.foo // => 123

write(obj, 'foo', 456)
obj.foo // => 456

writable(obj, 'foo')
obj.foo = 123
obj.foo // => 123
const unwritable = require('unwritable')

const obj = { foo: 123 }

unwritable(obj, 'foo')

obj.foo = 456 // does nothing
obj.foo // => 123

unwritable.write(obj, 'foo', 456)
obj.foo // => 456

unwritable.writable(obj, 'foo')
obj.foo = 123
obj.foo // => 123

api

These functions will throw if given a property that has an accessor (get/set). This gives you added confidence that your code is doing what you expect.

unwritable(obj, prop)

Make prop of obj unwritable. It will assign prop to object with a value of undefined if obj does not already have prop.

writable(obj, prop)

Make prop of obj writable. It will assign prop to object with a value of undefined if obj does not already have prop.

write(obj, prop, value)

Assigns value to prop of obj. It is essentially obj[prop] = value, but works on properties whether they are writable or not.