UNPKG

mmlpx

Version:

mobx model layer paradigm

32 lines 1.08 kB
/** * @author Kuitos * @homepage https://github.com/kuitos/ * @since 2018-06-26 15:43 */ import { ObservableMap, runInAction } from 'mobx'; export default function hydrate(instance, Host) { var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } if (!(instance instanceof Host)) { var real_1 = new (Host.bind.apply(Host, [void 0].concat(args)))(); // awake the reactive system of the model Object.keys(instance).forEach(function (key) { if (real_1[key] instanceof ObservableMap) { var _a = real_1[key], name_1 = _a.name, enhancer_1 = _a.enhancer; runInAction(function () { return real_1[key] = new ObservableMap(instance[key], enhancer_1, name_1); }); } else { runInAction(function () { return real_1[key] = instance[key]; }); } }); return real_1; } return instance; }