remx
Version:
Opinionated mobx
72 lines (11 loc) • 2.93 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:true});exports.registerLoggerForDebug=undefined;
var _logger=require('./logger');Object.defineProperty(exports,'registerLoggerForDebug',{enumerable:true,get:function get(){return _logger.
registerLoggerForDebug;}});exports.
state=state;exports.
setters=setters;exports.
getters=getters;exports.
merge=merge;exports.
toJS=toJS;var _mobx=require('mobx');var mobx=_interopRequireWildcard(_mobx);var _lodash=require('lodash.isfunction');var _lodash2=_interopRequireDefault(_lodash);var _lodash3=require('lodash.isobjectlike');var _lodash4=_interopRequireDefault(_lodash3);var _mergeWith=require('../utils/mergeWith');var _mergeWith2=_interopRequireDefault(_mergeWith);var _isDev=require('../utils/isDev');var _Proxify=require('./Proxify');function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj;}else{var newObj={};if(obj!=null){for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key))newObj[key]=obj[key];}}newObj.default=obj;return newObj;}}mobx.configure({enforceActions:(0,_isDev.isDev)()?'observed':'never',isolateGlobalState:true});function state(obj){return(0,_Proxify.proxify)(obj);}function setters(obj){var result={};Object.keys(obj).forEach(function(key){if((0,_lodash2.default)(obj[key])){result[key]=mobx.action(function(){for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}(0,_logger.logSetter)(key,args);obj[key].apply(obj,args);});}});return result;}function getters(obj){var result={};Object.defineProperty(result,'__computed',{value:{}});Object.keys(obj).forEach(function(k){result.__computed[k]=mobx.computed(obj[k]);result[k]=function(){for(var _len2=arguments.length,args=Array(_len2),_key2=0;_key2<_len2;_key2++){args[_key2]=arguments[_key2];}(0,_logger.logGetter)(k,args);if(args.length>0){var _result$__computed$k;return(_result$__computed$k=result.__computed[k]).derivation.apply(_result$__computed$k,args);}return result.__computed[k].get();};});return result;}function merge(state,delta){Object.keys(delta).forEach(function(k){state[k]=mergeOldStateWithDelta(state[k],delta[k]);});}function mergeOldStateWithDelta(oldValue,newValue){if(!newValue||!(0,_lodash4.default)(newValue)){return newValue;}return(0,_mergeWith2.default)({},oldValue,newValue,mergeCustomizer);}function mergeCustomizer(objValue,srcValue,key,object){if(srcValue===undefined){object[key]=undefined;}return undefined;}function toJS(data){
console.warn('remx.toJS() is deprecated. Please remove it from your code ASAP.\n Be aware that things can break after removing it, most of the time because of problematic data flow.\n Please take your time to investigate the root of cause in case of a problem, toJS() is an expansive action');
return mobx.toJS(data);
}