@adam-rocska/timeout
v1.0.0
Published
A lightweight TypeScript utility to create a Promise that resolves after a specified delay.
Maintainers
Readme
@adam-rocska/timeout
A lightweight TypeScript/JavaScript utility that creates a Promise resolving after a specified number of milliseconds. Ideal for introducing delays in asynchronous workflows.
Features
- Simple Delay: Creates a Promise that resolves after a specified time (in milliseconds).
- TypeScript Support: Fully typed for a better developer experience.
- Lightweight: Zero runtime dependencies and minimal footprint.
- Browser and Node.js Support: Compatible with modern browsers (last 3 years) and Node.js (v14+).
- Well-Tested: Includes unit tests to ensure reliable resolution after the specified delay.
Installation
Install the package via npm or pnpm:
npm install @adam-rocska/timeoutor
pnpm add @adam-rocska/timeoutUsage
The timeout function takes a number of milliseconds and returns a Promise<void> that resolves after the specified delay.
Example: Basic Usage
import { timeout } from '@adam-rocska/timeout';
async function main() {
console.log('Starting...');
await timeout(2000); // Wait for 2 seconds
console.log('2 seconds later!');
}
main();Parameters
| Parameter | Type | Description | Default |
| --------- | -------- | ------------------------------------------------ | ------- |
| ms | number | Time to wait (in milliseconds) before resolving. | - |
Returns
- Resolves:
Promise<void>- Resolves after the specified delay.
Types
The library includes TypeScript definitions for type safety.
export declare const timeout: (ms: number) => Promise<void>;API
timeout(ms: number): Promise<void>
Creates a Promise that resolves after the specified number of milliseconds.
Requirements
- Node.js: Version 14 or higher (due to async/await and modern JavaScript features).
- Browsers: Supports browsers from the last 3 years (aligned with
browserslist). - TypeScript: Optional, for type safety (version 5.8 or higher recommended).
Development
To contribute or test the library locally:
- Clone the repository:
git clone https://github.com/adam-rocska/timeout-typescript.git - Install dependencies using pnpm:
pnpm install - Run tests:
pnpm test - Build the library:
pnpm build - Check code quality and types:
pnpm check
The library uses Jest for testing, ESLint for linting, and bunchee for building ES and CommonJS modules.
Testing
The library includes unit tests covering:
- Resolution of the Promise after the specified delay.
Run pnpm test to execute the test suite.
License
This project is licensed under the MIT License.
Contributing
Contributions are welcome! Please open an issue or submit a pull request on the GitHub repository.
Support
If you encounter issues or have questions, please file an issue on the GitHub Issues page.
Funding
Support the development of this project via GitHub Sponsors.
Author
Created by Ádám László Rocska.
