Optional object chaining & creation with ES6 Proxys
Arbitrary property access with a default value. When setting a property, missing objects in the chain are created automatically.
Exports a global 'Qbject' when dumped in your page as a script tag.
You could use this or this or this instead if you just need optional chaining.
Install
$ yarn add qbject
Params
object to wrap ({})
default value (undefined)
unwrap key ('_')
Examples
import Qbject from 'qbject';
const obj1 = Qbject();
console.log(obj1.bar.bar.baz._);
obj1.arbitrary.deep.mutation = true;
console.log(obj1._);
obj1.foo = 'data';
console.log(obj1.foo._);
const obj2 = Qbject({foo: 'test'}, 'something');
console.log(obj2._);
console.log(obj2.foo._);
console.log(obj2.bar._);
console.log(obj2.bar.bar._);