UNPKG

qml-raub

Version:

QML interoperation for Node.js

46 lines (37 loc) 827 B
'use strict'; class Property { constructor(opts) { if (!opts.view) { throw new Error('Property requires `opts.view`.'); } if (!opts.name) { throw new Error('Property requires `opts.name`.'); } if (!opts.key) { throw new Error('Property requires `opts.key`.'); } const { view, name, key, value } = opts; this.opts = { view, name, key }; if (value !== undefined) { if (view.isLoaded) { view.set(name, key, value); } else { view.once('load', () => view.set(name, key, value)); } } } get value() { const { view, name, key } = this.opts; if (view.isLoaded) { return view.get(name, key) || null; } return null; } set value(v) { const { view, name, key } = this.opts; if (view.isLoaded) { view.set(name, key, v); } } } module.exports = Property;