promise-toolbox
Advanced tools
Comparing version 0.1.0 to 0.1.1
@@ -1,9 +0,9 @@ | ||
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.TimeoutError=exports.Promise=exports.finally=exports.fromCallback=exports.forOwn=exports.forIterable=exports.forIn=exports.forEach=exports.forArray=exports.makeAsyncIterator=exports.defer=exports.cancellable=exports.nodeify=exports.isPromise=undefined;exports.all=all;exports.asCallback=asCallback;exports.delay=delay;exports.join=join;exports.lastly=lastly;exports.promisify=promisify;exports.promisifyAll=promisifyAll;exports.reflect=reflect;exports.settle=settle;exports.some=some;exports.timeout=timeout;var _anyPromise=require('any-promise');var _anyPromise2=_interopRequireDefault(_anyPromise);var _makeError=require('make-error');function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;} // =================================================================== | ||
var _toString=Object.prototype.toString;var _endsWith=function _endsWith(str,suffix){var pos=arguments.length<=2||arguments[2]===undefined?str.length:arguments[2];pos-=suffix.length;return str.indexOf(suffix,pos)===pos;};var _isArray=Array.isArray||(function(tag){return function(value){return _toString.call(value)===tag;};})(_toString.call([]));var _isFunction=(function(tag){return function(value){return _toString.call(value)===tag;};})(_toString.call(_toString));var _isLength=function _isLength(value){return typeof value==='number'&&value>=0&&value<Infinity&&Math.floor(value)===value;};var _isArrayLike=function _isArrayLike(value){return value&&_isLength(value.length);};var _isIterable=typeof Symbol==='function'?function(value){return value&&_isFunction(value[Symbol.iterator]);}:function(){return false;};var _noop=function _noop(){}; // ------------------------------------------------------------------- | ||
'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.TimeoutError=exports.finally=exports.fromCallback=exports.forOwn=exports.forIterable=exports.forIn=exports.forEach=exports.forArray=exports.makeAsyncIterator=exports.defer=exports.cancellable=exports.nodeify=exports.isPromise=undefined;exports.all=all;exports.asCallback=asCallback;exports.delay=delay;exports.join=join;exports.lastly=lastly;exports.promisify=promisify;exports.promisifyAll=promisifyAll;exports.reflect=reflect;exports.settle=settle;exports.some=some;exports.timeout=timeout;var _makeError=require('make-error');function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;} // =================================================================== | ||
var _toString=Object.prototype.toString;var _endsWith=function _endsWith(str,suffix){var pos=arguments.length<=2||arguments[2]===undefined?str.length:arguments[2];pos-=suffix.length;return pos>=0&&str.indexOf(suffix,pos)===pos;};var _isArray=Array.isArray||function(tag){return function(value){return _toString.call(value)===tag;};}(_toString.call([]));var _isFunction=function(tag){return function(value){return _toString.call(value)===tag;};}(_toString.call(_toString));var _isLength=function _isLength(value){return typeof value==='number'&&value>=0&&value<Infinity&&Math.floor(value)===value;};var _isArrayLike=function _isArrayLike(value){return value&&_isLength(value.length);};var _isIterable=typeof Symbol==='function'?function(value){return value&&_isFunction(value[Symbol.iterator]);}:function(){return false;};var _noop=function _noop(){}; // ------------------------------------------------------------------- | ||
var _forArray=function _forArray(array,iteratee){var length=array.length;for(var i=0;i<length;++i){iteratee(array[i],i,array);}};var _forIn=function _forIn(object,iteratee){for(var key in object){iteratee(object[key],key,object);}};var _forIterable=function _forIterable(iterable,iteratee){var iterator=iterable[Symbol.iterator]();var current=undefined;while(!(current=iterator.next()).done){iteratee(current.value,null,iterable);}};var hasOwnProperty=Object.prototype.hasOwnProperty;var _forOwn=function _forOwn(object,iteratee){for(var key in object){if(hasOwnProperty.call(object,key)){iteratee(object[key],key,object);}}};var _forEach=function _forEach(collection,iteratee){return _isArray(collection)?_forArray(collection,iteratee):_isIterable(collection)?_forIterable(collection,iteratee):_isArrayLike(collection)?_forArray(collection,iteratee):_forOwn(collection,iteratee);};var _map=function _map(collection,iteratee){var result=_isArrayLike(collection)?new Array(collection.length):{}; // If iteratee is not a function, simply returns the new container. | ||
if(iteratee){_forEach(collection,function(item,key){result[key]=iteratee(item,key,collection);});}return result;}; // =================================================================== | ||
var isPromise=exports.isPromise=function isPromise(value){return value!=null&&typeof value.then==='function';}; // ------------------------------------------------------------------- | ||
var _makeAsyncIterator=function _makeAsyncIterator(iterator){return function(promises,cb){var mainPromise=_anyPromise2.default.resolve();iterator(promises,function(promise,key){mainPromise=mainPromise // Waits the current promise. | ||
var _makeAsyncIterator=function _makeAsyncIterator(iterator){return function(promises,cb){var mainPromise=Promise.resolve();iterator(promises,function(promise,key){mainPromise=mainPromise // Waits the current promise. | ||
.then(function(){return promise;}) // Executes the callback. | ||
.then(function(value){return cb(value,key);});});return mainPromise;};};var _forEachAsync=_makeAsyncIterator(_forEach);var _wrap=function _wrap(value){return isPromise(value)?value:_anyPromise2.default.resolve(value);}; // =================================================================== | ||
.then(function(value){return cb(value,key);});});return mainPromise;};};var _forEachAsync=_makeAsyncIterator(_forEach);var _wrap=function _wrap(value){return isPromise(value)?value:Promise.resolve(value);}; // =================================================================== | ||
var _all=function _all(promises,mapFn){ // mapFn may be undefined but it's okay :) | ||
@@ -34,5 +34,5 @@ var results=_map(promises,mapFn);return _forEachAsync(mapFn?results:promises,function(value,key){results[key]=value;}).then(function(){return results;});}; // Returns a promise which resolves when all the promises in a | ||
// Discouraged but sometimes necessary way to create a promise. | ||
var defer=exports.defer=function defer(){var resolve=undefined,reject=undefined;var promise=new _anyPromise2.default(function(resolve_,reject_){resolve=resolve_;reject=reject_;});return {promise:promise,reject:reject,resolve:resolve};}; // ------------------------------------------------------------------- | ||
var defer=exports.defer=function defer(){var resolve=undefined,reject=undefined;var promise=new Promise(function(resolve_,reject_){resolve=resolve_;reject=reject_;});return {promise:promise,reject:reject,resolve:resolve};}; // ------------------------------------------------------------------- | ||
// Usage: promise::delay(ms) | ||
function delay(ms){return _wrap(this).then(function(value){return new _anyPromise2.default(function(resolve){setTimeout(function(){return resolve(value);},ms);});});} // ------------------------------------------------------------------- | ||
function delay(ms){return _wrap(this).then(function(value){return new Promise(function(resolve){setTimeout(function(){return resolve(value);},ms);});});} // ------------------------------------------------------------------- | ||
var makeAsyncIterator=exports.makeAsyncIterator=function makeAsyncIterator(iterator){var asyncIterator=_makeAsyncIterator(iterator);return function(cb){return _wrap(this).then(function(promises){return asyncIterator(promises,cb);}).then(_noop); // Resolves to undefined | ||
@@ -46,5 +46,5 @@ };};var forArray=exports.forArray=makeAsyncIterator(_forArray);var forEach=exports.forEach=makeAsyncIterator(_forEach);var forIn=exports.forIn=makeAsyncIterator(_forIn);var forIterable=exports.forIterable=makeAsyncIterator(_forIterable);var forOwn=exports.forOwn=makeAsyncIterator(_forOwn); // ------------------------------------------------------------------- | ||
// }) | ||
var fromCallback=exports.fromCallback=function fromCallback(fn){return new _anyPromise2.default(function(resolve,reject){fn(function(error,result){return error?reject(error):resolve(result);});});}; // ------------------------------------------------------------------- | ||
var fromCallback=exports.fromCallback=function fromCallback(fn){return new Promise(function(resolve,reject){fn(function(error,result){return error?reject(error):resolve(result);});});}; // ------------------------------------------------------------------- | ||
// Usage: join(p1, ..., pn, cb) or join([p1, ..., pn], cb) | ||
function join(){var n=arguments.length-1;var cb=arguments[n];var promises=undefined;if(n===0){return new _anyPromise2.default(function(resolve){return resolve(cb());});}else if(n!==1){promises=new Array(n);for(var i=0;i<n;++i){promises[i]=arguments[i];}}else if(!_isArrayLike(promises=arguments[0])){return _wrap(promises).then(function(value){return cb(value);});}return _all(promises).then(function(args){return cb.apply(null,args);});} // ------------------------------------------------------------------- | ||
function join(){var n=arguments.length-1;var cb=arguments[n];var promises=undefined;if(n===0){return new Promise(function(resolve){return resolve(cb());});}else if(n!==1){promises=new Array(n);for(var i=0;i<n;++i){promises[i]=arguments[i];}}else if(!_isArrayLike(promises=arguments[0])){return _wrap(promises).then(function(value){return cb(value);});}return _all(promises).then(function(args){return cb.apply(null,args);});} // ------------------------------------------------------------------- | ||
// Ponyfill for Promise.finally(cb) | ||
@@ -54,7 +54,6 @@ // | ||
function lastly(cb){return _wrap(this).then(function(value){return _wrap(cb()).then(function(){return value;});},function(reason){return _wrap(cb()).then(function(){throw reason;});});}exports.finally=lastly; // ------------------------------------------------------------------- | ||
exports.Promise=_anyPromise2.default; // ------------------------------------------------------------------- | ||
var _setFunctionNameAndLength=(function(){var _defineProperties=Object.defineProperties;try{var f=_defineProperties(function(){},{length:{value:2},name:{value:'foo'}});if(f.length===2&&f.name==='foo'){return function(fn,name,length){return _defineProperties(fn,{length:{configurable:true,value:length},name:{configurable:true,value:name}});};}}catch(_) {}return function(fn){return fn;};})(); // Usage: fn::promisify([ thisArg ]) | ||
function promisify(thisArg){var fn=this;return _setFunctionNameAndLength(function(){var _this=this;var _arguments=arguments;var length=_arguments.length;var args=new Array(length+1);for(var i=0;i<length;++i){args[i]=arguments[i];}return new _anyPromise2.default(function(resolve,reject){args[length]=function(error,result){return error?reject(error):resolve(result);};fn.apply(thisArg||_this,args);});},fn.name,fn.length&&fn.length-1);} // Usage: obj::promisifyAll([ mapper ]) | ||
var DEFAULT_PALL_MAPPER=function DEFAULT_PALL_MAPPER(name,fn){return !(_endsWith(name,'Sync')||_endsWith(name,'Async'))&&name+'Async';};function promisifyAll(){var _this2=this;var mapper=arguments.length<=0||arguments[0]===undefined?DEFAULT_PALL_MAPPER:arguments[0];var result={};_forIn(this,function(value,name){var newName=undefined;if(typeof value==='function'&&(newName=mapper(name,value,_this2))){result[newName]=promisify(value);}});return result;} // ------------------------------------------------------------------- | ||
var FN_FALSE=function FN_FALSE(){return false;};var FN_TRUE=function FN_TRUE(){return true;};var _reflectResolution=(function(__proto__){return function(_value){return {__proto__:__proto__,value:function value(){return _value;}};};})({isFulfilled:FN_TRUE,isPending:FN_FALSE,isRejected:FN_FALSE,isResolved:FN_TRUE,reason:function reason(){throw new Error('no reason, the promise has resolved');}});var _reflectRejection=(function(__proto__){return function(_reason){return {__proto__:__proto__,reason:function reason(){return _reason;}};};})({isFulfilled:FN_FALSE,isPending:FN_FALSE,isRejected:FN_TRUE,isResolved:FN_FALSE,value:function value(){throw new Error('no value, the promise has rejected');}}); // Returns a promise that is always successful when this promise is | ||
var _setFunctionNameAndLength=function(){var _defineProperties=Object.defineProperties;try{var f=_defineProperties(function(){},{length:{value:2},name:{value:'foo'}});if(f.length===2&&f.name==='foo'){return function(fn,name,length){return _defineProperties(fn,{length:{configurable:true,value:length},name:{configurable:true,value:name}});};}}catch(_){}return function(fn){return fn;};}(); // Usage: fn::promisify([ thisArg ]) | ||
function promisify(thisArg){var fn=this;return _setFunctionNameAndLength(function(){var _this=this;var _arguments=arguments;var length=_arguments.length;var args=new Array(length+1);for(var i=0;i<length;++i){args[i]=arguments[i];}return new Promise(function(resolve,reject){args[length]=function(error,result){return error?reject(error):resolve(result);};fn.apply(thisArg||_this,args);});},fn.name,fn.length&&fn.length-1);} // Usage: obj::promisifyAll([ mapper ]) | ||
var DEFAULT_PALL_MAPPER=function DEFAULT_PALL_MAPPER(name,fn){return !(_endsWith(name,'Sync')||_endsWith(name,'Async'))&&name+'Async';};function promisifyAll(){var _this2=this;var mapper=arguments.length<=0||arguments[0]===undefined?DEFAULT_PALL_MAPPER:arguments[0];var result={};_forIn(this,function(value,name){var newName=undefined;if(typeof value==='function'&&(newName=mapper(name,value,_this2))){result[newName]=promisify.call(value);}});return result;} // ------------------------------------------------------------------- | ||
var FN_FALSE=function FN_FALSE(){return false;};var FN_TRUE=function FN_TRUE(){return true;};var _reflectResolution=function(__proto__){return function(_value){return {__proto__:__proto__,value:function value(){return _value;}};};}({isFulfilled:FN_TRUE,isPending:FN_FALSE,isRejected:FN_FALSE,isResolved:FN_TRUE,reason:function reason(){throw new Error('no reason, the promise has resolved');}});var _reflectRejection=function(__proto__){return function(_reason){return {__proto__:__proto__,reason:function reason(){return _reason;}};};}({isFulfilled:FN_FALSE,isPending:FN_FALSE,isRejected:FN_TRUE,isResolved:FN_FALSE,value:function value(){throw new Error('no value, the promise has rejected');}}); // Returns a promise that is always successful when this promise is | ||
// settled. Its fulfillment value is an object that implements the | ||
@@ -75,6 +74,6 @@ // PromiseInspection interface and reflects the resolution this | ||
function settle(){return all.call(this,function(x){return reflect.call(x);});} // ------------------------------------------------------------------- | ||
var _some=function _some(promises,count){return new _anyPromise2.default(function(resolve,reject){var values=[];var errors=[];var onFulfillment=function onFulfillment(value){if(!values){return;}values.push(value);if(--count){resolve(values);values=errors=null;}};var acceptableErrors=-count;var onRejection=function onRejection(reason){if(!values){return;}errors.push(reason);if(--acceptableErrors){reject(errors);values=errors=null;}};_forEach(promises,function(promise){++acceptableErrors;_wrap(promise).then(onFulfillment,onRejection);});});}; // Usage: promises::some(count) | ||
var _some=function _some(promises,count){return new Promise(function(resolve,reject){var values=[];var errors=[];var onFulfillment=function onFulfillment(value){if(!values){return;}values.push(value);if(--count){resolve(values);values=errors=null;}};var acceptableErrors=-count;var onRejection=function onRejection(reason){if(!values){return;}errors.push(reason);if(--acceptableErrors){reject(errors);values=errors=null;}};_forEach(promises,function(promise){++acceptableErrors;_wrap(promise).then(onFulfillment,onRejection);});});}; // Usage: promises::some(count) | ||
function some(count){return _wrap(this).then(function(promises){return _some(promises,count);});} // ------------------------------------------------------------------- | ||
var TimeoutError=exports.TimeoutError=(function(_BaseError){_inherits(TimeoutError,_BaseError);function TimeoutError(){_classCallCheck(this,TimeoutError);return _possibleConstructorReturn(this,Object.getPrototypeOf(TimeoutError).call(this,'operation timed out'));}return TimeoutError;})(_makeError.BaseError); // Usage: promise::timeout(ms) | ||
function timeout(ms){var _this4=this;return new _anyPromise2.default(function(resolve,reject){var handle=setTimeout(function(){reject(new TimeoutError());if(_isFunction(_this4.cancel)){_this4.cancel();}},ms);_wrap(_this4).then(function(value){clearTimeout(handle);resolve(value);},function(reason){clearTimeout(handle);reject(reason);});});} | ||
var TimeoutError=exports.TimeoutError=function(_BaseError){_inherits(TimeoutError,_BaseError);function TimeoutError(){_classCallCheck(this,TimeoutError);return _possibleConstructorReturn(this,Object.getPrototypeOf(TimeoutError).call(this,'operation timed out'));}return TimeoutError;}(_makeError.BaseError); // Usage: promise::timeout(ms) | ||
function timeout(ms){var _this4=this;return new Promise(function(resolve,reject){var handle=setTimeout(function(){reject(new TimeoutError());if(_isFunction(_this4.cancel)){_this4.cancel();}},ms);_wrap(_this4).then(function(value){clearTimeout(handle);resolve(value);},function(reason){clearTimeout(handle);reject(reason);});});} | ||
//# sourceMappingURL=index.js.map |
@@ -1,8 +0,8 @@ | ||
'use strict';var _slicedToArray=(function(){function sliceIterator(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err) {_d=true;_e=err;}finally {try{if(!_n&&_i["return"])_i["return"]();}finally {if(_d)throw _e;}}return _arr;}return function(arr,i){if(Array.isArray(arr)){return arr;}else if(Symbol.iterator in Object(arr)){return sliceIterator(arr,i);}else {throw new TypeError("Invalid attempt to destructure non-iterable instance");}};})(); /* eslint-env mocha */var _anyPromise=require('any-promise');var _anyPromise2=_interopRequireDefault(_anyPromise);var _must=require('must');var _must2=_interopRequireDefault(_must);var _sinon=require('sinon');var _sinon2=_interopRequireDefault(_sinon);var _=require('./');function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} // =================================================================== | ||
'use strict';var _slicedToArray=function(){function sliceIterator(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally {try{if(!_n&&_i["return"])_i["return"]();}finally {if(_d)throw _e;}}return _arr;}return function(arr,i){if(Array.isArray(arr)){return arr;}else if(Symbol.iterator in Object(arr)){return sliceIterator(arr,i);}else {throw new TypeError("Invalid attempt to destructure non-iterable instance");}};}(); /* eslint-env mocha */var _must=require('must');var _must2=_interopRequireDefault(_must);var _sinon=require('sinon');var _sinon2=_interopRequireDefault(_sinon);var _=require('./');function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} // =================================================================== | ||
describe('fromCallback()',function(){it('creates a promise which resolves with value passed to the callback',function(){return (0,_must2.default)((0,_.fromCallback)(function(cb){cb(null,'foo');})).to.resolve.to.equal('foo');});it('creates a promise which rejects with reason passed to the callback',function(){return (0,_must2.default)((0,_.fromCallback)(function(cb){cb('bar');})).to.reject.to.equal('bar');});}); // ------------------------------------------------------------------- | ||
describe('join()',function(){it('calls the callback once promises are resolved',function(){return (0,_.join)(_anyPromise2.default.resolve('foo'),_anyPromise2.default.resolve('bar'),function(foo,bar){(0,_must2.default)(foo).to.equal('foo');(0,_must2.default)(bar).to.equal('bar');});});it('can takes inputs in an array',function(){return (0,_.join)([_anyPromise2.default.resolve('foo'),_anyPromise2.default.resolve('bar')],function(foo,bar){(0,_must2.default)(foo).to.equal('foo');(0,_must2.default)(bar).to.equal('bar');});});it('rejects if one promise rejects',function(){return (0,_must2.default)((0,_.join)(_anyPromise2.default.resolve('foo'),_anyPromise2.default.reject('bar'),function(foo,bar){(0,_must2.default)(foo).to.equal('foo');(0,_must2.default)(bar).to.equal('bar');})).to.reject.to.equal('bar');});}); // ------------------------------------------------------------------- | ||
describe('lastly()',function(){it('calls a callback on resolution',function(){var _context;var value={};var spy=_sinon2.default.spy();return (0,_must2.default)((_context=_anyPromise2.default.resolve(value),_.lastly).call(_context,spy)).to.resolve.to.equal(value).then(function(){(0,_must2.default)(spy.callCount).to.equal(1);});});it('calls a callback on rejection',function(){var _context2;var reason={};var spy=_sinon2.default.spy();return (0,_must2.default)((_context2=_anyPromise2.default.reject(reason),_.lastly).call(_context2,spy)).to.reject.to.equal(reason).then(function(){(0,_must2.default)(spy.callCount).to.equal(1);});});}); // ------------------------------------------------------------------- | ||
describe('settle()',function(){it('works with arrays',function(){var _context3;return (_context3=[_anyPromise2.default.resolve(42),Math.PI,_anyPromise2.default.reject('fatality')],_.settle).call(_context3).then(function(_ref){var _ref2=_slicedToArray(_ref,3);var status1=_ref2[0];var status2=_ref2[1];var status3=_ref2[2];(0,_must2.default)(status1.isFulfilled()).to.equal(true);(0,_must2.default)(status2.isFulfilled()).to.equal(true);(0,_must2.default)(status3.isFulfilled()).to.equal(false); // Alias. | ||
(0,_must2.default)(status1.isResolved()).to.equal(true);(0,_must2.default)(status2.isResolved()).to.equal(true);(0,_must2.default)(status3.isResolved()).to.equal(false);(0,_must2.default)(status1.isRejected()).to.equal(false);(0,_must2.default)(status2.isRejected()).to.equal(false);(0,_must2.default)(status3.isRejected()).to.equal(true);(0,_must2.default)(status1.value()).to.equal(42);(0,_must2.default)(status2.value()).to.equal(Math.PI);(0,_must2.default)(status3.value.bind(status3)).to.throw();(0,_must2.default)(status1.reason.bind(status1)).to.throw();(0,_must2.default)(status2.reason.bind(status2)).to.throw();(0,_must2.default)(status3.reason()).to.equal('fatality');});});it('works with objects',function(){var _context4;return (_context4={a:_anyPromise2.default.resolve(42),b:Math.PI,c:_anyPromise2.default.reject('fatality')},_.settle).call(_context4).then(function(_ref3){var status1=_ref3.a;var status2=_ref3.b;var status3=_ref3.c;(0,_must2.default)(status1.isFulfilled()).to.equal(true);(0,_must2.default)(status2.isFulfilled()).to.equal(true);(0,_must2.default)(status3.isFulfilled()).to.equal(false); // Alias. | ||
describe('join()',function(){it('calls the callback once promises are resolved',function(){return (0,_.join)(Promise.resolve('foo'),Promise.resolve('bar'),function(foo,bar){(0,_must2.default)(foo).to.equal('foo');(0,_must2.default)(bar).to.equal('bar');});});it('can takes inputs in an array',function(){return (0,_.join)([Promise.resolve('foo'),Promise.resolve('bar')],function(foo,bar){(0,_must2.default)(foo).to.equal('foo');(0,_must2.default)(bar).to.equal('bar');});});it('rejects if one promise rejects',function(){return (0,_must2.default)((0,_.join)(Promise.resolve('foo'),Promise.reject('bar'),function(foo,bar){(0,_must2.default)(foo).to.equal('foo');(0,_must2.default)(bar).to.equal('bar');})).to.reject.to.equal('bar');});}); // ------------------------------------------------------------------- | ||
describe('lastly()',function(){it('calls a callback on resolution',function(){var _context;var value={};var spy=_sinon2.default.spy();return (0,_must2.default)((_context=Promise.resolve(value),_.lastly).call(_context,spy)).to.resolve.to.equal(value).then(function(){(0,_must2.default)(spy.callCount).to.equal(1);});});it('calls a callback on rejection',function(){var _context2;var reason={};var spy=_sinon2.default.spy();return (0,_must2.default)((_context2=Promise.reject(reason),_.lastly).call(_context2,spy)).to.reject.to.equal(reason).then(function(){(0,_must2.default)(spy.callCount).to.equal(1);});});}); // ------------------------------------------------------------------- | ||
describe('settle()',function(){it('works with arrays',function(){var _context3;return (_context3=[Promise.resolve(42),Math.PI,Promise.reject('fatality')],_.settle).call(_context3).then(function(_ref){var _ref2=_slicedToArray(_ref,3);var status1=_ref2[0];var status2=_ref2[1];var status3=_ref2[2];(0,_must2.default)(status1.isFulfilled()).to.equal(true);(0,_must2.default)(status2.isFulfilled()).to.equal(true);(0,_must2.default)(status3.isFulfilled()).to.equal(false); // Alias. | ||
(0,_must2.default)(status1.isResolved()).to.equal(true);(0,_must2.default)(status2.isResolved()).to.equal(true);(0,_must2.default)(status3.isResolved()).to.equal(false);(0,_must2.default)(status1.isRejected()).to.equal(false);(0,_must2.default)(status2.isRejected()).to.equal(false);(0,_must2.default)(status3.isRejected()).to.equal(true);(0,_must2.default)(status1.value()).to.equal(42);(0,_must2.default)(status2.value()).to.equal(Math.PI);(0,_must2.default)(status3.value.bind(status3)).to.throw();(0,_must2.default)(status1.reason.bind(status1)).to.throw();(0,_must2.default)(status2.reason.bind(status2)).to.throw();(0,_must2.default)(status3.reason()).to.equal('fatality');});});it('works with objects',function(){var _context4;return (_context4={a:Promise.resolve(42),b:Math.PI,c:Promise.reject('fatality')},_.settle).call(_context4).then(function(_ref3){var status1=_ref3.a;var status2=_ref3.b;var status3=_ref3.c;(0,_must2.default)(status1.isFulfilled()).to.equal(true);(0,_must2.default)(status2.isFulfilled()).to.equal(true);(0,_must2.default)(status3.isFulfilled()).to.equal(false); // Alias. | ||
(0,_must2.default)(status1.isResolved()).to.equal(true);(0,_must2.default)(status2.isResolved()).to.equal(true);(0,_must2.default)(status3.isResolved()).to.equal(false);(0,_must2.default)(status1.isRejected()).to.equal(false);(0,_must2.default)(status2.isRejected()).to.equal(false);(0,_must2.default)(status3.isRejected()).to.equal(true);(0,_must2.default)(status1.value()).to.equal(42);(0,_must2.default)(status2.value()).to.equal(Math.PI);(0,_must2.default)(status3.value.bind(status3)).to.throw();(0,_must2.default)(status1.reason.bind(status1)).to.throw();(0,_must2.default)(status2.reason.bind(status2)).to.throw();(0,_must2.default)(status3.reason()).to.equal('fatality');});});}); | ||
//# sourceMappingURL=index.spec.js.map |
{ | ||
"name": "promise-toolbox", | ||
"version": "0.1.0", | ||
"version": "0.1.1", | ||
"license": "ISC", | ||
@@ -34,3 +34,2 @@ "description": "Essential utils for promises", | ||
"dependencies": { | ||
"any-promise": "^0.1.0", | ||
"make-error": "^1.0.4" | ||
@@ -37,0 +36,0 @@ }, |
@@ -7,3 +7,2 @@ # promise-toolbox [![Build Status](https://travis-ci.org/julien-f/js-promise-toolbox.png?branch=master)](https://travis-ci.org/julien-f/js-promise-toolbox) | ||
- use the promise implementation you want (thanks to [any-promise](https://www.npmjs.com/package/any-promise)) | ||
- small (< 150 KB with all dependencies, < 5 KB with gzip) | ||
@@ -22,13 +21,16 @@ - nice with ES2015 / ES2016 syntax | ||
> The promise implementation used by this library is exposed as | ||
> `Promise`. | ||
If your environment may not natively support promises, you should use a polyfill such as [native-promise-only](https://github.com/getify/native-promise-only). | ||
On Node, if you want to use a specific promise implementation, | ||
[Bluebird](http://bluebirdjs.com/docs/why-bluebird.html) for instance | ||
to have better performance, you can override the global Promise | ||
variable: | ||
```js | ||
import { Promise } from 'promise-toolbox' | ||
Promise.resolve('foo').then(value => { | ||
console.log(value) | ||
}) | ||
global.Promise = require('bluebird') | ||
``` | ||
> Note that it should only be done at the application level, never in | ||
> a library! | ||
### Decorators | ||
@@ -35,0 +37,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1
358
57428
126
- Removedany-promise@^0.1.0
- Removedany-promise@0.1.0(transitive)