remx
Version:
Opinionated mobx
50 lines (12 loc) • 1.38 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:true});exports.
registerLoggerForDebug=registerLoggerForDebug;exports.
logSetter=logSetter;exports.
logGetter=logGetter;exports.
startLoggingMapStateToProps=startLoggingMapStateToProps;exports.
endLoggingMapStateToProps=endLoggingMapStateToProps;var loggers=[];var isLoggerEnabled=false;var isBuffering=false;var buffer=[];var actions={setter:'setter',getter:'getter',mapStateToProps:'mapStateToProps',componentRender:'componentRender'};function registerLoggerForDebug(logger){if(loggers.length===0){console.warn('Remx logger has been activated. make sure to disable it in production.');isLoggerEnabled=true;}loggers.push(logger);}function log(data){if(isBuffering){buffer.push(data);}else{loggers.forEach(function(logger){return logger(data);});}}function logSetter(setterName,args){if(isLoggerEnabled){log({action:actions.setter,name:setterName,args:args});}}function logGetter(getterName,args){if(isLoggerEnabled){log({action:actions.getter,name:getterName,args:args});}}function startLoggingMapStateToProps(){isBuffering=true;}function endLoggingMapStateToProps(connectedComponentName,returnValue){
isBuffering=false;
if(isLoggerEnabled){
log({action:actions.mapStateToProps,connectedComponentName:connectedComponentName,returnValue:returnValue,triggeredEvents:buffer});
}
buffer=[];
}