@aspectus/promise-proxy
Version:
Promise proxiyng mechanics to easily extend promise functionality.
6 lines • 8.77 kB
JavaScript
/*!
* promise-proxy v0.10.21
* (c) 2023 Alex Tkachenko
* Released under the MIT License.
*/
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t=t||self).PromiseProxy={})}(this,function(t){"use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function u(t,n){for(var r=0;r<n.length;r++){var e=n[r];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(t,e.key,e)}}var f=function(t){return null!=t&&"object"===n(t)&&!0===t["@@functional/placeholder"]};var i=function(r){return function t(n){return 0===arguments.length||f(n)?t:r.apply(this,arguments)}};var l=function(t,l){switch(t){case 0:return function(){return l.apply(this,arguments)};case 1:return function(t){return l.apply(this,arguments)};case 2:return function(t,n){return l.apply(this,arguments)};case 3:return function(t,n,r){return l.apply(this,arguments)};case 4:return function(t,n,r,e){return l.apply(this,arguments)};case 5:return function(t,n,r,e,u){return l.apply(this,arguments)};case 6:return function(t,n,r,e,u,o){return l.apply(this,arguments)};case 7:return function(t,n,r,e,u,o,i){return l.apply(this,arguments)};case 8:return function(t,n,r,e,u,o,i,c){return l.apply(this,arguments)};case 9:return function(t,n,r,e,u,o,i,c,a){return l.apply(this,arguments)};case 10:return function(t,n,r,e,u,o,i,c,a,f){return l.apply(this,arguments)};default:throw new Error("First argument to _arity must be a non-negative integer no greater than ten")}};var c=function(e){return function t(n,r){switch(arguments.length){case 0:return t;case 1:return f(n)?t:i(function(t){return e(n,t)});default:return f(n)&&f(r)?t:f(n)?i(function(t){return e(t,r)}):f(r)?i(function(t){return e(n,t)}):e(n,r)}}};var r=function o(i,c,a){return function(){for(var t=[],n=0,r=i,e=0;e<c.length||n<arguments.length;){var u;e<c.length&&(!f(c[e])||arguments.length<=n)?u=c[e]:(u=arguments[n],n+=1),t[e]=u,f(u)||--r,e+=1}return r<=0?a.apply(this,t):l(r,o(i,t,a))}},o=c(function(t,n){return 1===t?i(n):l(t,r(t,[],n))}),e=i(function(t){return o(t.length,t)}),a=Array.isArray||function(t){return null!=t&&0<=t.length&&"[object Array]"===Object.prototype.toString.call(t)};var s=function(t){return null!=t&&"function"==typeof t["@@transducer/step"]};function p(e,u,o){return function(){if(0===arguments.length)return o();var t=Array.prototype.slice.call(arguments,0),n=t.pop();if(!a(n)){for(var r=0;r<e.length;){if("function"==typeof n[e[r]])return n[e[r]].apply(n,t);r+=1}if(s(n))return u.apply(null,t)(n)}return o.apply(this,arguments)}}var y=function(t,n){for(var r=0,e=n.length,u=Array(e);r<e;)u[r]=t(n[r]),r+=1;return u};var h=function(t){return"[object String]"===Object.prototype.toString.call(t)},d=i(function(t){return!!a(t)||!!t&&("object"===n(t)&&(!h(t)&&(1===t.nodeType?!!t.length:0===t.length||0<t.length&&(t.hasOwnProperty(0)&&t.hasOwnProperty(t.length-1)))))}),v=function(){function t(t){this.f=t}return t.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},t.prototype["@@transducer/result"]=function(t){return t},t.prototype["@@transducer/step"]=function(t,n){return this.f(t,n)},t}();var g=function(t){return new v(t)},b=c(function(t,n){return l(t.length,function(){return t.apply(n,arguments)})});function m(t,n,r){for(var e=r.next();!e.done;){if((n=t["@@transducer/step"](n,e.value))&&n["@@transducer/reduced"]){n=n["@@transducer/value"];break}e=r.next()}return t["@@transducer/result"](n)}function $(t,n,r,e){return t["@@transducer/result"](r[e](b(t["@@transducer/step"],t),n))}var w="undefined"!=typeof Symbol?Symbol.iterator:"@@iterator";var x=function(t,n,r){if("function"==typeof t&&(t=g(t)),d(r))return function(t,n,r){for(var e=0,u=r.length;e<u;){if((n=t["@@transducer/step"](n,r[e]))&&n["@@transducer/reduced"]){n=n["@@transducer/value"];break}e+=1}return t["@@transducer/result"](n)}(t,n,r);if("function"==typeof r["fantasy-land/reduce"])return $(t,n,r,"fantasy-land/reduce");if(null!=r[w])return m(t,n,r[w]());if("function"==typeof r.next)return m(t,n,r);if("function"==typeof r.reduce)return $(t,n,r,"reduce");throw new TypeError("reduce: list must be array or iterable")},j=function(){return this.xf["@@transducer/init"]()},O=function(t){return this.xf["@@transducer/result"](t)},P=function(){function t(t,n){this.xf=n,this.f=t}return t.prototype["@@transducer/init"]=j,t.prototype["@@transducer/result"]=O,t.prototype["@@transducer/step"]=function(t,n){return this.xf["@@transducer/step"](t,this.f(n))},t}(),S=c(function(t,n){return new P(t,n)});function k(t,n){for(var r=0;r<t.length;){if(t[r]===n)return!0;r+=1}return!1}var E=function(t,n){return Object.prototype.hasOwnProperty.call(n,t)},A=Object.prototype.toString,I=function(){return"[object Arguments]"===A.call(arguments)?function(t){return"[object Arguments]"===A.call(t)}:function(t){return E("callee",t)}}(),M=!{toString:null}.propertyIsEnumerable("toString"),T=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],_=function(){return arguments.propertyIsEnumerable("length")}(),q="function"!=typeof Object.keys||_?i(function(t){if(Object(t)!==t)return[];var n,r,e=[],u=_&&I(t);for(n in t)!E(n,t)||u&&"length"===n||(e[e.length]=n);if(M)for(r=T.length-1;0<=r;)E(n=T[r],t)&&!k(e,n)&&(e[e.length]=n),--r;return e}):i(function(t){return Object(t)!==t?[]:Object.keys(t)}),F=c(p(["fantasy-land/map","map"],S,function(r,e){switch(Object.prototype.toString.call(e)){case"[object Function]":return o(e.length,function(){return r.call(this,e.apply(this,arguments))});case"[object Object]":return x(function(t,n){return t[n]=r(e[n]),t},{},q(e));default:return y(r,e)}}));function C(t,n){return function(){return n.call(this,t.apply(this,arguments))}}function L(o){return function t(r,e,u){switch(arguments.length){case 0:return t;case 1:return f(r)?t:c(function(t,n){return o(r,t,n)});case 2:return f(r)&&f(e)?t:f(r)?c(function(t,n){return o(t,e,n)}):f(e)?c(function(t,n){return o(r,t,n)}):i(function(t){return o(r,e,t)});default:return f(r)&&f(e)&&f(u)?t:f(r)&&f(e)?c(function(t,n){return o(t,n,u)}):f(r)&&f(u)?c(function(t,n){return o(t,e,n)}):f(e)&&f(u)?c(function(t,n){return o(r,t,n)}):f(r)?i(function(t){return o(t,e,u)}):f(e)?i(function(t){return o(r,t,u)}):f(u)?i(function(t){return o(r,e,t)}):o(r,e,u)}}}var W=L(x);function X(r,e){return function(){var t=arguments.length;if(0===t)return e();var n=arguments[t-1];return a(n)||"function"!=typeof n[r]?e.apply(this,arguments):n[r].apply(n,Array.prototype.slice.call(arguments,0,t-1))}}var z=i(X("tail",L(X("slice",function(t,n,r){return Array.prototype.slice.call(r,t,n)}))(1,1/0)));var B=function(){if(0===arguments.length)throw new Error("pipe requires at least one argument");return l(arguments[0].length,W(C,arguments[0],z(arguments)))},D=i(function(t){return h(t)?t.split("").reverse().join(""):Array.prototype.slice.call(t,0).reverse()});function G(t){return new N(t.$proxy||t)}function H(t){return"function"==typeof t?t:Q(t)}var J=function(){if(0===arguments.length)throw new Error("compose requires at least one argument");return B.apply(this,D(arguments))},K=e(function(t,n,r){var e=2<arguments.length&&void 0!==r?r:{};return n.$data=Object.assign({},e,n.$data),n.$chain=(n.$chain||[]).concat([{promise:n,methods:t}]),n}),N=function(){function n(t){!function(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}(this,n),this.$proxy=t,this.$data=t.$data,this.$injectMethods()}var t,r,e;return t=n,(r=[{key:"$injectMethods",value:function(){var u=this;this.$proxy.$chain.forEach(function(t){var n=t.methods;if(n){var r=function(t){if(!n.hasOwnProperty(t))return"continue";u[t]=function(){return n[t].apply(this,arguments)}};for(var e in n)r(e)}})}},{key:"$apply",value:function(t,n){return this.$update(this.$proxy[t].apply(this.$proxy,n))}},{key:"$update",value:function(t){return t.$data=this.$proxy.$data,t.$chain=this.$proxy.$chain,new this.constructor(t)}},{key:"then",value:function(){return this.$apply("then",arguments)}},{key:"catch",value:function(){return this.$apply("catch",arguments)}},{key:"finally",value:function(){return this.$apply("finally",arguments)}}])&&u(t.prototype,r),e&&u(t,e),n}(),Q=e(function(t,n){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};return K(t,n.$proxy||n,r)});function R(){return J(G,J.apply(this,F(H,arguments)))}var U=R;t.PromiseProxy=N,t.composeProxies=R,t.createProxy=U,t.createProxyExecutor=Q,t.initProxy=G,t.makeProxy=K,Object.defineProperty(t,"__esModule",{value:!0})});