p-resolvify
Version:
Handle promise rejection like resolved
2 lines (1 loc) • 801 B
JavaScript
;function n(n,r,t){return t?r?r(n):n:(n&&n.then||(n=Promise.resolve(n)),r?n.then(r):n)}var r=function(n){return n};function t(n,r){try{var t=n()}catch(n){return r(n)}return t&&t.then?t.then(void 0,r):t}function e(r,e){var o,u=e.handler,i=e.to;return o=function(){for(var e=arguments.length,o=new Array(e),c=0;c<e;c++)o[c]=arguments[c];return t((function(){return n(r.apply(void 0,o),(function(n){return i?[void 0,n]:n}))}),(function(n){var r=u(n);return i?[r]:r}))},function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];try{return Promise.resolve(o.apply(this,n))}catch(n){return Promise.reject(n)}}}function o(n,t){return t=Object.assign({handler:r,to:!1},t),"function"==typeof n?e(n,t):e((function(){return n}),t)()}o.to=function(n){return o(n,{to:!0})},module.exports=o;