Latest Threat Research:SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains.Details
Socket
Book a DemoInstallSign in
Socket

reactotron-redux

Package Overview
Dependencies
Maintainers
16
Versions
88
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

reactotron-redux - npm Package Compare versions

Comparing version
3.1.7
to
3.1.8
+17
dist/types/src/reactotron-redux.d.ts
import type { ReactotronCore } from "reactotron-core-client";
import { PluginConfig } from "./pluginConfig";
declare function reactotronRedux(pluginConfig?: PluginConfig): <Client extends ReactotronCore = ReactotronCore>(reactotron: Client) => {
onCommand: ({ type, payload }: {
type: string;
payload?: any;
}) => void;
features: {
createEnhancer: (skipSettingStore?: boolean) => (createStore: any) => (reducer: any, ...args: any[]) => any;
setReduxStore: (store: any) => void;
reportReduxAction: (action: {
type: any;
}, ms: number, important?: boolean) => void;
};
};
export type ReactotronReduxPlugin = ReturnType<typeof reactotronRedux>;
export { reactotronRedux };
import type { Plugin, ReactotronCore } from "reactotron-core-client"
import createCommandHander from "./commandHandler"
import createSendAction from "./sendAction"
import createEnhancer from "./enhancer"
import { DEFAULT_REPLACER_TYPE } from "./reducer"
import { PluginConfig } from "./pluginConfig"
function reactotronRedux(pluginConfig: PluginConfig = {}) {
const mergedPluginConfig: PluginConfig = {
...pluginConfig,
restoreActionType: pluginConfig.restoreActionType || DEFAULT_REPLACER_TYPE,
}
const storeCreationHandlers: (() => void)[] = []
const onReduxStoreCreation = (func: () => void) => {
storeCreationHandlers.push(func)
}
const handleStoreCreation = () => {
storeCreationHandlers.forEach((func) => {
func()
})
}
function plugin<Client extends ReactotronCore = ReactotronCore>(reactotron: Client) {
return {
// Fires when we receive a command from the Reactotron app.
onCommand: createCommandHander(reactotron, mergedPluginConfig, onReduxStoreCreation),
// All keys in this object will be attached to the main Reactotron instance
// and available to be called directly.
features: {
createEnhancer: createEnhancer(reactotron, mergedPluginConfig, handleStoreCreation),
setReduxStore: (store) => {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore shhhhhh -- this is a private API
reactotron.reduxStore = store
handleStoreCreation()
},
reportReduxAction: createSendAction(reactotron),
},
} satisfies Plugin<Client>
}
return plugin
}
export type ReactotronReduxPlugin = ReturnType<typeof reactotronRedux>
export { reactotronRedux }
+2
-0

@@ -5,2 +5,4 @@ # Changelog

## [3.1.8](https://github.com/infinitered/reactotron/compare/reactotron-redux@3.1.7...reactotron-redux@3.1.8) (2024-02-14)
### [3.1.7](https://github.com/infinitered/reactotron/compare/reactotron-redux@3.1.6...reactotron-redux@3.1.7) (2024-01-25)

@@ -7,0 +9,0 @@

+1
-1

@@ -1,1 +0,1 @@

