Socket
Socket
Sign inDemoInstall

promise

Package Overview
Dependencies
1
Maintainers
3
Versions
33
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 8.2.0 to 8.3.0-canary-5

78

domains/core.js

@@ -61,12 +61,12 @@ 'use strict';

}
this._1 = 0;
this._2 = 0;
this._3 = null;
this._4 = null;
this._x = 0;
this._y = 0;
this._z = null;
this._A = null;
if (fn === noop) return;
doResolve(fn, this);
}
Promise._5 = null;
Promise._6 = null;
Promise._7 = noop;
Promise._B = null;
Promise._C = null;
Promise._D = noop;

@@ -90,20 +90,20 @@ Promise.prototype.then = function(onFulfilled, onRejected) {

function handle(self, deferred) {
while (self._2 === 3) {
self = self._3;
while (self._y === 3) {
self = self._z;
}
if (Promise._5) {
Promise._5(self);
if (Promise._B) {
Promise._B(self);
}
if (self._2 === 0) {
if (self._1 === 0) {
self._1 = 1;
self._4 = deferred;
if (self._y === 0) {
if (self._x === 0) {
self._x = 1;
self._A = deferred;
return;
}
if (self._1 === 1) {
self._1 = 2;
self._4 = [self._4, deferred];
if (self._x === 1) {
self._x = 2;
self._A = [self._A, deferred];
return;
}
self._4.push(deferred);
self._A.push(deferred);
return;

@@ -116,12 +116,12 @@ }

asap(function() {
var cb = self._2 === 1 ? deferred.onFulfilled : deferred.onRejected;
var cb = self._y === 1 ? deferred.onFulfilled : deferred.onRejected;
if (cb === null) {
if (self._2 === 1) {
resolve(deferred.promise, self._3);
if (self._y === 1) {
resolve(deferred.promise, self._z);
} else {
reject(deferred.promise, self._3);
reject(deferred.promise, self._z);
}
return;
}
var ret = tryCallOne(cb, self._3);
var ret = tryCallOne(cb, self._z);
if (ret === IS_ERROR) {

@@ -154,4 +154,4 @@ reject(deferred.promise, LAST_ERROR);

) {
self._2 = 3;
self._3 = newValue;
self._y = 3;
self._z = newValue;
finale(self);

@@ -164,4 +164,4 @@ return;

}
self._2 = 1;
self._3 = newValue;
self._y = 1;
self._z = newValue;
finale(self);

@@ -171,6 +171,6 @@ }

function reject(self, newValue) {
self._2 = 2;
self._3 = newValue;
if (Promise._6) {
Promise._6(self, newValue);
self._y = 2;
self._z = newValue;
if (Promise._C) {
Promise._C(self, newValue);
}

@@ -180,11 +180,11 @@ finale(self);

function finale(self) {
if (self._1 === 1) {
handle(self, self._4);
self._4 = null;
if (self._x === 1) {
handle(self, self._A);
self._A = null;
}
if (self._1 === 2) {
for (var i = 0; i < self._4.length; i++) {
handle(self, self._4[i]);
if (self._x === 2) {
for (var i = 0; i < self._A.length; i++) {
handle(self, self._A[i]);
}
self._4 = null;
self._A = null;
}

@@ -191,0 +191,0 @@ }

@@ -19,5 +19,5 @@ 'use strict';

function valuePromise(value) {
var p = new Promise(Promise._7);
p._2 = 1;
p._3 = value;
var p = new Promise(Promise._D);
p._y = 1;
p._z = value;
return p;

@@ -71,7 +71,7 @@ }

if (val instanceof Promise && val.then === Promise.prototype.then) {
while (val._2 === 3) {
val = val._3;
while (val._y === 3) {
val = val._z;
}
if (val._2 === 1) return res(i, val._3);
if (val._2 === 2) reject(val._3);
if (val._y === 1) return res(i, val._z);
if (val._y === 2) reject(val._z);
val.then(function (val) {

@@ -145,1 +145,45 @@ res(i, val);

};
function getAggregateError(errors){
if(typeof AggregateError === 'function'){
return new AggregateError(errors,'All promises were rejected');
}
var error = new Error('All promises were rejected');
error.name = 'AggregateError';
error.errors = errors;
return error;
}
Promise.any = function promiseAny(values) {
return new Promise(function(resolve, reject) {
var promises = iterableToArray(values);
var hasResolved = false;
var rejectionReasons = [];
function resolveOnce(value) {
if (!hasResolved) {
hasResolved = true;
resolve(value);
}
}
function rejectionCheck(reason) {
rejectionReasons.push(reason);
if (rejectionReasons.length === promises.length) {
reject(getAggregateError(rejectionReasons));
}
}
if(promises.length === 0){
reject(getAggregateError(rejectionReasons));
} else {
promises.forEach(function(value){
Promise.resolve(value).then(resolveOnce, rejectionCheck);
});
}
});
};

@@ -15,4 +15,4 @@ 'use strict';

enabled = false;
Promise._5 = null;
Promise._6 = null;
Promise._B = null;
Promise._C = null;
}

@@ -28,23 +28,23 @@

var rejections = {};
Promise._5 = function (promise) {
Promise._B = function (promise) {
if (
promise._2 === 2 && // IS REJECTED
rejections[promise._8]
promise._y === 2 && // IS REJECTED
rejections[promise._E]
) {
if (rejections[promise._8].logged) {
onHandled(promise._8);
if (rejections[promise._E].logged) {
onHandled(promise._E);
} else {
clearTimeout(rejections[promise._8].timeout);
clearTimeout(rejections[promise._E].timeout);
}
delete rejections[promise._8];
delete rejections[promise._E];
}
};
Promise._6 = function (promise, err) {
if (promise._1 === 0) { // not yet handled
promise._8 = id++;
rejections[promise._8] = {
Promise._C = function (promise, err) {
if (promise._x === 0) { // not yet handled
promise._E = id++;
rejections[promise._E] = {
displayId: null,
error: err,
timeout: setTimeout(
onUnhandled.bind(null, promise._8),
onUnhandled.bind(null, promise._E),
// For reference errors and type errors, this almost always

@@ -51,0 +51,0 @@ // means the programmer made a mistake, so log them after just

@@ -20,4 +20,4 @@ 'use strict';

Promise.prototype.getValue = function () {
if (this._2 === 3) {
return this._3.getValue();
if (this._y === 3) {
return this._z.getValue();
}

@@ -29,8 +29,8 @@

return this._3;
return this._z;
};
Promise.prototype.getReason = function () {
if (this._2 === 3) {
return this._3.getReason();
if (this._y === 3) {
return this._z.getReason();
}

@@ -42,14 +42,14 @@

return this._3;
return this._z;
};
Promise.prototype.getState = function () {
if (this._2 === 3) {
return this._3.getState();
if (this._y === 3) {
return this._z.getState();
}
if (this._2 === -1 || this._2 === -2) {
if (this._y === -1 || this._y === -2) {
return 0;
}
return this._2;
return this._y;
};

@@ -56,0 +56,0 @@ };

@@ -63,3 +63,18 @@ /**

/**
* The any function returns a promise that is fulfilled by the first given promise to be fulfilled, or rejected with an AggregateError containing an array of rejection reasons if all of the given promises are rejected. It resolves all elements of the passed iterable to promises as it runs this algorithm.
* @param values An array or iterable of Promises.
* @returns A new Promise.
*/
any<T extends readonly unknown[] | []>(values: T): Promise<Awaited<T[number]>>;
/**
* The any function returns a promise that is fulfilled by the first given promise to be fulfilled, or rejected with an AggregateError containing an array of rejection reasons if all of the given promises are rejected. It resolves all elements of the passed iterable to promises as it runs this algorithm.
* @param values An array or iterable of Promises.
* @returns A new Promise.
*/
any<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>>
/**
* Creates a Promise that is resolved with an array of results when all

@@ -66,0 +81,0 @@ * of the provided Promises resolve or reject.

@@ -61,12 +61,12 @@ 'use strict';

}
this._1 = 0;
this._2 = 0;
this._3 = null;
this._4 = null;
this._x = 0;
this._y = 0;
this._z = null;
this._A = null;
if (fn === noop) return;
doResolve(fn, this);
}
Promise._5 = null;
Promise._6 = null;
Promise._7 = noop;
Promise._B = null;
Promise._C = null;
Promise._D = noop;

@@ -90,20 +90,20 @@ Promise.prototype.then = function(onFulfilled, onRejected) {

function handle(self, deferred) {
while (self._2 === 3) {
self = self._3;
while (self._y === 3) {
self = self._z;
}
if (Promise._5) {
Promise._5(self);
if (Promise._B) {
Promise._B(self);
}
if (self._2 === 0) {
if (self._1 === 0) {
self._1 = 1;
self._4 = deferred;
if (self._y === 0) {
if (self._x === 0) {
self._x = 1;
self._A = deferred;
return;
}
if (self._1 === 1) {
self._1 = 2;
self._4 = [self._4, deferred];
if (self._x === 1) {
self._x = 2;
self._A = [self._A, deferred];
return;
}
self._4.push(deferred);
self._A.push(deferred);
return;

@@ -116,12 +116,12 @@ }

asap(function() {
var cb = self._2 === 1 ? deferred.onFulfilled : deferred.onRejected;
var cb = self._y === 1 ? deferred.onFulfilled : deferred.onRejected;
if (cb === null) {
if (self._2 === 1) {
resolve(deferred.promise, self._3);
if (self._y === 1) {
resolve(deferred.promise, self._z);
} else {
reject(deferred.promise, self._3);
reject(deferred.promise, self._z);
}
return;
}
var ret = tryCallOne(cb, self._3);
var ret = tryCallOne(cb, self._z);
if (ret === IS_ERROR) {

@@ -154,4 +154,4 @@ reject(deferred.promise, LAST_ERROR);

) {
self._2 = 3;
self._3 = newValue;
self._y = 3;
self._z = newValue;
finale(self);

@@ -164,4 +164,4 @@ return;

}
self._2 = 1;
self._3 = newValue;
self._y = 1;
self._z = newValue;
finale(self);

@@ -171,6 +171,6 @@ }

function reject(self, newValue) {
self._2 = 2;
self._3 = newValue;
if (Promise._6) {
Promise._6(self, newValue);
self._y = 2;
self._z = newValue;
if (Promise._C) {
Promise._C(self, newValue);
}

@@ -180,11 +180,11 @@ finale(self);

function finale(self) {
if (self._1 === 1) {
handle(self, self._4);
self._4 = null;
if (self._x === 1) {
handle(self, self._A);
self._A = null;
}
if (self._1 === 2) {
for (var i = 0; i < self._4.length; i++) {
handle(self, self._4[i]);
if (self._x === 2) {
for (var i = 0; i < self._A.length; i++) {
handle(self, self._A[i]);
}
self._4 = null;
self._A = null;
}

@@ -191,0 +191,0 @@ }

@@ -19,5 +19,5 @@ 'use strict';

function valuePromise(value) {
var p = new Promise(Promise._7);
p._2 = 1;
p._3 = value;
var p = new Promise(Promise._D);
p._y = 1;
p._z = value;
return p;

@@ -71,7 +71,7 @@ }

if (val instanceof Promise && val.then === Promise.prototype.then) {
while (val._2 === 3) {
val = val._3;
while (val._y === 3) {
val = val._z;
}
if (val._2 === 1) return res(i, val._3);
if (val._2 === 2) reject(val._3);
if (val._y === 1) return res(i, val._z);
if (val._y === 2) reject(val._z);
val.then(function (val) {

@@ -145,1 +145,45 @@ res(i, val);

};
function getAggregateError(errors){
if(typeof AggregateError === 'function'){
return new AggregateError(errors,'All promises were rejected');
}
var error = new Error('All promises were rejected');
error.name = 'AggregateError';
error.errors = errors;
return error;
}
Promise.any = function promiseAny(values) {
return new Promise(function(resolve, reject) {
var promises = iterableToArray(values);
var hasResolved = false;
var rejectionReasons = [];
function resolveOnce(value) {
if (!hasResolved) {
hasResolved = true;
resolve(value);
}
}
function rejectionCheck(reason) {
rejectionReasons.push(reason);
if (rejectionReasons.length === promises.length) {
reject(getAggregateError(rejectionReasons));
}
}
if(promises.length === 0){
reject(getAggregateError(rejectionReasons));
} else {
promises.forEach(function(value){
Promise.resolve(value).then(resolveOnce, rejectionCheck);
});
}
});
};

@@ -15,4 +15,4 @@ 'use strict';

enabled = false;
Promise._5 = null;
Promise._6 = null;
Promise._B = null;
Promise._C = null;
}

@@ -28,23 +28,23 @@

var rejections = {};
Promise._5 = function (promise) {
Promise._B = function (promise) {
if (
promise._2 === 2 && // IS REJECTED
rejections[promise._8]
promise._y === 2 && // IS REJECTED
rejections[promise._E]
) {
if (rejections[promise._8].logged) {
onHandled(promise._8);
if (rejections[promise._E].logged) {
onHandled(promise._E);
} else {
clearTimeout(rejections[promise._8].timeout);
clearTimeout(rejections[promise._E].timeout);
}
delete rejections[promise._8];
delete rejections[promise._E];
}
};
Promise._6 = function (promise, err) {
if (promise._1 === 0) { // not yet handled
promise._8 = id++;
rejections[promise._8] = {
Promise._C = function (promise, err) {
if (promise._x === 0) { // not yet handled
promise._E = id++;
rejections[promise._E] = {
displayId: null,
error: err,
timeout: setTimeout(
onUnhandled.bind(null, promise._8),
onUnhandled.bind(null, promise._E),
// For reference errors and type errors, this almost always

@@ -51,0 +51,0 @@ // means the programmer made a mistake, so log them after just

@@ -20,4 +20,4 @@ 'use strict';

Promise.prototype.getValue = function () {
if (this._2 === 3) {
return this._3.getValue();
if (this._y === 3) {
return this._z.getValue();
}

@@ -29,8 +29,8 @@

return this._3;
return this._z;
};
Promise.prototype.getReason = function () {
if (this._2 === 3) {
return this._3.getReason();
if (this._y === 3) {
return this._z.getReason();
}

@@ -42,14 +42,14 @@

return this._3;
return this._z;
};
Promise.prototype.getState = function () {
if (this._2 === 3) {
return this._3.getState();
if (this._y === 3) {
return this._z.getState();
}
if (this._2 === -1 || this._2 === -2) {
if (this._y === -1 || this._y === -2) {
return 0;
}
return this._2;
return this._y;
};

@@ -56,0 +56,0 @@ };

{
"name": "promise",
"version": "8.2.0",
"version": "8.3.0-canary-5",
"description": "Bare bones Promises/A+ implementation",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -144,2 +144,16 @@ <a href="https://promisesaplus.com/"><img src="https://promisesaplus.com/assets/logo-small.png" align="right" /></a>

#### Promise.any(array)
Returns a single promise that fulfills as soon as any of the promises in the iterable fulfills, with the value of the fulfilled promise. If no promises in the iterable fulfill (if all of the given promises are rejected), then the returned promise is rejected with an `AggregateError`
```js
var rejected = Promise.reject(0);
var first = new Promise(function (resolve){ setTimeout(resolve, 100, 'quick') });
var second = new Promise(function (resolve){ setTimeout(resolve, 500, 'slow') });
var promises = [rejected, first, second];
Promise.any(promises) // => succeeds with `quick`
```
#### Promise.allSettled(array)

@@ -146,0 +160,0 @@

@@ -61,12 +61,12 @@ 'use strict';

}
this._1 = 0;
this._2 = 0;
this._3 = null;
this._4 = null;
this._x = 0;
this._y = 0;
this._z = null;
this._A = null;
if (fn === noop) return;
doResolve(fn, this);
}
Promise._5 = null;
Promise._6 = null;
Promise._7 = noop;
Promise._B = null;
Promise._C = null;
Promise._D = noop;

@@ -90,20 +90,20 @@ Promise.prototype.then = function(onFulfilled, onRejected) {

function handle(self, deferred) {
while (self._2 === 3) {
self = self._3;
while (self._y === 3) {
self = self._z;
}
if (Promise._5) {
Promise._5(self);
if (Promise._B) {
Promise._B(self);
}
if (self._2 === 0) {
if (self._1 === 0) {
self._1 = 1;
self._4 = deferred;
if (self._y === 0) {
if (self._x === 0) {
self._x = 1;
self._A = deferred;
return;
}
if (self._1 === 1) {
self._1 = 2;
self._4 = [self._4, deferred];
if (self._x === 1) {
self._x = 2;
self._A = [self._A, deferred];
return;
}
self._4.push(deferred);
self._A.push(deferred);
return;

@@ -116,12 +116,12 @@ }

setImmediate(function() {
var cb = self._2 === 1 ? deferred.onFulfilled : deferred.onRejected;
var cb = self._y === 1 ? deferred.onFulfilled : deferred.onRejected;
if (cb === null) {
if (self._2 === 1) {
resolve(deferred.promise, self._3);
if (self._y === 1) {
resolve(deferred.promise, self._z);
} else {
reject(deferred.promise, self._3);
reject(deferred.promise, self._z);
}
return;
}
var ret = tryCallOne(cb, self._3);
var ret = tryCallOne(cb, self._z);
if (ret === IS_ERROR) {

@@ -154,4 +154,4 @@ reject(deferred.promise, LAST_ERROR);

) {
self._2 = 3;
self._3 = newValue;
self._y = 3;
self._z = newValue;
finale(self);

@@ -164,4 +164,4 @@ return;

}
self._2 = 1;
self._3 = newValue;
self._y = 1;
self._z = newValue;
finale(self);

@@ -171,6 +171,6 @@ }

function reject(self, newValue) {
self._2 = 2;
self._3 = newValue;
if (Promise._6) {
Promise._6(self, newValue);
self._y = 2;
self._z = newValue;
if (Promise._C) {
Promise._C(self, newValue);
}

@@ -180,11 +180,11 @@ finale(self);

function finale(self) {
if (self._1 === 1) {
handle(self, self._4);
self._4 = null;
if (self._x === 1) {
handle(self, self._A);
self._A = null;
}
if (self._1 === 2) {
for (var i = 0; i < self._4.length; i++) {
handle(self, self._4[i]);
if (self._x === 2) {
for (var i = 0; i < self._A.length; i++) {
handle(self, self._A[i]);
}
self._4 = null;
self._A = null;
}

@@ -191,0 +191,0 @@ }

@@ -19,5 +19,5 @@ 'use strict';

function valuePromise(value) {
var p = new Promise(Promise._7);
p._2 = 1;
p._3 = value;
var p = new Promise(Promise._D);
p._y = 1;
p._z = value;
return p;

@@ -71,7 +71,7 @@ }

if (val instanceof Promise && val.then === Promise.prototype.then) {
while (val._2 === 3) {
val = val._3;
while (val._y === 3) {
val = val._z;
}
if (val._2 === 1) return res(i, val._3);
if (val._2 === 2) reject(val._3);
if (val._y === 1) return res(i, val._z);
if (val._y === 2) reject(val._z);
val.then(function (val) {

@@ -145,1 +145,45 @@ res(i, val);

};
function getAggregateError(errors){
if(typeof AggregateError === 'function'){
return new AggregateError(errors,'All promises were rejected');
}
var error = new Error('All promises were rejected');
error.name = 'AggregateError';
error.errors = errors;
return error;
}
Promise.any = function promiseAny(values) {
return new Promise(function(resolve, reject) {
var promises = iterableToArray(values);
var hasResolved = false;
var rejectionReasons = [];
function resolveOnce(value) {
if (!hasResolved) {
hasResolved = true;
resolve(value);
}
}
function rejectionCheck(reason) {
rejectionReasons.push(reason);
if (rejectionReasons.length === promises.length) {
reject(getAggregateError(rejectionReasons));
}
}
if(promises.length === 0){
reject(getAggregateError(rejectionReasons));
} else {
promises.forEach(function(value){
Promise.resolve(value).then(resolveOnce, rejectionCheck);
});
}
});
};

@@ -15,4 +15,4 @@ 'use strict';

enabled = false;
Promise._5 = null;
Promise._6 = null;
Promise._B = null;
Promise._C = null;
}

@@ -28,23 +28,23 @@

var rejections = {};
Promise._5 = function (promise) {
Promise._B = function (promise) {
if (
promise._2 === 2 && // IS REJECTED
rejections[promise._8]
promise._y === 2 && // IS REJECTED
rejections[promise._E]
) {
if (rejections[promise._8].logged) {
onHandled(promise._8);
if (rejections[promise._E].logged) {
onHandled(promise._E);
} else {
clearTimeout(rejections[promise._8].timeout);
clearTimeout(rejections[promise._E].timeout);
}
delete rejections[promise._8];
delete rejections[promise._E];
}
};
Promise._6 = function (promise, err) {
if (promise._1 === 0) { // not yet handled
promise._8 = id++;
rejections[promise._8] = {
Promise._C = function (promise, err) {
if (promise._x === 0) { // not yet handled
promise._E = id++;
rejections[promise._E] = {
displayId: null,
error: err,
timeout: setTimeout(
onUnhandled.bind(null, promise._8),
onUnhandled.bind(null, promise._E),
// For reference errors and type errors, this almost always

@@ -51,0 +51,0 @@ // means the programmer made a mistake, so log them after just

@@ -20,4 +20,4 @@ 'use strict';

Promise.prototype.getValue = function () {
if (this._2 === 3) {
return this._3.getValue();
if (this._y === 3) {
return this._z.getValue();
}

@@ -29,8 +29,8 @@

return this._3;
return this._z;
};
Promise.prototype.getReason = function () {
if (this._2 === 3) {
return this._3.getReason();
if (this._y === 3) {
return this._z.getReason();
}

@@ -42,14 +42,14 @@

return this._3;
return this._z;
};
Promise.prototype.getState = function () {
if (this._2 === 3) {
return this._3.getState();
if (this._y === 3) {
return this._z.getState();
}
if (this._2 === -1 || this._2 === -2) {
if (this._y === -1 || this._y === -2) {
return 0;
}
return this._2;
return this._y;
};

@@ -56,0 +56,0 @@ };

@@ -143,1 +143,45 @@ 'use strict';

};
function getAggregateError(errors){
if(typeof AggregateError === 'function'){
return new AggregateError(errors,'All promises were rejected');
}
var error = new Error('All promises were rejected');
error.name = 'AggregateError';
error.errors = errors;
return error;
}
Promise.any = function promiseAny(values) {
return new Promise(function(resolve, reject) {
var promises = iterableToArray(values);
var hasResolved = false;
var rejectionReasons = [];
function resolveOnce(value) {
if (!hasResolved) {
hasResolved = true;
resolve(value);
}
}
function rejectionCheck(reason) {
rejectionReasons.push(reason);
if (rejectionReasons.length === promises.length) {
reject(getAggregateError(rejectionReasons));
}
}
if(promises.length === 0){
reject(getAggregateError(rejectionReasons));
} else {
promises.forEach(function(value){
Promise.resolve(value).then(resolveOnce, rejectionCheck);
});
}
});
};
SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc