UNPKG

proxise

Version:
2 lines (1 loc) 1.29 kB
(function(){var n,e;n=function(n,e,t){return n.splice(0,n.length).map(function(n){if(n[t](e),n.timeout)return clearTimeout(n.timeout)})},(e=function(e,t){var i,r,o,u,l;return i=e instanceof Function?[e,t||0]:[t,e||0],r=i[0],o=i[1],u=[],l=function(){var n,e,t,i,l,f,c;for(e=[],t=0,i=arguments.length;t<i;++t)e.push(arguments[t]);return n=e,(l=r.apply(this,n))instanceof Promise?l:(f=null,c=o?setTimeout(function(){var n;if(f&&~(n=u.indexOf(f)))return u.splice(n,1),f.rej(new Error("timeout"))},o):null,new Promise(function(n,e){return u.push(f={res:n,rej:e,timeout:c})}))},l.resolve=function(e){return n(u,e,"res")},l.reject=function(e){return n(u,e,"rej")},l}).once=function(n,t){var i,r;return i={},r=e(function(){var e,o,u,l,f=this;for(o=[],u=0,l=arguments.length;u<l;++u)o.push(arguments[u]);return e=o,i.inited?Promise.resolve(null==t?i.val:"function"==typeof t?t():t):i.initing?void 0:(i.initing=!0,Promise.resolve().then(function(){return n.apply(f,e)}).finally(function(){return i.initing=!1}).then(function(n){return i.inited=!0,r.resolve(n=null==t?i.val=n:"function"==typeof t?t():t),n}).catch(function(n){return r.reject(n),Promise.reject(n)}))})},"undefined"!=typeof module&&null!==module?module.exports=e:"undefined"!=typeof window&&null!==window&&(window.proxise=e)}).call(this);