A lightweight TypeScript/JavaScript utility that creates a Promise resolving after a specified number of milliseconds. Ideal for introducing delays in asynchronous workflows.
Aspect | Badge |
---|---|
Minified | |
Minified + gzip | |
Dependency Count | |
Tree-shaking Support |
- 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.
Install the package via npm or pnpm:
npm install @adam-rocska/timeout
or
pnpm add @adam-rocska/timeout
The timeout
function takes a number of milliseconds and returns a Promise<void>
that resolves after the specified delay.
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();
Parameter | Type | Description | Default |
---|---|---|---|
ms |
number |
Time to wait (in milliseconds) before resolving. | - |
- Resolves:
Promise<void>
- Resolves after the specified delay.
The library includes TypeScript definitions for type safety.
export declare const timeout: (ms: number) => Promise<void>;
Creates a Promise that resolves after the specified number of milliseconds.
- 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).
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.
The library includes unit tests covering:
- Resolution of the Promise after the specified delay.
Run pnpm test
to execute the test suite.
This project is licensed under the MIT License.
Contributions are welcome! Please open an issue or submit a pull request on the GitHub repository.
If you encounter issues or have questions, please file an issue on the GitHub Issues page.
Support the development of this project via GitHub Sponsors.
Created by Ádám László Rocska.