UNPKG

mobx-vue

Version:
37 lines 1.11 kB
/** * @author Kuitos * @homepage https://github.com/kuitos/ * @since 2018-06-08 10:16 */ import * as mobx from 'mobx'; /** * check if is a mobx observable * compatible with mobx 5 */ function isMobxObservable(value) { return !!(value.$mobx || value.__mobxDecorators || value[mobx.$mobx]); } export default function collectData(vm, data) { var dataDefinition = typeof data === 'function' ? data.call(vm, vm) : (data || {}); var filteredData = Object.keys(dataDefinition).reduce(function (result, field) { var value = dataDefinition[field]; if (isMobxObservable(value)) { Object.defineProperty(vm, field, { configurable: true, get: function () { return value; }, // @formatter:off // tslint:disable-next-line set: function () { } // @formatter:on }); } else { result[field] = value; } return result; }, {}); return filteredData; } //# sourceMappingURL=collectData.js.map