Socket
Socket
Sign inDemoInstall

await-timeout

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

await-timeout - npm Package Compare versions

Comparing version 0.4.0 to 0.5.0

26

dist/bundle.umd.js

@@ -1,2 +0,2 @@

// await-timeout v0.4.0 by Vitaliy Potapov
// await-timeout v0.5.0 by Vitaliy Potapov
(function (global, factory) {

@@ -37,2 +37,3 @@ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :

this._id = null;
this._delay = null;
}

@@ -44,13 +45,18 @@

set(ms, error = '') {
get delay() {
return this._delay;
}
set(delay, rejectReason = '') {
return new Promise((resolve, reject) => {
this.clear();
const fn = error ? () => reject(toError(error)) : resolve;
this._id = setTimeout(fn, ms);
const fn = rejectReason ? () => reject(toError(rejectReason)) : resolve;
this._id = setTimeout(fn, delay);
this._delay = delay;
});
}
wrap(promise, ms, error = '') {
wrap(promise, delay, rejectReason = '') {
const wrappedPromise = promiseFinally(promise, () => this.clear());
const timer = this.set(ms, error);
const timer = this.set(delay, rejectReason);
return Promise.race([wrappedPromise, timer]);

@@ -66,8 +72,8 @@ }

Timeout.set = function (ms, error) {
return new Timeout().set(ms, error);
Timeout.set = function (delay, rejectReason) {
return new Timeout().set(delay, rejectReason);
};
Timeout.wrap = function (promise, ms, error) {
return new Timeout().wrap(promise, ms, error);
Timeout.wrap = function (promise, delay, rejectReason) {
return new Timeout().wrap(promise, delay, rejectReason);
};

@@ -74,0 +80,0 @@

{
"name": "await-timeout",
"version": "0.4.0",
"version": "0.5.0",
"description": "A Promise-based API for setTimeout / clearTimeout",

@@ -5,0 +5,0 @@ "author": {

@@ -20,2 +20,4 @@ <div align="center">

* [.clear()](#clear)
* [.id](#id--numbertimeout)
* [.delay](#delay--number)
* [Motivation](#motivation)

@@ -66,4 +68,4 @@ * [Related resources](#related-resources)

### .set(ms, [message]) ⇒ `Promise`
Starts new timer like `setTimeout()` and returns promise. The promise will be resolved after `ms` milliseconds:
### .set(delay, [rejectReason]) ⇒ `Promise`
Starts new timer like `setTimeout()` and returns promise. The promise will be resolved after `delay` milliseconds:
```js

@@ -98,3 +100,3 @@ const timer = new Timeout();

### .wrap(promise, ms, [message]) ⇒ `Promise`
### .wrap(promise, delay, [rejectReason]) ⇒ `Promise`
Wraps existing promise with timeout:

@@ -144,2 +146,14 @@ * promise automatically rejected after timeout

### .id ⇒ `?Number|?Timeout`
Returns result of `setTimeout` call. That is `Number` timeout id in browser
and [Timeout](https://nodejs.org/api/timers.html#timers_class_timeout) instance in Node.js.
### .delay ⇒ `?Number`
Returns last delay value used. Delay is useful for generating reject reason:
```js
const timer = new Timeout();
timer.set(1000, () => new Error(`Timeout: ${timer.delay}`));
```
## Motivation

@@ -146,0 +160,0 @@ Before making this library I've researched [many similar packages on Npm](https://www.npmjs.com/search?q=promise%20timeout).

@@ -10,2 +10,3 @@ /**

this._id = null;
this._delay = null;
}

@@ -17,13 +18,18 @@

set(ms, error = '') {
get delay() {
return this._delay;
}
set(delay, rejectReason = '') {
return new Promise((resolve, reject) => {
this.clear();
const fn = error ? () => reject(toError(error)) : resolve;
this._id = setTimeout(fn, ms);
const fn = rejectReason ? () => reject(toError(rejectReason)) : resolve;
this._id = setTimeout(fn, delay);
this._delay = delay;
});
}
wrap(promise, ms, error = '') {
wrap(promise, delay, rejectReason = '') {
const wrappedPromise = promiseFinally(promise, () => this.clear());
const timer = this.set(ms, error);
const timer = this.set(delay, rejectReason);
return Promise.race([wrappedPromise, timer]);

@@ -39,10 +45,10 @@ }

Timeout.set = function (ms, error) {
return new Timeout().set(ms, error);
Timeout.set = function (delay, rejectReason) {
return new Timeout().set(delay, rejectReason);
};
Timeout.wrap = function (promise, ms, error) {
return new Timeout().wrap(promise, ms, error);
Timeout.wrap = function (promise, delay, rejectReason) {
return new Timeout().wrap(promise, delay, rejectReason);
};
export default Timeout;

@@ -12,2 +12,8 @@ describe('clear', function () {

});
it('should keep delay property', async function () {
this.timeout.set(10);
this.timeout.clear();
assert.equal(this.timeout.delay, 10);
});
});

@@ -47,2 +47,10 @@ describe('set', function () {

});
it('should return delay property', async function () {
assert.equal(this.timeout.delay, null);
const promise = this.timeout.set(10);
assert.equal(this.timeout.delay, 10);
await promise;
assert.equal(this.timeout.delay, 10);
});
});

@@ -49,0 +57,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc