UNPKG

@aspectus/resource

Version:
6 lines 9.69 kB
/*! * resource v0.10.21 * (c) 2023 Alex Tkachenko * Released under the MIT License. */ !function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((e=e||self).Resource={})}(this,function(e){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function n(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})),t.push.apply(t,n)}return t}function f(r){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?n(Object(t),!0).forEach(function(e){o(r,e,t[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):n(Object(t)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(t,e))})}return r}function l(e){return e}function i(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=e.urlGetter,r=e.middleware,n=void 0===r?l:r,u=e.config,o=void 0===u?{}:u,i=e.headers,a=void 0===i?{}:i,c=e.fetcher,s=void 0===c?null:c;return function(){var e=null!==s?s:fetch,r=n({parameters:0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},body:1<arguments.length&&void 0!==arguments[1]?arguments[1]:null,headers:a,config:o});return e(t(r.parameters),f({},r.config,{headers:r.headers,body:r.body}))}}var s=function(e,f){switch(e){case 0:return function(){return f.apply(this,arguments)};case 1:return function(e){return f.apply(this,arguments)};case 2:return function(e,r){return f.apply(this,arguments)};case 3:return function(e,r,t){return f.apply(this,arguments)};case 4:return function(e,r,t,n){return f.apply(this,arguments)};case 5:return function(e,r,t,n,u){return f.apply(this,arguments)};case 6:return function(e,r,t,n,u,o){return f.apply(this,arguments)};case 7:return function(e,r,t,n,u,o,i){return f.apply(this,arguments)};case 8:return function(e,r,t,n,u,o,i,a){return f.apply(this,arguments)};case 9:return function(e,r,t,n,u,o,i,a,c){return f.apply(this,arguments)};case 10:return function(e,r,t,n,u,o,i,a,c,s){return f.apply(this,arguments)};default:throw new Error("First argument to _arity must be a non-negative integer no greater than ten")}};function t(e,r){return function(){return r.call(this,e.apply(this,arguments))}}var p=function(e){return null!=e&&"object"===r(e)&&!0===e["@@functional/placeholder"]};var a=function(t){return function e(r){return 0===arguments.length||p(r)?e:t.apply(this,arguments)}};var c=function(n){return function e(r,t){switch(arguments.length){case 0:return e;case 1:return p(r)?e:a(function(e){return n(r,e)});default:return p(r)&&p(t)?e:p(r)?a(function(e){return n(e,t)}):p(t)?a(function(e){return n(r,e)}):n(r,t)}}};function d(o){return function e(t,n,u){switch(arguments.length){case 0:return e;case 1:return p(t)?e:c(function(e,r){return o(t,e,r)});case 2:return p(t)&&p(n)?e:p(t)?c(function(e,r){return o(e,n,r)}):p(n)?c(function(e,r){return o(t,e,r)}):a(function(e){return o(t,n,e)});default:return p(t)&&p(n)&&p(u)?e:p(t)&&p(n)?c(function(e,r){return o(e,r,u)}):p(t)&&p(u)?c(function(e,r){return o(e,n,r)}):p(n)&&p(u)?c(function(e,r){return o(t,e,r)}):p(t)?a(function(e){return o(e,n,u)}):p(n)?a(function(e){return o(t,e,u)}):p(u)?a(function(e){return o(t,n,e)}):o(t,n,u)}}}var h=Array.isArray||function(e){return null!=e&&0<=e.length&&"[object Array]"===Object.prototype.toString.call(e)};var y=function(e){return"[object String]"===Object.prototype.toString.call(e)},m=a(function(e){return!!h(e)||!!e&&("object"===r(e)&&(!y(e)&&(1===e.nodeType?!!e.length:0===e.length||0<e.length&&(e.hasOwnProperty(0)&&e.hasOwnProperty(e.length-1)))))}),g=function(){function e(e){this.f=e}return e.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},e.prototype["@@transducer/result"]=function(e){return e},e.prototype["@@transducer/step"]=function(e,r){return this.f(e,r)},e}();var v=function(e){return new g(e)},b=c(function(e,r){return s(e.length,function(){return e.apply(r,arguments)})});function w(e,r,t){for(var n=t.next();!n.done;){if((r=e["@@transducer/step"](r,n.value))&&r["@@transducer/reduced"]){r=r["@@transducer/value"];break}n=t.next()}return e["@@transducer/result"](r)}function O(e,r,t,n){return e["@@transducer/result"](t[n](b(e["@@transducer/step"],e),r))}var j="undefined"!=typeof Symbol?Symbol.iterator:"@@iterator";var k=d(function(e,r,t){if("function"==typeof e&&(e=v(e)),m(t))return function(e,r,t){for(var n=0,u=t.length;n<u;){if((r=e["@@transducer/step"](r,t[n]))&&r["@@transducer/reduced"]){r=r["@@transducer/value"];break}n+=1}return e["@@transducer/result"](r)}(e,r,t);if("function"==typeof t["fantasy-land/reduce"])return O(e,r,t,"fantasy-land/reduce");if(null!=t[j])return w(e,r,t[j]());if("function"==typeof t.next)return w(e,r,t);if("function"==typeof t.reduce)return O(e,r,t,"reduce");throw new TypeError("reduce: list must be array or iterable")});function P(t,n){return function(){var e=arguments.length;if(0===e)return n();var r=arguments[e-1];return h(r)||"function"!=typeof r[t]?n.apply(this,arguments):r[t].apply(r,Array.prototype.slice.call(arguments,0,e-1))}}var M=a(P("tail",d(P("slice",function(e,r,t){return Array.prototype.slice.call(t,e,r)}))(1,1/0)));function S(e,r){return e.order-r.order||e.index-r.index}function R(e,r){return e.then.apply(e,r)}var T=function(){if(0===arguments.length)throw new Error("pipe requires at least one argument");return s(arguments[0].length,k(t,arguments[0],M(arguments)))},x=c(function(e,r){for(var t=r,n=0;n<e.length;){if(null==t)return;t=t[e[n]],n+=1}return t}),E=c(function(e,r){return x([e],r)}),A=function(){function r(e){!function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}(this,r),this.parameters=e||{}}var e,t,n;return e=r,(t=[{key:"getResource",value:function(){return this.preparedResource||(this.preparedResource=i(this.getParameters())),this.preparedResource}},{key:"getParameters",value:function(){return this.preparedParameters||(this.preparedParameters=f({},this.parameters,{middleware:this.getMiddleware()})),this.preparedParameters}},{key:"getMiddleware",value:function(){if(this.preparedMiddleware)return this.preparedMiddleware;var e=this.parameters.middleware,r=void 0===e?[]:e;return this.preparedMiddleware=r.length?T.apply(this,r.sort(S).map(E("middleware"))):l,this.preparedMiddleware}},{key:"getTransformers",value:function(){if(this.preparedTransformers)return this.preparedTransformers;var e=this.parameters.transformers,r=void 0===e?[]:e;return this.preparedTransformers=r.sort(S).map(E("args")),this.preparedTransformers}},{key:"url",value:function(e){return new this.constructor(f({},this.parameters,{urlGetter:e}))}},{key:"fetcher",value:function(e){return new this.constructor(f({},this.parameters,{fetcher:e}))}},{key:"middleware",value:function(e,r){var t=1<arguments.length&&void 0!==r?r:500,n=this.parameters.middleware||[];return new this.constructor(f({},this.parameters,{middleware:[{middleware:e,order:t,index:n.length}].concat(n)}))}},{key:"transform",value:function(e,r,t){var n,u=2<arguments.length&&void 0!==t?t:500,o=[e],i=this.parameters.transformers||[];return n=r,"[object Function]"!==Object.prototype.toString.call(n)&&"function"!=typeof n||o.push(r),new this.constructor(f({},this.parameters,{transformers:[{args:o,order:u,index:i.length}].concat(i)}))}},{key:"merge",value:function(e,r,t){var n=2<arguments.length&&void 0!==t?t:null,u=null!==n?o({},r,n):r;return new this.constructor(f({},this.parameters,o({},e,f({},this.parameters[e],{},u))))}},{key:"config",value:function(e,r){return this.merge("config",e,r)}},{key:"headers",value:function(e,r){return this.merge("headers",e,r)}},{key:"makeRequest",value:function(){return this.getResource().apply(this,arguments)}},{key:"applyTransformers",value:function(e){return this.getTransformers().reduce(R,e)}},{key:"execute",value:function(){return this.applyTransformers(this.makeRequest.apply(this,arguments))}}])&&u(e.prototype,t),n&&u(e,n),r}();function q(r){return function(e){return f({},e,{},r)}}var D=function o(i,a,c){return function(){for(var e=[],r=0,t=i,n=0;n<a.length||r<arguments.length;){var u;n<a.length&&(!p(a[n])||arguments.length<=r)?u=a[n]:(u=arguments[r],r+=1),e[n]=u,p(u)||--t,n+=1}return t<=0?c.apply(this,e):s(t,o(i,e,c))}},C=c(function(e,r){return 1===e?a(r):s(e,D(e,[],r))}),G=a(function(e){return C(e.length,e)})(function(e,r,t){return f({},t,o({},e,r((t||{})[e])))}),_=G("config"),F=G("parameters"),J=G("headers"),N=G("body"),W=T(J(q({"Content-Type":"application/json"})),N(function(e){return null==e?e:JSON.stringify(e)})),X=(new A).config({mode:"same-origin",cache:"default",credentials:"same-origin",redirect:"follow",referrer:"client"}),z=X.config({method:"GET"}),B=X.config({method:"POST"});e.ResourceChain=A,e.baseResource=X,e.bodyMiddleware=N,e.configMiddleware=_,e.createResource=i,e.defaultsMiddleware=function(r){return function(e){return f({},r,{},e)}},e.headersMiddleware=J,e.jsonRequestMiddleware=W,e.keyMiddleware=G,e.overrideMiddleware=q,e.parametersMiddleware=F,e.receiveResource=z,e.sendResource=B,Object.defineProperty(e,"__esModule",{value:!0})});