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, this or this instead if you just need optional chaining.
$ yarn add qbject
object to wrap ({})
default value (undefined)
unwrap key ('_')
import Qbject from 'qbject';
const obj1 = Qbject();
console.log(obj1._); // {}
console.log(obj1.bar.bar.baz._); // 'undefined'
obj1.arbitrary.deep.mutation = true;
console.log(obj1._); // {"arbitrary":{"deep":{"mutation":true}}}
obj1.foo = 'data';
console.log(obj1.foo._); // 'data'
const obj2 = Qbject({foo: 'test'}, 'something');
console.log(obj2._); // { foo: 'test' }
console.log(obj2.foo._); // 'test'
console.log(obj2.bar._); // 'something'
console.log(obj2.bar.bar._); // 'something'