# sleep-please

> Pause execution (sleep)

Latest version **1.0.8** (published 2025-04-10) · BSD 0-clause license · 0 weekly downloads

## Install

```sh
npm install sleep-please
pnpm add sleep-please
yarn add sleep-please
bun add sleep-please
```

## Health

**Score 40/100 (D)** — status: maintenance-mode.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

Negative: stale; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.8 |
| Published | 2025-04-10 |
| First published | 2022-10-02 |
| Weekly downloads | 0 |
| License | BSD 0-clause |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=14.0.0 |
| Dependencies | 0 |
| Unpacked size | 16 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Sasu Welling |
| Maintainers | sasuw |
| Keywords | sleep, wait, pause |

## Links

- npm: https://www.npmjs.com/package/sleep-please
- Repository: https://github.com/sasuw/sleep-please
- Homepage: https://github.com/sasuw/sleep-please#readme
- Issues: https://github.com/sasuw/sleep-please/issues
- npm.io page: https://npm.io/package/sleep-please

## Alternatives

- [@commercetools/sync-actions](https://npm.io/package/@commercetools/sync-actions.md) — 25.1K weekly downloads
- [cwait](https://npm.io/package/cwait.md) — 21.4K weekly downloads
- [@ledgerhq/hw-app-cosmos](https://npm.io/package/@ledgerhq/hw-app-cosmos.md) — 4.2K weekly downloads
- [@financial-times/o-loading](https://npm.io/package/@financial-times/o-loading.md) — 2.8K weekly downloads
- [fa](https://npm.io/package/fa.md) — 185 weekly downloads

## Recent versions

- 1.0.8 (latest) — 2025-04-10
- 1.0.7 — 2025-04-10
- 1.0.5 — 2022-10-02
- 1.0.4 — 2022-10-02
- 1.0.3 — 2022-10-02
- 1.0.2 — 2022-10-02
- 1.0.1 — 2022-10-02
- 1.0.0 — 2022-10-02

## README

# sleep-please

Pauses execution for a specified duration. 

You may ask: why? It's so trivial to implement yourself. Well, it's shorter to type `await Sleep.sleep(1000)` than 
`await new Promise(resolve => setTimeout(resolve, 1000));`. In the heat of the moment of debugging I don't want to
lose my flow by wasting seconds doing something trivial. Besides that, this project was an opportunity to 
to implement a NodeJS project working with both CommonJS and ESM support.

## What's with the name?

I like anagrams and it's almost a [phonetic](https://en.wikipedia.org/wiki/International_Phonetic_Alphabet) [anagram](https://en.wikipedia.org/wiki/Anagram).

sleep: `/sliːp/`  
please: `/pliːz/`

## Contents

[Features](#features)  
[Installing](#installing)  
[Usage examples](#usage-examples)  
[API Documentation](#api-documentation)  
[Compatibility](#compatibility)  
[Performance](#performance)  
[License](#license)  
[Contributing](#contributing)  


## Features

* CommonJS and ESM support
* Zero dependencies
* TypeScript types included
* Abort signal support

## Installing

```
npm install sleep-please
```

## Usage examples

### Including `sleep-please`

#### CommonJS

```typescript
const Sleep = require('sleep-please').default;
```

#### ESM

```typescript
import Sleep from 'sleep-please';
```

### Basic sleep

```typescript
import Sleep from 'sleep-please';

// Basic usage
await Sleep.sleep(2000); // Pause for 2 seconds

// Create a reusable sleep function
const shortSleep = Sleep.createSleeper(500);
await shortSleep(); // Pause for 500ms
```

### Abort signal

```typescript
import Sleep from 'sleep-please';

// Abortable sleep
const controller = new AbortController();

try {
await Sleep.sleep(5000, controller.signal);
} catch (error) {
// Sleep was aborted
console.log(error.message);
}

// Abort the sleep after 1 second
setTimeout(() => controller.abort(), 1000);
```

### Parallel sleeping

```typescript
import Sleep from 'sleep-please';

// Multiple parallel sleeps
await Promise.all([
  Sleep.sleep(1000),
  Sleep.sleep(1500),
  Sleep.sleep(2000)
]);
```

## API Documentation

https://sasuw.github.io/sleep-please/classes/Sleep.html

## Compatibility
- Node.js 14+
- CommonJS and ES Modules
- TypeScript support

## Performance
- Lightweight implementation
- Minimal overhead
- Uses native `setTimeout`

## License

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

## Contributing

See Github project at https://github.com/sasuw/sleep-please/

---
_Source: https://npm.io/package/sleep-please · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
