
Security News
The Hidden Blast Radius of the Axios Compromise
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.
react-use-debug-hooks
Advanced tools
A type-safe React hook for debugging purposes that wraps around the useEffect hook, which returns the dependencies that changed on each iteration of the effect within the console.
react-use-debug-hooks
Type-safe React hooks for debugging React component's changed props (and states), or a useEffect hook wrapper, which returns the dependencies that changed on each iteration of the effect within the console.
npm i -D react-use-debug-hooks
This package is intended to be a debugging tool only!
Therefore, it should be installed within the devDependancies and all usage removed from the codebase before pushing to a production environment.
useDebugInfo ReferencecomponentName: This changes the debug label outputted with the changed deps in the console.props: The props you want to observe for changes.logOnlyWhenPropsChange: If you want to display in console only when any prop changes.effectConsoleName: stringprops: objectlogOnlyWhenPropsChange: booleanuseEffectDebugInfo ReferenceeffectConsoleName: This changes the debug label outputted with the changed deps in the console.effect: A callback function that contains imperative, possibly effectful code.deps: The effect will only activate if the values in the list change.effectConsoleName: stringeffect: React.EffectCallbackdeps: React.DependencyListuseDebugInfo just requires a componentName to be displayed in console and an object with all the props needed to be observed for changes.useDebugInfo has a final (optional) parameter logOnlyWhenPropsChange if you want displayed in the console only when anything changes and not every render.useDebugInfo, besides which props have changed, the renderCount and renderTime is also displayed.useEffectDebugInfo also requires a effectConsoleName to be displayed in the console.useEffectDebugInfo's effect callback an deps list is no different from useEffect ones.// ExampleComponent.tsx
import { useDebugInfo, useEffectDebugInfo } from 'react-use-debug-hooks';
const ExampleComponent = ({ title: string, initialCount = 0 }: ExampleComponentProps) => {
const [ string, setString ] = useState('0');
const count = useCount(initialCount);
const debugInfo = useDebugInfo('ExampleComponent', { // provide all props that we want to observe for changes
title,
initialCount,
string,
count,
}, true); // optional param 'logOnlyWhenPropsChange' to not be spammed in the console
// when component renders too much without any of the observed props changing
useEffectDebugInfo('reset_string_effect', () => {
setString('0');
}, [ initialCount ]); // only fires when useEffect hook's dependencies changes
return (
<>
<h5>Title: {title}</h5>
<p>String: {string}</p>
<p>Render count: {count}</p>
<button onClick={() => setString((prevS) => String(Number(prevS) + 1))}>Increment String</button>
</>
);
}
FAQs
A type-safe React hook for debugging purposes that wraps around the useEffect hook, which returns the dependencies that changed on each iteration of the effect within the console.
We found that react-use-debug-hooks demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.