import{assertHasStateResponsePlugin}from"reactotron-core-client";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){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=b.type;"symbol"===_typeof(e)&&(e=e.toString().replace(/^Symbol\(/,"").replace(/\)$/,"")),a.send("state.action.complete",{name:e,action:b,ms:c},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=a.startTimer(),g=b.dispatch(e),h=f(),i="PERFORM_ACTION"===e.type&&e.action?e.action:e,j=d.some(function(a){return"string"==typeof a?i.type===a:"function"==typeof a?a(i.type):!!(a instanceof RegExp)&&a.test(i.type)});if(!j){var k=!1;c&&"function"==typeof c.isActionImportant&&(k=!!c.isActionImportant(i)),a.reportReduxAction(i,h,k)}return g}}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)}}}}export{reactotronRedux};
import{assertHasStateResponsePlugin as t}from"reactotron-core-client";var e=t=>t.toJS?t.toJS():t;function s(t,e){if(!t)return e;const s=t.split(".");let n=e;for(let t=0;t<s.length;t++){if(n=n[s[t]],t<s.length-1&&"object"!=typeof n){n=void 0;break}}return n}function n(n,o,r){t(n);const a=n,c=function(t,e){let n=[];function o(){if(!t||!t.reduxStore||"function"!=typeof t.reduxStore.getState)return[];const e=t.reduxStore.getState(),o=[];return n.forEach((t=>{let n=t,r=!1;t&&t.endsWith("*")&&(r=!0,n=t.substr(0,t.length-2));const a=s(n,e);r&&n&&a?o.push(...Object.entries(a).map((t=>({path:`${n}.${t[0]}`,value:t[1]})))):o.push({path:n,value:a})})),o}function r(){const e=o();e.length>0&&t.stateValuesChange(e)}return e((()=>{t.reduxStore.subscribe(r)})),{sendSubscriptions:function(){const e=o();t.stateValuesChange(e)},sendSubscriptionsIfNeeded:r,setSubscriptions:function(t){n=t}}}(n,r);return({type:t,payload:n})=>{const r=a.reduxStore;switch(t){case"state.keys.request":case"state.values.request":{const o=e(r.getState());if(n.path){const e=s(n.path,o);("state.keys.request"===t?a.stateKeysResponse:a.stateValuesResponse)(n.path,"state.keys.request"===t?"object"==typeof e?Object.keys(e):void 0:e)}else a.stateKeysResponse(null,"state.keys.request"===t?Object.keys(o):o)}break;case"state.values.subscribe":c.setSubscriptions(n.paths),c.sendSubscriptions();break;case"state.action.dispatch":r.dispatch(n.action);break;case"state.backup.request":{let t=r.getState();o.onBackup&&(t=o.onBackup(t)),a.send("state.backup.response",{state:t});break}case"state.restore.request":{let t=n.state;o.onRestore&&(t=o.onRestore(n.state,r.getState())),a.reduxStore.dispatch({type:o.restoreActionType,state:t});break}}}}function o(t){return(e,s,n=!1)=>{let{type:o}=e;"symbol"==typeof o&&(o=o.toString().replace(/^Symbol\(/,"").replace(/\)$/,"")),t.send("state.action.complete",{name:o,action:e,ms:s},n)}}const r="REACTOTRON_RESTORE_STATE";function a(t,e,s){const n=[s.restoreActionType,...s.except||[]];return o=>{const r=t.startTimer(),a=e.dispatch(o),c=r(),u="PERFORM_ACTION"===o.type&&o.action?o.action:o;if(!n.some((t=>"string"==typeof t?u.type===t:"function"==typeof t?t(u.type):t instanceof RegExp&&t.test(u.type)))){let e=!1;s&&"function"==typeof s.isActionImportant&&(e=!!s.isActionImportant(u)),t.reportReduxAction(u,c,e)}return a}}function c(t,e,s){return(n=!1)=>o=>(c,...u)=>{const i=o(function(t,e=r){return(s,n)=>{const o=n.type===e?n.state:s;return t(o,n)}}(c,e.restoreActionType),...u),p=Object.assign(Object.assign({},i),{dispatch:a(t,i,e)});return n||(t.reduxStore=p,s()),p}}function u(t={}){const e=Object.assign(Object.assign({},t),{restoreActionType:t.restoreActionType||r}),s=[],a=t=>{s.push(t)},u=()=>{s.forEach((t=>{t()}))};return function(t){return{onCommand:n(t,e,a),features:{createEnhancer:c(t,e,u),setReduxStore:e=>{t.reduxStore=e,u()},reportReduxAction:o(t)}}}}export{u as reactotronRedux};

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var reactotronCoreClient=require("reactotron-core-client");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=b.type;"symbol"===_typeof(e)&&(e=e.toString().replace(/^Symbol\(/,"").replace(/\)$/,"")),a.send("state.action.complete",{name:e,action:b,ms:c},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=a.startTimer(),g=b.dispatch(e),h=f(),i="PERFORM_ACTION"===e.type&&e.action?e.action:e,j=d.some(function(a){return"string"==typeof a?i.type===a:"function"==typeof a?a(i.type):!!(a instanceof RegExp)&&a.test(i.type)});if(!j){var k=!1;c&&"function"==typeof c.isActionImportant&&(k=!!c.isActionImportant(i)),a.reportReduxAction(i,h,k)}return g}}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;
"use strict";var t=require("reactotron-core-client"),e=t=>t.toJS?t.toJS():t;function s(t,e){if(!t)return e;const s=t.split(".");let n=e;for(let t=0;t<s.length;t++){if(n=n[s[t]],t<s.length-1&&"object"!=typeof n){n=void 0;break}}return n}function n(n,r,o){t.assertHasStateResponsePlugin(n);const a=n,c=function(t,e){let n=[];function r(){if(!t||!t.reduxStore||"function"!=typeof t.reduxStore.getState)return[];const e=t.reduxStore.getState(),r=[];return n.forEach((t=>{let n=t,o=!1;t&&t.endsWith("*")&&(o=!0,n=t.substr(0,t.length-2));const a=s(n,e);o&&n&&a?r.push(...Object.entries(a).map((t=>({path:`${n}.${t[0]}`,value:t[1]})))):r.push({path:n,value:a})})),r}function o(){const e=r();e.length>0&&t.stateValuesChange(e)}return e((()=>{t.reduxStore.subscribe(o)})),{sendSubscriptions:function(){const e=r();t.stateValuesChange(e)},sendSubscriptionsIfNeeded:o,setSubscriptions:function(t){n=t}}}(n,o);return({type:t,payload:n})=>{const o=a.reduxStore;switch(t){case"state.keys.request":case"state.values.request":{const r=e(o.getState());if(n.path){const e=s(n.path,r);("state.keys.request"===t?a.stateKeysResponse:a.stateValuesResponse)(n.path,"state.keys.request"===t?"object"==typeof e?Object.keys(e):void 0:e)}else a.stateKeysResponse(null,"state.keys.request"===t?Object.keys(r):r)}break;case"state.values.subscribe":c.setSubscriptions(n.paths),c.sendSubscriptions();break;case"state.action.dispatch":o.dispatch(n.action);break;case"state.backup.request":{let t=o.getState();r.onBackup&&(t=r.onBackup(t)),a.send("state.backup.response",{state:t});break}case"state.restore.request":{let t=n.state;r.onRestore&&(t=r.onRestore(n.state,o.getState())),a.reduxStore.dispatch({type:r.restoreActionType,state:t});break}}}}function r(t){return(e,s,n=!1)=>{let{type:r}=e;"symbol"==typeof r&&(r=r.toString().replace(/^Symbol\(/,"").replace(/\)$/,"")),t.send("state.action.complete",{name:r,action:e,ms:s},n)}}const o="REACTOTRON_RESTORE_STATE";function a(t,e,s){const n=[s.restoreActionType,...s.except||[]];return r=>{const o=t.startTimer(),a=e.dispatch(r),c=o(),u="PERFORM_ACTION"===r.type&&r.action?r.action:r;if(!n.some((t=>"string"==typeof t?u.type===t:"function"==typeof t?t(u.type):t instanceof RegExp&&t.test(u.type)))){let e=!1;s&&"function"==typeof s.isActionImportant&&(e=!!s.isActionImportant(u)),t.reportReduxAction(u,c,e)}return a}}function c(t,e,s){return(n=!1)=>r=>(c,...u)=>{const i=r(function(t,e=o){return(s,n)=>{const r=n.type===e?n.state:s;return t(r,n)}}(c,e.restoreActionType),...u),p=Object.assign(Object.assign({},i),{dispatch:a(t,i,e)});return n||(t.reduxStore=p,s()),p}}exports.reactotronRedux=function(t={}){const e=Object.assign(Object.assign({},t),{restoreActionType:t.restoreActionType||o}),s=[],a=t=>{s.push(t)},u=()=>{s.forEach((t=>{t()}))};return function(t){return{onCommand:n(t,e,a),features:{createEnhancer:c(t,e,u),setReduxStore:e=>{t.reduxStore=e,u()},reportReduxAction:r(t)}}}};

