Socket
Socket
Sign inDemoInstall

vow

Package Overview
Dependencies
Maintainers
1
Versions
55
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vow - npm Package Compare versions

Comparing version 0.1.4 to 0.1.5

523

lib/vow.js

@@ -9,3 +9,3 @@ /**

*
* @version 0.1.4
* @version 0.1.5
*/

@@ -15,252 +15,255 @@

var nextTick = typeof process === 'object'? // nodejs
process.nextTick :
global.setImmediate? // ie10
global.setImmediate :
global.postMessage? // modern browsers
(function() {
var fns = [],
msg = '__promise' + +new Date;
var nextTick = typeof process === 'object'? // nodejs
process.nextTick :
global.setImmediate? // ie10
global.setImmediate :
global.postMessage? // modern browsers
(function() {
var fns = [],
msg = '__promise' + +new Date,
onMessage = function(e) {
if(e.data === msg) {
e.stopPropagation?
e.stopPropagation() :
e.cancelBubble = true;
global.addEventListener(
'message',
function(e) {
if(e.source === global && e.data === msg) {
e.stopPropagation();
var callFns = fns, i = 0, len = fns.length;
fns = [];
while(i < len) {
callFns[i++]();
var callFns = fns, i = 0, len = fns.length;
fns = [];
while(i < len) {
callFns[i++]();
}
}
}
},
true);
};
return function(fn) {
fns.push(fn) === 1 && global.postMessage(msg, '*');
};
})() :
function(fn) { // old browsers
setTimeout(fn, 0);
},
isFunction = function(obj) {
return typeof obj === 'function';
};
global.addEventListener?
global.addEventListener('message', onMessage, true) :
global.attachEvent('onmessage', onMessage);
var Promise = function(val) {
this._res = val;
return function(fn) {
fns.push(fn) === 1 && global.postMessage(msg, '*');
};
})() :
function(fn) { // old browsers
setTimeout(fn, 0);
},
isFunction = function(obj) {
return typeof obj === 'function';
};
this._isFulfilled = typeof val !== 'undefined';
this._isRejected = false;
var Promise = function(val) {
this._res = val;
this._fulfilledCallbacks = [];
this._rejectedCallbacks = [];
};
this._isFulfilled = typeof val !== 'undefined';
this._isRejected = false;
Promise.prototype = {
valueOf : function() {
return this._res;
},
this._fulfilledCallbacks = [];
this._rejectedCallbacks = [];
};
isFulfilled : function() {
return this._isFulfilled;
},
Promise.prototype = {
valueOf : function() {
return this._res;
},
isRejected : function() {
return this._isRejected;
},
isFulfilled : function() {
return this._isFulfilled;
},
isResolved : function() {
return this._isFulfilled || this._isRejected;
},
isRejected : function() {
return this._isRejected;
},
fulfill : function(val) {
if(this.isResolved()) {
return;
}
isResolved : function() {
return this._isFulfilled || this._isRejected;
},
this._isFulfilled = true;
this._res = val;
fulfill : function(val) {
if(this.isResolved()) {
return;
}
this._callCallbacks(this._fulfilledCallbacks);
this._fulfilledCallbacks = this._rejectedCallbacks = null;
},
this._isFulfilled = true;
this._res = val;
reject : function(error) {
if(this.isResolved()) {
return;
}
this._callCallbacks(this._fulfilledCallbacks);
this._fulfilledCallbacks = this._rejectedCallbacks = null;
},
this._isRejected = true;
this._res = error;
reject : function(error) {
if(this.isResolved()) {
return;
}
this._callCallbacks(this._rejectedCallbacks);
this._fulfilledCallbacks = this._rejectedCallbacks = null;
},
this._isRejected = true;
this._res = error;
then : function(onFulfilled, onRejected) {
var promise = new Promise(),
cb;
this._callCallbacks(this._rejectedCallbacks);
this._fulfilledCallbacks = this._rejectedCallbacks = null;
},
if(!this._isRejected) {
cb = { promise : promise, fn : onFulfilled };
this._isFulfilled?
this._callCallbacks([cb]) :
this._fulfilledCallbacks.push(cb);
}
then : function(onFulfilled, onRejected) {
var promise = new Promise(),
cb;
if(!this._isFulfilled) {
cb = { promise : promise, fn : onRejected };
this._isRejected?
this._callCallbacks([cb]) :
this._rejectedCallbacks.push(cb);
}
if(!this._isRejected) {
cb = { promise : promise, fn : onFulfilled };
this._isFulfilled?
this._callCallbacks([cb]) :
this._fulfilledCallbacks.push(cb);
}
return promise;
},
if(!this._isFulfilled) {
cb = { promise : promise, fn : onRejected };
this._isRejected?
this._callCallbacks([cb]) :
this._rejectedCallbacks.push(cb);
}
fail : function(onRejected) {
return this.then(null, onRejected);
},
return promise;
},
spread : function(onFulfilled, onRejected) {
return this.then(
function(val) {
return onFulfilled.apply(this, val);
},
onRejected);
},
fail : function(onRejected) {
return this.then(null, onRejected);
},
_callCallbacks : function(callbacks) {
if(!callbacks.length) {
return;
}
spread : function(onFulfilled, onRejected) {
return this.then(
function(val) {
return onFulfilled.apply(this, val);
},
onRejected);
},
var arg = this._res,
isFulfilled = this.isFulfilled();
_callCallbacks : function(callbacks) {
if(!callbacks.length) {
return;
}
nextTick(function() {
var i = 0, len = callbacks.length, cb;
while(i < len) {
var promise = (cb = callbacks[i++]).promise,
fn = cb.fn;
var arg = this._res,
isFulfilled = this.isFulfilled();
if(isFunction(fn)) {
var res;
try {
res = fn(arg);
nextTick(function() {
var i = 0, len = callbacks.length, cb;
while(i < len) {
var promise = (cb = callbacks[i++]).promise,
fn = cb.fn;
if(isFunction(fn)) {
var res;
try {
res = fn(arg);
}
catch(e) {
promise.reject(e);
continue;
}
Vow.isPromise(res)?
(function(promise) {
res.then(
function(val) {
promise.fulfill(val);
},
function(error) {
promise.reject(error);
})
})(promise) :
promise.fulfill(res);
}
catch(e) {
promise.reject(e);
continue;
else {
isFulfilled?
promise.fulfill(arg) :
promise.reject(arg);
}
Vow.isPromise(res)?
(function(promise) {
res.then(
function(val) {
promise.fulfill(val);
},
function(error) {
promise.reject(error);
})
})(promise) :
promise.fulfill(res);
}
else {
isFulfilled?
promise.fulfill(arg) :
promise.reject(arg);
}
}
});
}
};
});
}
};
var Vow = {
promise : function(val) {
return new Promise(val);
},
var Vow = {
promise : function(val) {
return new Promise(val);
},
when : function(obj, onFulfilled, onRejected) {
return (this.isPromise(obj)? obj : new Promise(obj)).then(onFulfilled, onRejected);
},
when : function(obj, onFulfilled, onRejected) {
return (this.isPromise(obj)? obj : new Promise(obj)).then(onFulfilled, onRejected);
},
isPromise : function(obj) {
return obj && isFunction(obj.then);
},
isPromise : function(obj) {
return obj && isFunction(obj.then);
},
isFulfilled : function(obj) {
return this.isPromise(obj)? obj.isFulfilled() : true;
},
isFulfilled : function(obj) {
return this.isPromise(obj)? obj.isFulfilled() : true;
},
isRejected : function(obj) {
return this.isPromise(obj)? obj.isRejected() : false;
},
isRejected : function(obj) {
return this.isPromise(obj)? obj.isRejected() : false;
},
isResolved : function(obj) {
return this.isPromise(obj)? obj.isResolved() : true;
},
isResolved : function(obj) {
return this.isPromise(obj)? obj.isResolved() : true;
},
fulfill : function(val) {
return this.when(val, null, function(error) {
return error;
});
},
fulfill : function(val) {
return this.when(val, null, function(error) {
return error;
});
},
reject : function(error) {
return this.when(error, function(val) {
var promise = new Promise();
promise.reject(val);
return promise;
});
},
reject : function(error) {
return this.when(error, function(val) {
var promise = new Promise();
promise.reject(val);
return promise;
});
},
resolve : function(val) {
return this.isPromise(val)?
val :
this.when(val);
},
resolve : function(val) {
return this.isPromise(val)?
val :
this.when(val);
},
forEach : function(promises, onFulfilled, onRejected) {
var i = 0, len = promises.length;
while(i < len) {
this.when(promises[i++], onFulfilled, onRejected);
}
},
forEach : function(promises, onFulfilled, onRejected) {
var i = 0, len = promises.length;
while(i < len) {
this.when(promises[i++], onFulfilled, onRejected);
}
},
all : function(promises) {
var resPromise = new Promise(),
i = promises.length;
all : function(promises) {
var resPromise = new Promise(),
i = promises.length;
if(i) {
var onFulfilled = function() {
if(!--i) {
var res = [],
promise;
while(promise = promises[i++]) {
res.push(promise.valueOf());
if(i) {
var onFulfilled = function() {
if(!--i) {
var res = [],
promise;
while(promise = promises[i++]) {
res.push(promise.valueOf());
}
resPromise.fulfill(res);
}
resPromise.fulfill(res);
}
},
onRejected = function(error) {
resPromise.reject(error);
};
},
onRejected = function(error) {
resPromise.reject(error);
};
this.forEach(promises, onFulfilled, onRejected);
}
else {
resPromise.fulfill([]);
}
this.forEach(promises, onFulfilled, onRejected);
}
else {
resPromise.fulfill([]);
}
return resPromise;
},
return resPromise;
},
allResolved : function(promises) {
var resPromise = new Promise(),
i = promises.length;
allResolved : function(promises) {
var resPromise = new Promise(),
i = promises.length;
if(i) {
var onProgress = function() {
if(i) {
var onProgress = function() {
if(!--i) {

@@ -271,68 +274,68 @@ resPromise.fulfill(promises);

this.forEach(promises, onProgress, onProgress);
}
else {
resPromise.fulfill(promises);
}
this.forEach(promises, onProgress, onProgress);
}
else {
resPromise.fulfill(promises);
}
return resPromise;
},
return resPromise;
},
any : function(promises) {
var resPromise = new Promise(),
len = promises.length;
any : function(promises) {
var resPromise = new Promise(),
len = promises.length;
if(len) {
var i = 0, error,
onFulfilled = function(val) {
resPromise.fulfill(val);
},
onRejected = function(_error) {
i || (error = _error);
if(++i === len) {
resPromise.reject(error);
}
};
if(len) {
var i = 0, error,
onFulfilled = function(val) {
resPromise.fulfill(val);
},
onRejected = function(_error) {
i || (error = _error);
if(++i === len) {
resPromise.reject(error);
}
};
this.forEach(promises, onFulfilled, onRejected);
}
else {
resPromise.reject(Error());
}
this.forEach(promises, onFulfilled, onRejected);
}
else {
resPromise.reject(Error());
}
return resPromise;
},
return resPromise;
},
timeout : function(origPromise, timeout) {
var resPromise = new Promise(),
timer = setTimeout(function() {
resPromise.reject(Error('timed out'));
}, timeout);
timeout : function(origPromise, timeout) {
var resPromise = new Promise(),
timer = setTimeout(function() {
resPromise.reject(Error('timed out'));
}, timeout);
origPromise.then(
function(res) {
clearTimeout(timer);
resPromise.fulfill(res);
},
function(error) {
clearTimeout(timer);
resPromise.reject(error);
});
origPromise.then(
function(res) {
clearTimeout(timer);
resPromise.fulfill(res);
},
function(error) {
clearTimeout(timer);
resPromise.reject(error);
});
return resPromise;
}
};
return resPromise;
}
};
if(typeof exports === 'object') {
module.exports = Vow;
}
else if(typeof define === 'function') {
define(function(require, exports, module) {
if(typeof exports === 'object') {
module.exports = Vow;
});
}
else {
global.Vow = Vow;
}
}
else if(typeof define === 'function') {
define(function(require, exports, module) {
module.exports = Vow;
});
}
else {
global.Vow = Vow;
}
})(this);
{
"name" : "vow",
"version" : "0.1.4",
"version" : "0.1.5",
"description" : "Promises/A+ proposal compatible promises library",

@@ -21,3 +21,3 @@ "homepage" : "https://github.com/dfilatov/jspromise",

"uglify-js" : "1.3.4",
"promises-aplus-tests": "git://github.com/promises-aplus/promises-tests.git"
"promises-aplus-tests": "1.0.0"
},

@@ -24,0 +24,0 @@ "main" : "index",

@@ -0,5 +1,6 @@

<a href="http://promises-aplus.github.com/promises-spec"><img src="http://promises-aplus.github.com/promises-spec/assets/logo-small.png" align="right" /></a>
Vow [![Build Status](https://secure.travis-ci.org/dfilatov/jspromise.png)](http://travis-ci.org/dfilatov/jspromise)
=========
Promises/A+ specification compatible promises library.
Promises/A+ implementation.
See https://github.com/promises-aplus/promises-spec.

@@ -72,7 +73,15 @@

####when(valueOrPromise, [onFulfilled], [onRejected])####
####isFulfilled(value)####
####isRejected(value)####
####isResolved(value)####
####fulfill(value)####
Returns a promise that has already been fulfilled with the given ````value````. If ````value```` is a promise, returned promise will be fulfilled with fulfill/rejection value of given promise.
####reject(reasonOrPromise)####
Returns a promise that has already been rejected with the given ````value````. If ````value```` is a promise, returned promise will be rejected with fulfill/rejection value of given promise.
####reject(reason)####
Returns a promise that has already been rejected with the given ````reason````. If ````reason```` is a promise, returned promise will be rejected with fulfill/rejection value of given promise.

@@ -82,6 +91,5 @@ ####resolve(value)####

####when(valueOrPromise, [onFulfilled], [onRejected])####
####all(promisesOrValues)####
####allResolved(promisesOrValues)####
####any(promisesOrValues)####
####all(promises)####
####allResolved(promises)####
####any(promises)####
####timeout(promise, timeout)####

@@ -1,1 +0,10 @@

(function(global){var nextTick=typeof process==="object"?process.nextTick:global.setImmediate?global.setImmediate:global.postMessage?function(){var fns=[],msg="__promise"+ +new Date;global.addEventListener("message",function(e){if(e.source===global&&e.data===msg){e.stopPropagation();var callFns=fns,i=0,len=fns.length;fns=[];while(i<len){callFns[i++]()}}},true);return function(fn){fns.push(fn)===1&&global.postMessage(msg,"*")}}():function(fn){setTimeout(fn,0)},isFunction=function(obj){return typeof obj==="function"};var Promise=function(val){this._res=val;this._isFulfilled=typeof val!=="undefined";this._isRejected=false;this._fulfilledCallbacks=[];this._rejectedCallbacks=[]};Promise.prototype={valueOf:function(){return this._res},isFulfilled:function(){return this._isFulfilled},isRejected:function(){return this._isRejected},isResolved:function(){return this._isFulfilled||this._isRejected},fulfill:function(val){if(this.isResolved()){return}this._isFulfilled=true;this._res=val;this._callCallbacks(this._fulfilledCallbacks);this._fulfilledCallbacks=this._rejectedCallbacks=null},reject:function(error){if(this.isResolved()){return}this._isRejected=true;this._res=error;this._callCallbacks(this._rejectedCallbacks);this._fulfilledCallbacks=this._rejectedCallbacks=null},then:function(onFulfilled,onRejected){var promise=new Promise,cb;if(!this._isRejected){cb={promise:promise,fn:onFulfilled};this._isFulfilled?this._callCallbacks([cb]):this._fulfilledCallbacks.push(cb)}if(!this._isFulfilled){cb={promise:promise,fn:onRejected};this._isRejected?this._callCallbacks([cb]):this._rejectedCallbacks.push(cb)}return promise},fail:function(onRejected){return this.then(null,onRejected)},spread:function(onFulfilled,onRejected){return this.then(function(val){return onFulfilled.apply(this,val)},onRejected)},_callCallbacks:function(callbacks){if(!callbacks.length){return}var arg=this._res,isFulfilled=this.isFulfilled();nextTick(function(){var i=0,len=callbacks.length,cb;while(i<len){var promise=(cb=callbacks[i++]).promise,fn=cb.fn;if(isFunction(fn)){var res;try{res=fn(arg)}catch(e){promise.reject(e);continue}Vow.isPromise(res)?function(promise){res.then(function(val){promise.fulfill(val)},function(error){promise.reject(error)})}(promise):promise.fulfill(res)}else{isFulfilled?promise.fulfill(arg):promise.reject(arg)}}})}};var Vow={promise:function(val){return new Promise(val)},when:function(obj,onFulfilled,onRejected){return(this.isPromise(obj)?obj:new Promise(obj)).then(onFulfilled,onRejected)},isPromise:function(obj){return obj&&isFunction(obj.then)},isFulfilled:function(obj){return this.isPromise(obj)?obj.isFulfilled():true},isRejected:function(obj){return this.isPromise(obj)?obj.isRejected():false},isResolved:function(obj){return this.isPromise(obj)?obj.isResolved():true},fulfill:function(val){return this.when(val,null,function(error){return error})},reject:function(error){return this.when(error,function(val){var promise=new Promise;promise.reject(val);return promise})},resolve:function(val){return this.isPromise(val)?val:this.when(val)},forEach:function(promises,onFulfilled,onRejected){var i=0,len=promises.length;while(i<len){this.when(promises[i++],onFulfilled,onRejected)}},all:function(promises){var resPromise=new Promise,i=promises.length;if(i){var onFulfilled=function(){if(!--i){var res=[],promise;while(promise=promises[i++]){res.push(promise.valueOf())}resPromise.fulfill(res)}},onRejected=function(error){resPromise.reject(error)};this.forEach(promises,onFulfilled,onRejected)}else{resPromise.fulfill([])}return resPromise},allResolved:function(promises){var resPromise=new Promise,i=promises.length;if(i){var onProgress=function(){if(!--i){resPromise.fulfill(promises)}};this.forEach(promises,onProgress,onProgress)}else{resPromise.fulfill(promises)}return resPromise},any:function(promises){var resPromise=new Promise,len=promises.length;if(len){var i=0,error,onFulfilled=function(val){resPromise.fulfill(val)},onRejected=function(_error){i||(error=_error);if(++i===len){resPromise.reject(error)}};this.forEach(promises,onFulfilled,onRejected)}else{resPromise.reject(Error())}return resPromise},timeout:function(origPromise,timeout){var resPromise=new Promise,timer=setTimeout(function(){resPromise.reject(Error("timed out"))},timeout);origPromise.then(function(res){clearTimeout(timer);resPromise.fulfill(res)},function(error){clearTimeout(timer);resPromise.reject(error)});return resPromise}};if(typeof exports==="object"){module.exports=Vow}else if(typeof define==="function"){define(function(require,exports,module){module.exports=Vow})}else{global.Vow=Vow}})(this);
/**
* Vow
*
* Copyright (c) 2012 Filatov Dmitry (dfilatov@yandex-team.ru)
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
* @version 0.1.5
*/(function(e){var t=typeof process=="object"?process.nextTick:e.setImmediate?e.setImmediate:e.postMessage?function(){var t=[],n="__promise"+ +(new Date),r=function(e){if(e.data===n){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0;var r=t,i=0,s=t.length;t=[];while(i<s)r[i++]()}};return e.addEventListener?e.addEventListener("message",r,!0):e.attachEvent("onmessage",r),function(r){t.push(r)===1&&e.postMessage(n,"*")}}():function(e){setTimeout(e,0)},n=function(e){return typeof e=="function"},r=function(e){this._res=e,this._isFulfilled=typeof e!="undefined",this._isRejected=!1,this._fulfilledCallbacks=[],this._rejectedCallbacks=[]};r.prototype={valueOf:function(){return this._res},isFulfilled:function(){return this._isFulfilled},isRejected:function(){return this._isRejected},isResolved:function(){return this._isFulfilled||this._isRejected},fulfill:function(e){if(this.isResolved())return;this._isFulfilled=!0,this._res=e,this._callCallbacks(this._fulfilledCallbacks),this._fulfilledCallbacks=this._rejectedCallbacks=null},reject:function(e){if(this.isResolved())return;this._isRejected=!0,this._res=e,this._callCallbacks(this._rejectedCallbacks),this._fulfilledCallbacks=this._rejectedCallbacks=null},then:function(e,t){var n=new r,i;return this._isRejected||(i={promise:n,fn:e},this._isFulfilled?this._callCallbacks([i]):this._fulfilledCallbacks.push(i)),this._isFulfilled||(i={promise:n,fn:t},this._isRejected?this._callCallbacks([i]):this._rejectedCallbacks.push(i)),n},fail:function(e){return this.then(null,e)},spread:function(e,t){return this.then(function(t){return e.apply(this,t)},t)},_callCallbacks:function(e){if(!e.length)return;var r=this._res,s=this.isFulfilled();t(function(){var t=0,o=e.length,u;while(t<o){var a=(u=e[t++]).promise,f=u.fn;if(n(f)){var l;try{l=f(r)}catch(c){a.reject(c);continue}i.isPromise(l)?function(e){l.then(function(t){e.fulfill(t)},function(t){e.reject(t)})}(a):a.fulfill(l)}else s?a.fulfill(r):a.reject(r)}})}};var i={promise:function(e){return new r(e)},when:function(e,t,n){return(this.isPromise(e)?e:new r(e)).then(t,n)},isPromise:function(e){return e&&n(e.then)},isFulfilled:function(e){return this.isPromise(e)?e.isFulfilled():!0},isRejected:function(e){return this.isPromise(e)?e.isRejected():!1},isResolved:function(e){return this.isPromise(e)?e.isResolved():!0},fulfill:function(e){return this.when(e,null,function(e){return e})},reject:function(e){return this.when(e,function(e){var t=new r;return t.reject(e),t})},resolve:function(e){return this.isPromise(e)?e:this.when(e)},forEach:function(e,t,n){var r=0,i=e.length;while(r<i)this.when(e[r++],t,n)},all:function(e){var t=new r,n=e.length;if(n){var i=function(){if(!--n){var r=[],i;while(i=e[n++])r.push(i.valueOf());t.fulfill(r)}},s=function(e){t.reject(e)};this.forEach(e,i,s)}else t.fulfill([]);return t},allResolved:function(e){var t=new r,n=e.length;if(n){var i=function(){--n||t.fulfill(e)};this.forEach(e,i,i)}else t.fulfill(e);return t},any:function(e){var t=new r,n=e.length;if(n){var i=0,s,o=function(e){t.fulfill(e)},u=function(e){i||(s=e),++i===n&&t.reject(s)};this.forEach(e,o,u)}else t.reject(Error());return t},timeout:function(e,t){var n=new r,i=setTimeout(function(){n.reject(Error("timed out"))},t);return e.then(function(e){clearTimeout(i),n.fulfill(e)},function(e){clearTimeout(i),n.reject(e)}),n}};typeof exports=="object"?module.exports=i:typeof define=="function"?define(function(e,t,n){n.exports=i}):e.Vow=i})(this);
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