Socket
Socket
Sign inDemoInstall

promise

Package Overview
Dependencies
Maintainers
2
Versions
33
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

promise - npm Package Compare versions

Comparing version 7.0.4 to 7.1.0

domains/rejection-tracking.js

73

domains/core.js

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

}
this._37 = 0;
this._12 = null;
this._59 = [];
this._56 = 0;
this._25 = 0;
this._14 = null;
this._95 = null;
if (fn === noop) return;
doResolve(fn, this);
}
Promise._99 = noop;
Promise._87 = null;
Promise._79 = null;
Promise._22 = noop;

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

function handle(self, deferred) {
while (self._37 === 3) {
self = self._12;
while (self._25 === 3) {
self = self._14;
}
if (self._37 === 0) {
self._59.push(deferred);
if (Promise._87) {
Promise._87(self);
}
if (self._25 === 0) {
if (self._56 === 0) {
self._56 = 1;
self._95 = deferred;
return;
}
if (self._56 === 1) {
self._56 = 2;
self._95 = [self._95, deferred];
return;
}
self._95.push(deferred);
return;
}
handleResolved(self, deferred);
}
function handleResolved(self, deferred) {
asap(function() {
var cb = self._37 === 1 ? deferred.onFulfilled : deferred.onRejected;
var cb = self._25 === 1 ? deferred.onFulfilled : deferred.onRejected;
if (cb === null) {
if (self._37 === 1) {
resolve(deferred.promise, self._12);
if (self._25 === 1) {
resolve(deferred.promise, self._14);
} else {
reject(deferred.promise, self._12);
reject(deferred.promise, self._14);
}
return;
}
var ret = tryCallOne(cb, self._12);
var ret = tryCallOne(cb, self._14);
if (ret === IS_ERROR) {

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

) {
self._37 = 3;
self._12 = newValue;
self._25 = 3;
self._14 = newValue;
finale(self);

@@ -143,4 +163,4 @@ return;

}
self._37 = 1;
self._12 = newValue;
self._25 = 1;
self._14 = newValue;
finale(self);

@@ -150,11 +170,20 @@ }

function reject(self, newValue) {
self._37 = 2;
self._12 = newValue;
self._25 = 2;
self._14 = newValue;
if (Promise._79) {
Promise._79(self, newValue);
}
finale(self);
}
function finale(self) {
for (var i = 0; i < self._59.length; i++) {
handle(self, self._59[i]);
if (self._56 === 1) {
handle(self, self._95);
self._95 = null;
}
self._59 = null;
if (self._56 === 2) {
for (var i = 0; i < self._95.length; i++) {
handle(self, self._95[i]);
}
self._95 = null;
}
}

@@ -161,0 +190,0 @@

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

function valuePromise(value) {
var p = new Promise(Promise._99);
p._37 = 1;
p._12 = value;
var p = new Promise(Promise._22);
p._25 = 1;
p._14 = value;
return p;

@@ -59,7 +59,7 @@ }

if (val instanceof Promise && val.then === Promise.prototype.then) {
while (val._37 === 3) {
val = val._12;
while (val._25 === 3) {
val = val._14;
}
if (val._37 === 1) return res(i, val._12);
if (val._37 === 2) reject(val._12);
if (val._25 === 1) return res(i, val._14);
if (val._25 === 2) reject(val._14);
val.then(function (val) {

@@ -66,0 +66,0 @@ res(i, val);

@@ -8,1 +8,2 @@ 'use strict';

require('./node-extensions.js');
require('./synchronous.js');

@@ -14,25 +14,84 @@ 'use strict';

Promise.denodeify = function (fn, argumentCount) {
argumentCount = argumentCount || Infinity;
return function () {
var self = this;
var args = Array.prototype.slice.call(arguments, 0,
argumentCount > 0 ? argumentCount : 0);
return new Promise(function (resolve, reject) {
args.push(function (err, res) {
if (err) reject(err);
else resolve(res);
})
var res = fn.apply(self, args);
if (res &&
(
typeof res === 'object' ||
typeof res === 'function'
) &&
typeof res.then === 'function'
) {
resolve(res);
}
})
if (
typeof argumentCount === 'number' && argumentCount !== Infinity
) {
return denodeifyWithCount(fn, argumentCount);
} else {
return denodeifyWithoutCount(fn);
}
}
var callbackFn = (
'function (err, res) {' +
'if (err) { rj(err); } else { rs(res); }' +
'}'
);
function denodeifyWithCount(fn, argumentCount) {
var args = [];
for (var i = 0; i < argumentCount; i++) {
args.push('a' + i);
}
var body = [
'return function (' + args.join(',') + ') {',
'var self = this;',
'return new Promise(function (rs, rj) {',
'var res = fn.call(',
['self'].concat(args).concat([callbackFn]).join(','),
');',
'if (res &&',
'(typeof res === "object" || typeof res === "function") &&',
'typeof res.then === "function"',
') {rs(res);}',
'});',
'};'
].join('');
return Function(['Promise', 'fn'], body)(Promise, fn);
}
function denodeifyWithoutCount(fn) {
var fnLength = Math.max(fn.length - 1, 3);
var args = [];
for (var i = 0; i < fnLength; i++) {
args.push('a' + i);
}
var body = [
'return function (' + args.join(',') + ') {',
'var self = this;',
'var args;',
'var argLength = arguments.length;',
'if (arguments.length > ' + fnLength + ') {',
'args = new Array(arguments.length + 1);',
'for (var i = 0; i < arguments.length; i++) {',
'args[i] = arguments[i];',
'}',
'}',
'return new Promise(function (rs, rj) {',
'var cb = ' + callbackFn + ';',
'var res;',
'switch (argLength) {',
args.concat(['extra']).map(function (_, index) {
return (
'case ' + (index) + ':' +
'res = fn.call(' + ['self'].concat(args.slice(0, index)).concat('cb').join(',') + ');' +
'break;'
);
}).join(''),
'default:',
'args[argLength] = cb;',
'res = fn.apply(self, args);',
'}',
'if (res &&',
'(typeof res === "object" || typeof res === "function") &&',
'typeof res.then === "function"',
') {rs(res);}',
'});',
'};'
].join('');
return Function(
['Promise', 'fn'],
body
)(Promise, fn);
}
Promise.nodeify = function (fn) {

@@ -39,0 +98,0 @@ return function () {

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

}
this._37 = 0;
this._12 = null;
this._59 = [];
this._56 = 0;
this._25 = 0;
this._14 = null;
this._95 = null;
if (fn === noop) return;
doResolve(fn, this);
}
Promise._99 = noop;
Promise._87 = null;
Promise._79 = null;
Promise._22 = noop;

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

function handle(self, deferred) {
while (self._37 === 3) {
self = self._12;
while (self._25 === 3) {
self = self._14;
}
if (self._37 === 0) {
self._59.push(deferred);
if (Promise._87) {
Promise._87(self);
}
if (self._25 === 0) {
if (self._56 === 0) {
self._56 = 1;
self._95 = deferred;
return;
}
if (self._56 === 1) {
self._56 = 2;
self._95 = [self._95, deferred];
return;
}
self._95.push(deferred);
return;
}
handleResolved(self, deferred);
}
function handleResolved(self, deferred) {
asap(function() {
var cb = self._37 === 1 ? deferred.onFulfilled : deferred.onRejected;
var cb = self._25 === 1 ? deferred.onFulfilled : deferred.onRejected;
if (cb === null) {
if (self._37 === 1) {
resolve(deferred.promise, self._12);
if (self._25 === 1) {
resolve(deferred.promise, self._14);
} else {
reject(deferred.promise, self._12);
reject(deferred.promise, self._14);
}
return;
}
var ret = tryCallOne(cb, self._12);
var ret = tryCallOne(cb, self._14);
if (ret === IS_ERROR) {

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

) {
self._37 = 3;
self._12 = newValue;
self._25 = 3;
self._14 = newValue;
finale(self);

@@ -143,4 +163,4 @@ return;

}
self._37 = 1;
self._12 = newValue;
self._25 = 1;
self._14 = newValue;
finale(self);

@@ -150,11 +170,20 @@ }

function reject(self, newValue) {
self._37 = 2;
self._12 = newValue;
self._25 = 2;
self._14 = newValue;
if (Promise._79) {
Promise._79(self, newValue);
}
finale(self);
}
function finale(self) {
for (var i = 0; i < self._59.length; i++) {
handle(self, self._59[i]);
if (self._56 === 1) {
handle(self, self._95);
self._95 = null;
}
self._59 = null;
if (self._56 === 2) {
for (var i = 0; i < self._95.length; i++) {
handle(self, self._95[i]);
}
self._95 = null;
}
}

@@ -161,0 +190,0 @@

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

function valuePromise(value) {
var p = new Promise(Promise._99);
p._37 = 1;
p._12 = value;
var p = new Promise(Promise._22);
p._25 = 1;
p._14 = value;
return p;

@@ -59,7 +59,7 @@ }

if (val instanceof Promise && val.then === Promise.prototype.then) {
while (val._37 === 3) {
val = val._12;
while (val._25 === 3) {
val = val._14;
}
if (val._37 === 1) return res(i, val._12);
if (val._37 === 2) reject(val._12);
if (val._25 === 1) return res(i, val._14);
if (val._25 === 2) reject(val._14);
val.then(function (val) {

@@ -66,0 +66,0 @@ res(i, val);

@@ -8,1 +8,2 @@ 'use strict';

require('./node-extensions.js');
require('./synchronous.js');

@@ -14,25 +14,84 @@ 'use strict';

Promise.denodeify = function (fn, argumentCount) {
argumentCount = argumentCount || Infinity;
return function () {
var self = this;
var args = Array.prototype.slice.call(arguments, 0,
argumentCount > 0 ? argumentCount : 0);
return new Promise(function (resolve, reject) {
args.push(function (err, res) {
if (err) reject(err);
else resolve(res);
})
var res = fn.apply(self, args);
if (res &&
(
typeof res === 'object' ||
typeof res === 'function'
) &&
typeof res.then === 'function'
) {
resolve(res);
}
})
if (
typeof argumentCount === 'number' && argumentCount !== Infinity
) {
return denodeifyWithCount(fn, argumentCount);
} else {
return denodeifyWithoutCount(fn);
}
}
var callbackFn = (
'function (err, res) {' +
'if (err) { rj(err); } else { rs(res); }' +
'}'
);
function denodeifyWithCount(fn, argumentCount) {
var args = [];
for (var i = 0; i < argumentCount; i++) {
args.push('a' + i);
}
var body = [
'return function (' + args.join(',') + ') {',
'var self = this;',
'return new Promise(function (rs, rj) {',
'var res = fn.call(',
['self'].concat(args).concat([callbackFn]).join(','),
');',
'if (res &&',
'(typeof res === "object" || typeof res === "function") &&',
'typeof res.then === "function"',
') {rs(res);}',
'});',
'};'
].join('');
return Function(['Promise', 'fn'], body)(Promise, fn);
}
function denodeifyWithoutCount(fn) {
var fnLength = Math.max(fn.length - 1, 3);
var args = [];
for (var i = 0; i < fnLength; i++) {
args.push('a' + i);
}
var body = [
'return function (' + args.join(',') + ') {',
'var self = this;',
'var args;',
'var argLength = arguments.length;',
'if (arguments.length > ' + fnLength + ') {',
'args = new Array(arguments.length + 1);',
'for (var i = 0; i < arguments.length; i++) {',
'args[i] = arguments[i];',
'}',
'}',
'return new Promise(function (rs, rj) {',
'var cb = ' + callbackFn + ';',
'var res;',
'switch (argLength) {',
args.concat(['extra']).map(function (_, index) {
return (
'case ' + (index) + ':' +
'res = fn.call(' + ['self'].concat(args.slice(0, index)).concat('cb').join(',') + ');' +
'break;'
);
}).join(''),
'default:',
'args[argLength] = cb;',
'res = fn.apply(self, args);',
'}',
'if (res &&',
'(typeof res === "object" || typeof res === "function") &&',
'typeof res.then === "function"',
') {rs(res);}',
'});',
'};'
].join('');
return Function(
['Promise', 'fn'],
body
)(Promise, fn);
}
Promise.nodeify = function (fn) {

@@ -39,0 +98,0 @@ return function () {

{
"name": "promise",
"version": "7.0.4",
"version": "7.1.0",
"description": "Bare bones Promises/A+ implementation",

@@ -35,2 +35,2 @@ "main": "index.js",

}
}
}

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

## Unhandled Rejections
By default, promises silence any unhandled rejections.
You can enable logging of unhandled ReferenceErrors and TypeErrors via:
```js
require('promise/lib/rejection-tracking').enable();
```
Due to the performance cost, you should only do this during development.
You can enable logging of all unhandled rejections if you need to debug an exception you think is being swallowed by promises:
```js
require('promise/lib/rejection-tracking').enable(
{allRejections: true}
);
```
Due to the high probability of false positives, I only recommend using this when debugging specific issues that you think may be being swallowed. For the preferred debugging method, see `Promise#done(onFulfilled, onRejected)`.
`rejection-tracking.enable(options)` takes the following options:
- allRejections (`boolean`) - track all exceptions, not just reference errors and type errors. Note that this has a high probability of resulting in false positives if your code loads data optimisticly
- whitelist (`Array<ErrorConstructor>`) - this defaults to `[ReferenceError, TypeError]` but you can override it with your own list of error constructors to track.
- `onUnhandled(id, error)` and `onHandled(id, error)` - you can use these to provide your own customised display for errors. Note that if possible you should indicate that the error was a false positive if `onHandled` is called. `onHandled` is only called if `onUnhandled` has already been called.
To reduce the chance of false-positives there is a delay of up to 2 seconds before errors are logged. This means that if you attach an error handler within 2 seconds, it won't be logged as a false positive. ReferenceErrors and TypeErrors are only subject to a 100ms delay due to the higher likelihood that the error is due to programmer error.
## API

@@ -81,0 +111,0 @@

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

}
this._37 = 0;
this._12 = null;
this._59 = [];
this._56 = 0;
this._25 = 0;
this._14 = null;
this._95 = null;
if (fn === noop) return;
doResolve(fn, this);
}
Promise._99 = noop;
Promise._87 = null;
Promise._79 = null;
Promise._22 = noop;

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

function handle(self, deferred) {
while (self._37 === 3) {
self = self._12;
while (self._25 === 3) {
self = self._14;
}
if (self._37 === 0) {
self._59.push(deferred);
if (Promise._87) {
Promise._87(self);
}
if (self._25 === 0) {
if (self._56 === 0) {
self._56 = 1;
self._95 = deferred;
return;
}
if (self._56 === 1) {
self._56 = 2;
self._95 = [self._95, deferred];
return;
}
self._95.push(deferred);
return;
}
handleResolved(self, deferred);
}
function handleResolved(self, deferred) {
setImmediate(function() {
var cb = self._37 === 1 ? deferred.onFulfilled : deferred.onRejected;
var cb = self._25 === 1 ? deferred.onFulfilled : deferred.onRejected;
if (cb === null) {
if (self._37 === 1) {
resolve(deferred.promise, self._12);
if (self._25 === 1) {
resolve(deferred.promise, self._14);
} else {
reject(deferred.promise, self._12);
reject(deferred.promise, self._14);
}
return;
}
var ret = tryCallOne(cb, self._12);
var ret = tryCallOne(cb, self._14);
if (ret === IS_ERROR) {

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

) {
self._37 = 3;
self._12 = newValue;
self._25 = 3;
self._14 = newValue;
finale(self);

@@ -143,4 +163,4 @@ return;

}
self._37 = 1;
self._12 = newValue;
self._25 = 1;
self._14 = newValue;
finale(self);

@@ -150,11 +170,20 @@ }

function reject(self, newValue) {
self._37 = 2;
self._12 = newValue;
self._25 = 2;
self._14 = newValue;
if (Promise._79) {
Promise._79(self, newValue);
}
finale(self);
}
function finale(self) {
for (var i = 0; i < self._59.length; i++) {
handle(self, self._59[i]);
if (self._56 === 1) {
handle(self, self._95);
self._95 = null;
}
self._59 = null;
if (self._56 === 2) {
for (var i = 0; i < self._95.length; i++) {
handle(self, self._95[i]);
}
self._95 = null;
}
}

@@ -161,0 +190,0 @@

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

function valuePromise(value) {
var p = new Promise(Promise._99);
p._37 = 1;
p._12 = value;
var p = new Promise(Promise._22);
p._25 = 1;
p._14 = value;
return p;

@@ -59,7 +59,7 @@ }

if (val instanceof Promise && val.then === Promise.prototype.then) {
while (val._37 === 3) {
val = val._12;
while (val._25 === 3) {
val = val._14;
}
if (val._37 === 1) return res(i, val._12);
if (val._37 === 2) reject(val._12);
if (val._25 === 1) return res(i, val._14);
if (val._25 === 2) reject(val._14);
val.then(function (val) {

@@ -66,0 +66,0 @@ res(i, val);

@@ -8,1 +8,2 @@ 'use strict';

require('./node-extensions.js');
require('./synchronous.js');

@@ -14,25 +14,84 @@ 'use strict';

Promise.denodeify = function (fn, argumentCount) {
argumentCount = argumentCount || Infinity;
return function () {
var self = this;
var args = Array.prototype.slice.call(arguments, 0,
argumentCount > 0 ? argumentCount : 0);
return new Promise(function (resolve, reject) {
args.push(function (err, res) {
if (err) reject(err);
else resolve(res);
})
var res = fn.apply(self, args);
if (res &&
(
typeof res === 'object' ||
typeof res === 'function'
) &&
typeof res.then === 'function'
) {
resolve(res);
}
})
if (
typeof argumentCount === 'number' && argumentCount !== Infinity
) {
return denodeifyWithCount(fn, argumentCount);
} else {
return denodeifyWithoutCount(fn);
}
}
var callbackFn = (
'function (err, res) {' +
'if (err) { rj(err); } else { rs(res); }' +
'}'
);
function denodeifyWithCount(fn, argumentCount) {
var args = [];
for (var i = 0; i < argumentCount; i++) {
args.push('a' + i);
}
var body = [
'return function (' + args.join(',') + ') {',
'var self = this;',
'return new Promise(function (rs, rj) {',
'var res = fn.call(',
['self'].concat(args).concat([callbackFn]).join(','),
');',
'if (res &&',
'(typeof res === "object" || typeof res === "function") &&',
'typeof res.then === "function"',
') {rs(res);}',
'});',
'};'
].join('');
return Function(['Promise', 'fn'], body)(Promise, fn);
}
function denodeifyWithoutCount(fn) {
var fnLength = Math.max(fn.length - 1, 3);
var args = [];
for (var i = 0; i < fnLength; i++) {
args.push('a' + i);
}
var body = [
'return function (' + args.join(',') + ') {',
'var self = this;',
'var args;',
'var argLength = arguments.length;',
'if (arguments.length > ' + fnLength + ') {',
'args = new Array(arguments.length + 1);',
'for (var i = 0; i < arguments.length; i++) {',
'args[i] = arguments[i];',
'}',
'}',
'return new Promise(function (rs, rj) {',
'var cb = ' + callbackFn + ';',
'var res;',
'switch (argLength) {',
args.concat(['extra']).map(function (_, index) {
return (
'case ' + (index) + ':' +
'res = fn.call(' + ['self'].concat(args.slice(0, index)).concat('cb').join(',') + ');' +
'break;'
);
}).join(''),
'default:',
'args[argLength] = cb;',
'res = fn.apply(self, args);',
'}',
'if (res &&',
'(typeof res === "object" || typeof res === "function") &&',
'typeof res.then === "function"',
') {rs(res);}',
'});',
'};'
].join('');
return Function(
['Promise', 'fn'],
body
)(Promise, fn);
}
Promise.nodeify = function (fn) {

@@ -39,0 +98,0 @@ return function () {

@@ -61,8 +61,11 @@ 'use strict';

}
this._deferredState = 0;
this._state = 0;
this._value = null;
this._deferreds = [];
this._deferreds = null;
if (fn === noop) return;
doResolve(fn, this);
}
Promise._onHandle = null;
Promise._onReject = null;
Promise._noop = noop;

@@ -90,6 +93,23 @@

}
if (Promise._onHandle) {
Promise._onHandle(self);
}
if (self._state === 0) {
if (self._deferredState === 0) {
self._deferredState = 1;
self._deferreds = deferred;
return;
}
if (self._deferredState === 1) {
self._deferredState = 2;
self._deferreds = [self._deferreds, deferred];
return;
}
self._deferreds.push(deferred);
return;
}
handleResolved(self, deferred);
}
function handleResolved(self, deferred) {
asap(function() {

@@ -150,9 +170,18 @@ var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;

self._value = newValue;
if (Promise._onReject) {
Promise._onReject(self, newValue);
}
finale(self);
}
function finale(self) {
for (var i = 0; i < self._deferreds.length; i++) {
handle(self, self._deferreds[i]);
if (self._deferredState === 1) {
handle(self, self._deferreds);
self._deferreds = null;
}
self._deferreds = null;
if (self._deferredState === 2) {
for (var i = 0; i < self._deferreds.length; i++) {
handle(self, self._deferreds[i]);
}
self._deferreds = null;
}
}

@@ -159,0 +188,0 @@

@@ -8,1 +8,2 @@ 'use strict';

require('./node-extensions.js');
require('./synchronous.js');

@@ -14,25 +14,84 @@ 'use strict';

Promise.denodeify = function (fn, argumentCount) {
argumentCount = argumentCount || Infinity;
return function () {
var self = this;
var args = Array.prototype.slice.call(arguments, 0,
argumentCount > 0 ? argumentCount : 0);
return new Promise(function (resolve, reject) {
args.push(function (err, res) {
if (err) reject(err);
else resolve(res);
})
var res = fn.apply(self, args);
if (res &&
(
typeof res === 'object' ||
typeof res === 'function'
) &&
typeof res.then === 'function'
) {
resolve(res);
}
})
if (
typeof argumentCount === 'number' && argumentCount !== Infinity
) {
return denodeifyWithCount(fn, argumentCount);
} else {
return denodeifyWithoutCount(fn);
}
}
var callbackFn = (
'function (err, res) {' +
'if (err) { rj(err); } else { rs(res); }' +
'}'
);
function denodeifyWithCount(fn, argumentCount) {
var args = [];
for (var i = 0; i < argumentCount; i++) {
args.push('a' + i);
}
var body = [
'return function (' + args.join(',') + ') {',
'var self = this;',
'return new Promise(function (rs, rj) {',
'var res = fn.call(',
['self'].concat(args).concat([callbackFn]).join(','),
');',
'if (res &&',
'(typeof res === "object" || typeof res === "function") &&',
'typeof res.then === "function"',
') {rs(res);}',
'});',
'};'
].join('');
return Function(['Promise', 'fn'], body)(Promise, fn);
}
function denodeifyWithoutCount(fn) {
var fnLength = Math.max(fn.length - 1, 3);
var args = [];
for (var i = 0; i < fnLength; i++) {
args.push('a' + i);
}
var body = [
'return function (' + args.join(',') + ') {',
'var self = this;',
'var args;',
'var argLength = arguments.length;',
'if (arguments.length > ' + fnLength + ') {',
'args = new Array(arguments.length + 1);',
'for (var i = 0; i < arguments.length; i++) {',
'args[i] = arguments[i];',
'}',
'}',
'return new Promise(function (rs, rj) {',
'var cb = ' + callbackFn + ';',
'var res;',
'switch (argLength) {',
args.concat(['extra']).map(function (_, index) {
return (
'case ' + (index) + ':' +
'res = fn.call(' + ['self'].concat(args.slice(0, index)).concat('cb').join(',') + ');' +
'break;'
);
}).join(''),
'default:',
'args[argLength] = cb;',
'res = fn.apply(self, args);',
'}',
'if (res &&',
'(typeof res === "object" || typeof res === "function") &&',
'typeof res.then === "function"',
') {rs(res);}',
'});',
'};'
].join('');
return Function(
['Promise', 'fn'],
body
)(Promise, fn);
}
Promise.nodeify = function (fn) {

@@ -39,0 +98,0 @@ return function () {

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