@@ -1,17 +0,1 @@

import type { ReactotronCore } from "reactotron-core-client";
import { PluginConfig } from "./pluginConfig";
declare function reactotronRedux(pluginConfig?: PluginConfig): <Client extends ReactotronCore = ReactotronCore>(reactotron: Client) => {
onCommand: ({ type, payload }: {
type: string;
payload?: any;
}) => void;
features: {
createEnhancer: (skipSettingStore?: boolean) => (createStore: any) => (reducer: any, ...args: any[]) => any;
setReduxStore: (store: any) => void;
reportReduxAction: (action: {
type: any;
}, ms: number, important?: boolean) => void;
};
};
export type ReactotronReduxPlugin = ReturnType<typeof reactotronRedux>;
export { reactotronRedux };
export * from "./reactotron-redux";
{
"name": "reactotron-redux",
"version": "3.1.7",
"version": "3.1.8",
"description": "A Reactotron plugin for Redux.",

@@ -29,3 +29,3 @@ "author": "Infinite Red",

"test:watch": "jest --watch --notify",
"format": "prettier '*.{js,ts,tsx,json,md,css,yml}|**/*.{js,ts,tsx,json,md,css,yml}'",
"format": "prettier '*.{js,ts,tsx,json,md,css,yml}|**/*.{js,ts,tsx,json,md,css,yml}' --config ../../.prettierrc --ignore-path ../../.prettierignore",
"format:check": "yarn format --check",

@@ -39,4 +39,4 @@ "format:write": "yarn format --write",

"lint": "eslint src --ext .ts,.tsx",
"compile": "NODE_ENV=production rollup -c",
"compile:dev": "NODE_ENV=development rollup -c",
"compile": "NODE_ENV=production rollup -c --strictDeprecations --bundleConfigAsCjs",
"compile:dev": "NODE_ENV=development rollup -c --strictDeprecations --bundleConfigAsCjs",
"tsc": "tsc",

@@ -54,3 +54,4 @@ "typecheck": "yarn tsc",

"@babel/preset-typescript": "^7.23.2",
"@types/jest": "^29.5.7",
"@rollup/plugin-typescript": "11.1.1",
"@types/jest": "^29.5.12",
"@typescript-eslint/eslint-plugin": "^6.7.5",

@@ -60,3 +61,3 @@ "@typescript-eslint/parser": "^6.7.5",

"babel-jest": "^29.7.0",
"eslint": "^8.53.0",
"eslint": "^8.56.0",
"eslint-config-prettier": "^9.0.0",

@@ -70,11 +71,9 @@ "eslint-config-standard": "^17.1.0",

"prettier": "^3.0.3",
"reactotron-core-client": "2.8.13",
"reactotron-core-client": "2.9.1",
"redux": "4.2.1",
"rollup": "1.1.2",
"rollup-plugin-babel": "4.3.2",
"rollup-plugin-babel-minify": "7.0.0",
"rollup-plugin-filesize": "^6.0.1",
"rollup-plugin-node-resolve": "4.0.0",
"rollup-plugin-resolve": "0.0.1-predev.1",
"ts-jest": "^29.1.1",
"rimraf": "5.0.5",
"rollup": "^4.9.6",
"rollup-plugin-filesize": "^10.0.0",
"rollup-plugin-terser": "^7.0.2",
"ts-jest": "^29.1.2",
"typescript": "^4.9.5"

@@ -81,0 +80,0 @@ },

