UNPKG

reactotron-redux

Version:
2 lines (1 loc) 6.64 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});function _interopDefault(a){return a&&"object"==typeof a&&"default"in a?a["default"]:a}var reactotronCoreClient=require("reactotron-core-client"),diff=_interopDefault(require("microdiff"));function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread2(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _toPrimitive(a,b){if("object"!=typeof a||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var d=c.call(a,b||"default");if("object"!=typeof d)return d;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===b?String:Number)(a)}function _toPropertyKey(a){var b=_toPrimitive(a,"string");return"symbol"==typeof b?b:b+""}function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function _defineProperty(a,b,c){return b=_toPropertyKey(b),b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _toConsumableArray(a){return _arrayWithoutHoles(a)||_iterableToArray(a)||_unsupportedIterableToArray(a)||_nonIterableSpread()}function _arrayWithoutHoles(a){if(Array.isArray(a))return _arrayLikeToArray(a)}function _iterableToArray(a){if("undefined"!=typeof Symbol&&null!=a[Symbol.iterator]||null!=a["@@iterator"])return Array.from(a)}function _unsupportedIterableToArray(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(a):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var stateCleaner=function(a){return a.toJS?a.toJS():a};function pathObject(a,b){if(!a)return b;for(var c,d=a.split("."),e=b,f=0;f<d.length;f++)if(c=d[f],e=e[c],f<d.length-1&&"object"!==_typeof(e)){e=void 0;break}return e}function createSubscriptionHandler(a,b){function c(){if(!a||!a.reduxStore||"function"!=typeof a.reduxStore.getState)return[];var b=a.reduxStore.getState(),c=[];return e.forEach(function(a){var d=a,e=!1;a&&a.endsWith("*")&&(e=!0,d=a.substr(0,a.length-2));var f=pathObject(d,b);e&&d&&f?c.push.apply(c,_toConsumableArray(Object.entries(f).map(function(a){return{path:"".concat(d,".").concat(a[0]),value:a[1]}}))):c.push({path:d,value:f})}),c}function d(){var b=c();0<b.length&&a.stateValuesChange(b)}var e=[];return b(function(){a.reduxStore.subscribe(d)}),{sendSubscriptions:function(){var b=c();a.stateValuesChange(b)},sendSubscriptionsIfNeeded:d,setSubscriptions:function(a){e=a}}}function createCommandHandler(a,b,c){reactotronCoreClient.assertHasStateResponsePlugin(a);var d=a,e=createSubscriptionHandler(a,c);return function(a){var c=a.type,f=a.payload,g=d.reduxStore;switch(c){case"state.keys.request":case"state.values.request":{var h=stateCleaner(g.getState());if(!f.path)d.stateKeysResponse(null,"state.keys.request"===c?Object.keys(h):h);else{var i=pathObject(f.path,h),j="state.keys.request"===c?d.stateKeysResponse:d.stateValuesResponse;j(f.path,"state.keys.request"===c?"object"===_typeof(i)?Object.keys(i):void 0:i)}}break;case"state.values.subscribe":e.setSubscriptions(f.paths),e.sendSubscriptions();break;case"state.action.dispatch":g.dispatch(f.action);break;case"state.backup.request":{var k=g.getState();b.onBackup&&(k=b.onBackup(k)),d.send("state.backup.response",{state:k});break}case"state.restore.request":{var l=f.state;b.onRestore&&(l=b.onRestore(f.state,g.getState())),d.reduxStore.dispatch({type:b.restoreActionType,state:l});break}}}}function createSendAction(a){return function(b,c){var d=!!(2<arguments.length&&arguments[2]!==void 0)&&arguments[2],e=3<arguments.length?arguments[3]:void 0,f=b.type;"symbol"===_typeof(f)&&(f=f.toString().replace(/^Symbol\(/,"").replace(/\)$/,"")),a.send("state.action.complete",{name:f,action:b,ms:c,diff:e},d)}}var DEFAULT_REPLACER_TYPE="REACTOTRON_RESTORE_STATE";function reactotronReducer(a){var b=1<arguments.length&&arguments[1]!==void 0?arguments[1]:DEFAULT_REPLACER_TYPE;return function(c,d){var e=d.type===b?d.state:c;return a(e,d)}}function createCustomDispatch(a,b,c){var d=[c.restoreActionType].concat(_toConsumableArray(c.except||[]));return function(e){var f,g=a.startTimer(),h=null===b||void 0===b||null===(f=b.getState)||void 0===f?void 0:f.call(b),i=b.dispatch(e),j=g(),k="PERFORM_ACTION"===e.type&&e.action?e.action:e,l=d.some(function(a){return"string"==typeof a?k.type===a:"function"==typeof a?a(k.type):!!(a instanceof RegExp)&&a.test(k.type)});if(!l){var m,n=!1;c&&"function"==typeof c.isActionImportant&&(n=!!c.isActionImportant(k));var o=null===b||void 0===b||null===(m=b.getState)||void 0===m?void 0:m.call(b);a.reportReduxAction(k,j,n,diff(h,o))}return i}}function createEnhancer(a,b,c){return function(){var d=!!(0<arguments.length&&arguments[0]!==void 0)&&arguments[0];return function(e){return function(f){for(var g=arguments.length,h=Array(1<g?g-1:0),i=1;i<g;i++)h[i-1]=arguments[i];var j=e.apply(void 0,[reactotronReducer(f,b.restoreActionType)].concat(h)),k=_objectSpread2(_objectSpread2({},j),{},{dispatch:createCustomDispatch(a,j,b)});return d||(a.reduxStore=k,c()),k}}}}function reactotronRedux(){var a=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{},b=_objectSpread2(_objectSpread2({},a),{},{restoreActionType:a.restoreActionType||DEFAULT_REPLACER_TYPE}),c=[],d=function(a){c.push(a)},e=function(){c.forEach(function(a){a()})};return function(a){return{onCommand:createCommandHandler(a,b,d),features:{createEnhancer:createEnhancer(a,b,e),setReduxStore:function(b){a.reduxStore=b,e()},reportReduxAction:createSendAction(a)}}}}exports.reactotronRedux=reactotronRedux;