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.
@types/retry
Advanced tools
TypeScript definitions for retry
The @types/retry package provides TypeScript type definitions for the 'retry' npm package, which is a utility for retrying operations that might fail. It allows developers to implement retry logic with various strategies and options, making it easier to handle transient failures in applications. The types package doesn't add functionality but offers type support for TypeScript users of 'retry'.
Creating a retry operation
This feature allows you to create a retry operation. You can specify the operation you want to retry, such as a network request. The `attempt` method is used to try the operation, and `retry` is called if the operation fails, until the maximum number of attempts is reached.
import * as retry from 'retry';
const operation = retry.operation();
operation.attempt((currentAttempt) => {
// Your operation here, e.g., a network request
if (networkError) {
if (operation.retry(networkError)) {
return;
}
// Handle the network error after max retries
}
});
Customizing retry options
This feature demonstrates how to customize the retry operation with specific options. You can set the maximum number of retries, the exponential backoff factor, minimum and maximum timeout between retries, and whether to randomize the retry intervals.
import * as retry from 'retry';
const operation = retry.operation({
retries: 5, // Maximum number of attempts
factor: 2, // The exponential factor
minTimeout: 1 * 1000, // The number of milliseconds before starting the first retry
maxTimeout: 60 * 1000, // The maximum number of milliseconds between two retries
randomize: true, // Randomizes the timeouts by multiplying with a factor between 1 to 2
});
Similar to 'retry', 'async-retry' provides retry functionality specifically designed for asynchronous operations. It supports both promise-based and async/await syntax, making it a good alternative for modern JavaScript and TypeScript applications. Unlike @types/retry, which is just type definitions, 'async-retry' is a standalone package that doesn't require separate type definitions.
This package is a promise-based retry library that offers a simple API for retrying operations. It is very similar to 'async-retry' but focuses more on promises. 'p-retry' is useful for applications heavily utilizing promises. It differs from @types/retry in that it's specifically designed for promise-based operations and also doesn't require separate type definitions for TypeScript users.
npm install --save @types/retry
This package contains type definitions for retry (https://github.com/tim-kos/node-retry).
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/retry.
These definitions were written by Stan Goldmann, and BendingBender.
FAQs
TypeScript definitions for retry
We found that @types/retry 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
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.