promise-toolbox
Advanced tools
Comparing version 0.2.1 to 0.3.0
@@ -1,4 +0,4 @@ | ||
'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;var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj;}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol?"symbol":typeof obj;};exports.all=all;exports.asCallback=asCallback;exports.catchPlus=catchPlus;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;} // =================================================================== | ||
'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;var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj;}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol?"symbol":typeof obj;};exports.all=all;exports.asCallback=asCallback;exports.catchPlus=catchPlus;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;exports.unpromisify=unpromisify;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 _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(value){return value instanceof Array;};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&&typeof value[Symbol.iterator]==='function';}: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. | ||
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=void 0;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;}; // =================================================================== | ||
@@ -8,3 +8,3 @@ var isPromise=exports.isPromise=function isPromise(value){return value!=null&&typeof value.then==='function';}; // ------------------------------------------------------------------- | ||
.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:Promise.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 _wrapCall=function _wrapCall(fn,args,thisArg){try{return _wrap(fn.apply(thisArg,args));}catch(error){return Promise.reject(error);}}; // =================================================================== | ||
var _all=function _all(promises,mapFn){ // mapFn may be undefined but it's okay :) | ||
@@ -33,3 +33,3 @@ 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 | ||
// } | ||
var cancellable=exports.cancellable=function cancellable(target,name,descriptor){var fn=descriptor?descriptor.value:target;function newFn(){var reject=undefined;var cancellation=new Promise(function(_,reject_){ // eslint-disable-line promise/param-names | ||
var cancellable=exports.cancellable=function cancellable(target,name,descriptor){var fn=descriptor?descriptor.value:target;function newFn(){var reject=void 0;var cancellation=new Promise(function(_,reject_){ // eslint-disable-line promise/param-names | ||
reject=reject_;});cancellation.then(null,_noop);for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}var promise=fn.call.apply(fn,[this,cancellation].concat(args));promise.cancel=reject;return promise;}return descriptor?(descriptor.value=newFn,descriptor):newFn;}; // ------------------------------------------------------------------- | ||
@@ -43,6 +43,6 @@ var _isOperationalError=function _isOperationalError(reason){return !(reason instanceof ReferenceError||reason instanceof SyntaxError||reason instanceof TypeError);}; // See: https://github.com/petkaantonov/bluebird/blob/d8907d15f0a1997a5d3c0526cd4da5ba1b135cfa/src/util.js#L7-L30 | ||
// errors and should be handled separately. | ||
function catchPlus(){var _this=this;var n=arguments.length-1;var cb=undefined;if(n<0||typeof (cb=arguments[n])!=='function'){return this;}var predicates=undefined;if(n){predicates=new Array(n);for(var i=0;i<n;++i){predicates[i]=arguments[i];}}return _wrap(this).then(null,function(reason){if(predicates){for(var i=0;i<n;++i){if(_matchError(predicates[i],reason)){return cb(reason);}}}else if(_isOperationalError(reason)){return cb(reason);} // Forward error without throwing (perf). | ||
function catchPlus(){var _this=this;var n=arguments.length-1;var cb=void 0;if(n<0||typeof (cb=arguments[n])!=='function'){return this;}var predicates=void 0;if(n){predicates=new Array(n);for(var i=0;i<n;++i){predicates[i]=arguments[i];}}return _wrap(this).then(null,function(reason){if(predicates){for(var _i=0;_i<n;++_i){if(_matchError(predicates[_i],reason)){return cb(reason);}}}else if(_isOperationalError(reason)){return cb(reason);} // Forward error without throwing (perf). | ||
return _this;});} // ------------------------------------------------------------------- | ||
// Discouraged but sometimes necessary way to create a promise. | ||
var defer=exports.defer=function defer(){var resolve=undefined,reject=undefined;var promise=new Promise(function(resolve_,reject_){ // eslint-disable-line promise/param-names | ||
var defer=exports.defer=function defer(){var resolve=void 0,reject=void 0;var promise=new Promise(function(resolve_,reject_){ // eslint-disable-line promise/param-names | ||
resolve=resolve_;reject=reject_;});return {promise:promise,reject:reject,resolve:resolve};}; // ------------------------------------------------------------------- | ||
@@ -61,3 +61,3 @@ // Usage: promise::delay(ms) | ||
// 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 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);});} // ------------------------------------------------------------------- | ||
function join(){var n=arguments.length-1;var cb=arguments[n];var promises=void 0;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) | ||
@@ -68,4 +68,4 @@ // | ||
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([ context ]) | ||
function promisify(context){var fn=this;return _setFunctionNameAndLength(function(){var _this2=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(context||_this2,args);});},fn.name,fn.length&&fn.length-1);}var _DEFAULT_PALL_MAPPER=function _DEFAULT_PALL_MAPPER(name,fn){return !(_endsWith(name,'Sync')||_endsWith(name,'Async'))&&name;}; // Usage: obj::promisifyAll([ opts ]) | ||
function promisifyAll(){var _this3=this;var _ref=arguments.length<=0||arguments[0]===undefined?{}:arguments[0];var _ref$mapper=_ref.mapper;var mapper=_ref$mapper===undefined?_DEFAULT_PALL_MAPPER:_ref$mapper;var _ref$target=_ref.target;var target=_ref$target===undefined?{}:_ref$target;var _ref$context=_ref.context;var context=_ref$context===undefined?this:_ref$context;_forIn(this,function(value,name){var newName=undefined;if(typeof value==='function'&&(newName=mapper(name,value,_this3))){target[newName]=promisify.call(value,context);}});return target;} // ------------------------------------------------------------------- | ||
function promisify(context){var fn=this;return _setFunctionNameAndLength(function(){var _this2=this;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(context||_this2,args);});},fn.name,fn.length&&fn.length-1);}var _DEFAULT_PALL_MAPPER=function _DEFAULT_PALL_MAPPER(name,fn){return !(_endsWith(name,'Sync')||_endsWith(name,'Async'))&&name;}; // Usage: obj::promisifyAll([ opts ]) | ||
function promisifyAll(){var _this3=this;var _ref=arguments.length<=0||arguments[0]===undefined?{}:arguments[0];var _ref$mapper=_ref.mapper;var mapper=_ref$mapper===undefined?_DEFAULT_PALL_MAPPER:_ref$mapper;var _ref$target=_ref.target;var target=_ref$target===undefined?{}:_ref$target;var _ref$context=_ref.context;var context=_ref$context===undefined?this:_ref$context;_forIn(this,function(value,name){var newName=void 0;if(typeof value==='function'&&(newName=mapper(name,value,_this3))){target[newName]=promisify.call(value,context);}});return target;} // ------------------------------------------------------------------- | ||
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 | ||
@@ -90,3 +90,5 @@ // settled. Its fulfillment value is an object that implements the | ||
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 _this5=this;return new Promise(function(resolve,reject){var handle=setTimeout(function(){handle=null;reject(new TimeoutError());if(typeof _this5.cancel==='function'){_this5.cancel();}},ms);_wrap(_this5).then(function(value){handle!==null&&clearTimeout(handle);resolve(value);},function(reason){handle!==null&&clearTimeout(handle);reject(reason);});});} | ||
function timeout(ms){var _this5=this;return new Promise(function(resolve,reject){var handle=setTimeout(function(){handle=null;reject(new TimeoutError());if(typeof _this5.cancel==='function'){_this5.cancel();}},ms);_wrap(_this5).then(function(value){handle!==null&&clearTimeout(handle);resolve(value);},function(reason){handle!==null&&clearTimeout(handle);reject(reason);});});} // ------------------------------------------------------------------- | ||
// Usage: fn::unpromisify() | ||
function unpromisify(){var fn=this;return _setFunctionNameAndLength(function(){var n=arguments.length-1;var cb=void 0;if(n<0||typeof (cb=arguments[n])!=='function'){throw new Error('missing callback');}var args=new Array(n);for(var i=0;i<n;++i){args[i]=arguments[i];}_wrapCall(fn,args,this).then(function(result){return cb(null,result);},function(reason){return cb(reason);});},fn.name,fn.length+1);} | ||
//# sourceMappingURL=index.js.map |
@@ -14,3 +14,4 @@ '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 _makeError=require('make-error');var _makeError2=_interopRequireDefault(_makeError);var _sinon=require('sinon');var _sinon2=_interopRequireDefault(_sinon);var _=require('./');function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};} // =================================================================== | ||
(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');});});}); // ------------------------------------------------------------------- | ||
describe('timeout()',function(){it('rejects a promise if not settled after a delay',function(){var _context9;return (0,_must2.default)((_context9=new Promise(function(){}),_.timeout).call(_context9,10)).to.reject.to.error(_.TimeoutError);});it('forwards the settlement if settled before a delay',function(){var _context10;return Promise.all([(0,_must2.default)((_context10=Promise.resolve('value'),_.timeout).call(_context10,10)).to.resolve.to.equal('value'),(0,_must2.default)((_context10=Promise.reject('reason'),_.timeout).call(_context10,10)).to.reject.to.equal('reason')]);});}); | ||
describe('timeout()',function(){it('rejects a promise if not settled after a delay',function(){var _context9;return (0,_must2.default)((_context9=new Promise(function(){}),_.timeout).call(_context9,10)).to.reject.to.error(_.TimeoutError);});it('forwards the settlement if settled before a delay',function(){var _context10;return Promise.all([(0,_must2.default)((_context10=Promise.resolve('value'),_.timeout).call(_context10,10)).to.resolve.to.equal('value'),(0,_must2.default)((_context10=Promise.reject('reason'),_.timeout).call(_context10,10)).to.reject.to.equal('reason')]);});}); // ------------------------------------------------------------------- | ||
describe('unpromisify()',function(){it('forwards the result',function(done){var fn=_.unpromisify.call(function(){return Promise.resolve('foo');});fn(function(error,result){(0,_must2.default)(error).to.not.exist();(0,_must2.default)(result).to.equal('foo');done();});});it('forwards the error',function(done){var fn=_.unpromisify.call(function(){return Promise.reject('foo');});fn(function(error){(0,_must2.default)(error).to.equal('foo');done();});});}); | ||
//# sourceMappingURL=index.spec.js.map |
{ | ||
"name": "promise-toolbox", | ||
"version": "0.2.1", | ||
"version": "0.3.0", | ||
"license": "ISC", | ||
@@ -5,0 +5,0 @@ "description": "Essential utils for promises", |
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
78798
162