@@ -1,50 +0,1 @@

import type { Plugin, ReactotronCore } from "reactotron-core-client"
import createCommandHander from "./commandHandler"
import createSendAction from "./sendAction"
import createEnhancer from "./enhancer"
import { DEFAULT_REPLACER_TYPE } from "./reducer"
import { PluginConfig } from "./pluginConfig"
function reactotronRedux(pluginConfig: PluginConfig = {}) {
const mergedPluginConfig: PluginConfig = {
...pluginConfig,
restoreActionType: pluginConfig.restoreActionType || DEFAULT_REPLACER_TYPE,
}
const storeCreationHandlers: (() => void)[] = []
const onReduxStoreCreation = (func: () => void) => {
storeCreationHandlers.push(func)
}
const handleStoreCreation = () => {
storeCreationHandlers.forEach((func) => {
func()
})
}
function plugin<Client extends ReactotronCore = ReactotronCore>(reactotron: Client) {
return {
// Fires when we receive a command from the Reactotron app.
onCommand: createCommandHander(reactotron, mergedPluginConfig, onReduxStoreCreation),
// All keys in this object will be attached to the main Reactotron instance
// and available to be called directly.
features: {
createEnhancer: createEnhancer(reactotron, mergedPluginConfig, handleStoreCreation),
setReduxStore: (store) => {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore shhhhhh -- this is a private API
reactotron.reduxStore = store
handleStoreCreation()
},
reportReduxAction: createSendAction(reactotron),
},
} satisfies Plugin<Client>
}
return plugin
}
export type ReactotronReduxPlugin = ReturnType<typeof reactotronRedux>
export { reactotronRedux }
export * from "./reactotron-redux"