Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
use-async-effect
Advanced tools
:running: Asynchronous side effects, without the nonsense.
useAsyncEffect(async () => {
await doSomethingAsync();
});
npm install use-async-effect
or
yarn add use-async-effect
This package ships with TypeScript and Flow types.
The API is the same as React's useEffect()
, except for some notable differences:
useAsyncEffect(callback, dependencies?);
useAsyncEffect(callback, onDestroy, dependencies?);
useAsyncEffect(async isMounted => {
const data1 = await fn1();
if (!isMounted()) return;
const data2 = await fn2();
if (!isMounted()) return;
doSomething(data1, data2);
});
Mounted means that it's running in the current component. It becomes unmounted if the component unmounts, or if the component is re-rendered and the callback is dropped and a new one is called.
Basic mount/unmount
useAsyncEffect(async () => console.log('mount'), () => console.log('unmount'), []);
Omitting destroy
useAsyncEffect(async () => console.log('mount'), []);
Handle effect result in destroy
useAsyncEffect(() => fetch('url'), (result) => console.log(result));
Making sure it's still mounted before updating component state
useAsyncEffect(async isMounted => {
const data = await fetch(`/users/${id}`).then(res => res.json());
if (!isMounted()) return;
setUser(data);
}, [id]);
FAQs
Asynchronous side effects, without the nonsense
The npm package use-async-effect receives a total of 22,764 weekly downloads. As such, use-async-effect popularity was classified as popular.
We found that use-async-effect demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers 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
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.