diff --git a/dist/bundle/wretch.js b/dist/bundle/wretch.js index efb1ebc..2e5514d 100644 --- a/dist/bundle/wretch.js +++ b/dist/bundle/wretch.js @@ -1,2 +1,2 @@ -!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):t.wretch=r()}(this,function(){"use strict";const t=Object.assign||function(t){for(var r,e=1;e0)&&(e(n.reverse()[0]),o.clearMeasures(r),i.callbacks.delete(r),i.callbacks.size<1&&(i.observer.disconnect(),o.clearResourceTimings&&o.clearResourceTimings()),!0)},n=function(t,r){return!i.observer&&t&&r&&(i.observer=new r(function(r){i.callbacks.forEach(function(e,n){o(r,n,e,t)})}),t.clearResourceTimings&&t.clearResourceTimings()),i.observer},i={callbacks:new Map,observer:null,observe:function(t,r){if(t&&r){var s=e.polyfill("performance",!1),u=e.polyfill("PerformanceObserver",!1);n(s,u)&&(o(s,t,r,s)||(i.callbacks.size<1&&i.observer.observe({entryTypes:["resource","measure"]}),i.callbacks.set(t,r)))}}},s=function(t){return function(o){return void 0===o&&(o=new Map),function(n){return function(s){void 0===s&&(s={});var u=r(e.defaults,s),c=e.polyfill("AbortController",!1,!0);!u.signal&&c&&(u.signal=c.signal);var l=e.polyfill("fetch")(t,u),f=l.then(function(t){return t.ok?t:t[e.errorType||"text"]().then(function(r){var o=new Error(r);throw o[e.errorType]=r,o.status=t.status,o.response=t,o})}),a=function(t){return t.catch(function(t){if(o.has(t.status))o.get(t.status)(t);else{if(!o.has(t.name))throw t;o.get(t.name)(t)}})},p=function(t){return function(r){return a(t?f.then(function(r){return r&&r[t]()}).then(function(t){return t&&r&&r(t)||t}):f.then(function(t){return t&&r&&r(t)||t}))}},h={res:p(null),json:p("json"),blob:p("blob"),formData:p("formData"),arrayBuffer:p("arrayBuffer"),text:p("text"),perfs:function(t){return l.then(function(r){return i.observe(r.url,t)}),h},setTimeout:function(t,r){return void 0===r&&(r=c),setTimeout(function(){return r.abort()},t),h},controller:function(){return[c,h]},error:function(t,r){return o.set(t,r),h},badRequest:function(t){return h.error(400,t)},unauthorized:function(t){return h.error(401,t)},forbidden:function(t){return h.error(403,t)},notFound:function(t){return h.error(404,t)},timeout:function(t){return h.error(408,t)},internalError:function(t){return h.error(500,t)},onAbort:function(t){return h.error("AbortError",t)}};return n.reduce(function(t,r){return r(t)},h)}}}},u=function(){function o(t,r,e,o){void 0===r&&(r={}),void 0===e&&(e=new Map),void 0===o&&(o=[]),this._url=t,this._options=r,this._catchers=e,this._resolvers=o}return o.factory=function(t,r){return void 0===t&&(t=""),void 0===r&&(r={}),new o(t,r)},o.prototype.selfFactory=function(t){var r=void 0===t?{}:t,e=r.url,n=void 0===e?this._url:e,i=r.options,s=void 0===i?this._options:i,u=r.catchers,c=void 0===u?this._catchers:u,l=r.resolvers;return new o(n,s,c,void 0===l?this._resolvers:l)},o.prototype.defaults=function(t,o){return void 0===o&&(o=!1),e.defaults=o?e.defaults=r(e.defaults,t):t,this},o.prototype.errorType=function(t){return e.errorType=t,this},o.prototype.polyfills=function(r){return e.polyfills=t({},e.polyfills,r),this},o.prototype.url=function(t,r){return void 0===r&&(r=!1),r?this.selfFactory({url:t}):this.selfFactory({url:this._url+t})},o.prototype.options=function(t,e){return void 0===e&&(e=!0),this.selfFactory({options:e?r(this._options,t):t})},o.prototype.query=function(t){return this.selfFactory({url:c(this._url,t)})},o.prototype.headers=function(t){return this.selfFactory({options:r(this._options,{headers:t})})},o.prototype.accept=function(t){return this.headers({Accept:t})},o.prototype.content=function(t){return this.headers({"Content-Type":t})},o.prototype.auth=function(t){return this.headers({Authorization:t})},o.prototype.catcher=function(t,r){var e=new Map(this._catchers);return e.set(t,r),this.selfFactory({catchers:e})},o.prototype.signal=function(r){return this.selfFactory({options:t({},this._options,{signal:r.signal})})},o.prototype.resolve=function(t,r){return void 0===r&&(r=!1),this.selfFactory({resolvers:r?[t]:this._resolvers.concat([t])})},o.prototype.get=function(t){return void 0===t&&(t={}),s(this._url)(this._catchers)(this._resolvers)(r(t,this._options))},o.prototype.delete=function(e){return void 0===e&&(e={}),s(this._url)(this._catchers)(this._resolvers)(t({},r(e,this._options),{method:"DELETE"}))},o.prototype.put=function(e){return void 0===e&&(e={}),s(this._url)(this._catchers)(this._resolvers)(t({},r(e,this._options),{method:"PUT"}))},o.prototype.post=function(e){return void 0===e&&(e={}),s(this._url)(this._catchers)(this._resolvers)(t({},r(e,this._options),{method:"POST"}))},o.prototype.patch=function(e){return void 0===e&&(e={}),s(this._url)(this._catchers)(this._resolvers)(t({},r(e,this._options),{method:"PATCH"}))},o.prototype.head=function(e){return void 0===e&&(e={}),s(this._url)(this._catchers)(this._resolvers)(t({},r(e,this._options),{method:"HEAD"}))},o.prototype.opts=function(e){return void 0===e&&(e={}),s(this._url)(this._catchers)(this._resolvers)(t({},r(e,this._options),{method:"OPTIONS"}))},o.prototype.body=function(r){return this.selfFactory({options:t({},this._options,{body:r})})},o.prototype.json=function(t){return this.content("application/json").body(JSON.stringify(t))},o.prototype.formData=function(t){return this.body(l(t))},o.prototype.formUrl=function(t){return this.body("string"==typeof t?t:f(t)).content("application/x-www-form-urlencoded")},o}(),c=function(t,r){var o=e.polyfill("URLSearchParams",!0,!0),n=t.indexOf("?");for(var i in r)if(r[i]instanceof Array)for(var s=0,u=r[i];s0)&&(e(n.reverse()[0]),o.clearMeasures(r),i.callbacks.delete(r),i.callbacks.size<1&&(i.observer.disconnect(),o.clearResourceTimings&&o.clearResourceTimings()),!0)},n=function(t,r){return!i.observer&&t&&r&&(i.observer=new r(function(r){i.callbacks.forEach(function(e,n){o(r,n,e,t)})}),t.clearResourceTimings&&t.clearResourceTimings()),i.observer},i={callbacks:new Map,observer:null,observe:function(t,r){if(t&&r){var s=e.polyfill("performance",!1),u=e.polyfill("PerformanceObserver",!1);n(s,u)&&(o(s,t,r,s)||(i.callbacks.size<1&&i.observer.observe({entryTypes:["resource","measure"]}),i.callbacks.set(t,r)))}}},s=function(t){return function(o){return void 0===o&&(o=new Map),function(n){return function(s){void 0===s&&(s={});var u=r(e.defaults,s),c=e.polyfill("AbortController",!1,!0);!u.signal&&c&&(u.signal=c.signal);var l=e.polyfill("fetch")(t,u),f=l.then(function(t){return t.ok?t:t[e.errorType||"text"]().then(function(r){var o=new Error(r);throw o[e.errorType]=r,o.status=t.status,o.response=t,o})}),a=function(t){return t.catch(function(t){if(o.has(t.status))o.get(t.status)(t);else{if(!o.has(t.name))throw t;o.get(t.name)(t)}})},p=function(t){return function(r){return a(t?f.then(function(r){return r&&r[t]()}).then(function(t){return t&&r&&r(t)||t}):f.then(function(t){return t&&r&&r(t)||t}))}},h={res:p(null),json:p("json"),blob:p("blob"),formData:p("formData"),arrayBuffer:p("arrayBuffer"),text:p("text"),perfs:function(t){return l.then(function(r){return i.observe(r.url,t)}),h},setTimeout:function(t,r){return void 0===r&&(r=c),setTimeout(function(){return r.abort()},t),h},controller:function(){return[c,h]},error:function(t,r){return o.set(t,r),h},badRequest:function(t){return h.error(400,t)},unauthorized:function(t){return h.error(401,t)},forbidden:function(t){return h.error(403,t)},notFound:function(t){return h.error(404,t)},timeout:function(t){return h.error(408,t)},internalError:function(t){return h.error(500,t)},onAbort:function(t){return h.error("AbortError",t)}};return n.reduce(function(t,r){return r(t)},h)}}}},u=function(){function o(t,r,e,o){void 0===e&&(e=new Map),void 0===o&&(o=[]),this._url=t,this._options=r,this._catchers=e,this._resolvers=o}return o.factory=function(t,r){return void 0===t&&(t=""),void 0===r&&(r={}),new o(t,r)},o.prototype.selfFactory=function(t){var r=void 0===t?{}:t,e=r.url,n=void 0===e?this._url:e,i=r.options,s=void 0===i?this._options:i,u=r.catchers,c=void 0===u?this._catchers:u,l=r.resolvers;return new o(n,s,c,void 0===l?this._resolvers:l)},o.prototype.defaults=function(t,o){return void 0===o&&(o=!1),e.defaults=o?e.defaults=r(e.defaults,t):t,this},o.prototype.errorType=function(t){return e.errorType=t,this},o.prototype.polyfills=function(r){return e.polyfills=t({},e.polyfills,r),this},o.prototype.url=function(t,r){return void 0===r&&(r=!1),r?this.selfFactory({url:t}):this.selfFactory({url:this._url+t})},o.prototype.options=function(t,e){return void 0===e&&(e=!0),this.selfFactory({options:e?r(this._options,t):t})},o.prototype.query=function(t){return this.selfFactory({url:c(this._url,t)})},o.prototype.headers=function(t){return this.selfFactory({options:r(this._options,{headers:t})})},o.prototype.accept=function(t){return this.headers({Accept:t})},o.prototype.content=function(t){return this.headers({"Content-Type":t})},o.prototype.auth=function(t){return this.headers({Authorization:t})},o.prototype.catcher=function(t,r){var e=new Map(this._catchers);return e.set(t,r),this.selfFactory({catchers:e})},o.prototype.signal=function(r){return this.selfFactory({options:t({},this._options,{signal:r.signal})})},o.prototype.resolve=function(t,r){return void 0===r&&(r=!1),this.selfFactory({resolvers:r?[t]:this._resolvers.concat([t])})},o.prototype.get=function(t){return void 0===t&&(t={}),s(this._url)(this._catchers)(this._resolvers)(r(t,this._options))},o.prototype.delete=function(e){return void 0===e&&(e={}),s(this._url)(this._catchers)(this._resolvers)(t({},r(e,this._options),{method:"DELETE"}))},o.prototype.put=function(e){return void 0===e&&(e={}),s(this._url)(this._catchers)(this._resolvers)(t({},r(e,this._options),{method:"PUT"}))},o.prototype.post=function(e){return void 0===e&&(e={}),s(this._url)(this._catchers)(this._resolvers)(t({},r(e,this._options),{method:"POST"}))},o.prototype.patch=function(e){return void 0===e&&(e={}),s(this._url)(this._catchers)(this._resolvers)(t({},r(e,this._options),{method:"PATCH"}))},o.prototype.head=function(e){return void 0===e&&(e={}),s(this._url)(this._catchers)(this._resolvers)(t({},r(e,this._options),{method:"HEAD"}))},o.prototype.opts=function(e){return void 0===e&&(e={}),s(this._url)(this._catchers)(this._resolvers)(t({},r(e,this._options),{method:"OPTIONS"}))},o.prototype.body=function(r){return this.selfFactory({options:t({},this._options,{body:r})})},o.prototype.json=function(t){return this.content("application/json").body(JSON.stringify(t))},o.prototype.formData=function(t){return this.body(l(t))},o.prototype.formUrl=function(t){return this.body("string"==typeof t?t:f(t)).content("application/x-www-form-urlencoded")},o}(),c=function(t,r){var o=e.polyfill("URLSearchParams",!0,!0),n=t.indexOf("?");for(var i in r)if(r[i]instanceof Array)for(var s=0,u=r[i];s {\n const matches = entries.getEntriesByName(name)\n if(matches && matches.length > 0) {\n callback(matches.reverse()[0])\n _performance.clearMeasures(name)\n perfs.callbacks.delete(name)\n\n if(perfs.callbacks.size < 1) {\n perfs.observer.disconnect()\n if(_performance.clearResourceTimings) {\n _performance.clearResourceTimings()\n }\n }\n return true\n }\n return false\n}\n\nconst lazyObserver = (_performance, _observer) => {\n if(!perfs.observer && _performance && _observer) {\n perfs.observer = new _observer(entries => {\n perfs.callbacks.forEach((callback, name) => {\n onMatch(entries, name, callback, _performance)\n })\n })\n if(_performance.clearResourceTimings) _performance.clearResourceTimings()\n }\n return perfs.observer\n}\n\nconst perfs = {\n callbacks: new Map(),\n observer: null,\n observe: (name, callback) => {\n if(!name || !callback)\n return\n\n const _performance = conf.polyfill(\"performance\", false)\n const _observer = conf.polyfill(\"PerformanceObserver\", false)\n\n if(!lazyObserver(_performance, _observer))\n return\n\n if(!onMatch(_performance, name, callback, _performance)) {\n if(perfs.callbacks.size < 1)\n perfs.observer.observe({ entryTypes: [\"resource\", \"measure\"] })\n perfs.callbacks.set(name, callback)\n }\n\n }\n}\n\nexport default perfs\n","import { mix } from \"./mix\"\nimport conf from \"./config\"\nimport perfs from \"./perfs\"\n\nexport type WretcherError = Error & { status: number, response: Response, text?: string, json?: any }\nexport type ResponseChain = {\n // Response types\n res: (cb?: (type: Response) => Result) => Promise,\n json: (cb?: (type: {[key: string]: any}) => Result) => Promise,\n blob: (cb?: (type: Blob) => Result) => Promise,\n formData: (cb?: (type: FormData) => Result) => Promise,\n arrayBuffer: (cb?: (type: ArrayBuffer) => Result) => Promise,\n text: (cb?: (type: string) => Result) => Promise,\n // Extras\n perfs: (cb?: (type: any) => void) => ResponseChain,\n setTimeout: (time: number, controller: any) => ResponseChain,\n controller: () => [any, ResponseChain],\n // Catchers\n error: (code: (number | string), cb: any) => ResponseChain,\n badRequest: (cb: (error: WretcherError) => void) => ResponseChain,\n unauthorized: (cb: (error: WretcherError) => void) => ResponseChain,\n forbidden: (cb: (error: WretcherError) => void) => ResponseChain,\n notFound: (cb: (error: WretcherError) => void) => ResponseChain,\n timeout: (cb: (error: WretcherError) => void) => ResponseChain,\n internalError: (cb: (error: WretcherError) => void) => ResponseChain,\n onAbort: (cb: (error: Error) => void) => ResponseChain\n}\n\nexport const resolver = url =>\n (catchers: Map void> = new Map()) =>\n (resolvers: Array<(chain: ResponseChain) => ResponseChain | Promise>) =>\n (opts = {}) => {\n type TypeParser = (funName: string | null) => (cb?: (type: Type) => Result) => Promise\n\n const finalOpts = mix(conf.defaults, opts)\n const fetchController = conf.polyfill(\"AbortController\", false, true)\n if(!finalOpts[\"signal\"] && fetchController) {\n finalOpts[\"signal\"] = fetchController.signal\n }\n\n const req = conf.polyfill(\"fetch\")(url, finalOpts)\n const wrapper: Promise = req.then(response => {\n if (!response.ok) {\n return response[conf.errorType || \"text\"]().then(_ => {\n const err = new Error(_)\n err[conf.errorType] = _\n err[\"status\"] = response.status\n err[\"response\"] = response\n throw err\n })\n }\n return response\n })\n\n const doCatch = (promise: Promise): Promise => {\n return promise.catch(err => {\n if(catchers.has(err.status))\n catchers.get(err.status)(err)\n else if(catchers.has(err.name))\n catchers.get(err.name)(err)\n else\n throw err\n })\n }\n const wrapTypeParser: TypeParser = (funName) => (cb) => funName ?\n doCatch(wrapper.then(_ => _ && _[funName]()).then(_ => _ && cb && cb(_) || _)) :\n doCatch(wrapper.then(_ => _ && cb && cb(_) || _))\n\n const responseChain: ResponseChain = {\n /**\n * Retrieves the raw result as a promise.\n */\n res: wrapTypeParser(null),\n /**\n * Retrieves the result as a parsed JSON object.\n */\n json: wrapTypeParser(\"json\"),\n /**\n * Retrieves the result as a Blob object.\n */\n blob: wrapTypeParser(\"blob\"),\n /**\n * Retrieves the result as a FormData object.\n */\n formData: wrapTypeParser(\"formData\"),\n /**\n * Retrieves the result as an ArrayBuffer object.\n */\n arrayBuffer: wrapTypeParser(\"arrayBuffer\"),\n /**\n * Retrieves the result as a string.\n */\n text: wrapTypeParser(\"text\"),\n /**\n * Performs a callback on the API performance timings of the request.\n *\n * Warning: Still experimental on browsers and node.js\n */\n perfs: cb => {\n req.then(res => perfs.observe(res.url, cb))\n return responseChain\n },\n /**\n * Aborts the request after a fixed time.\n *\n * @param time Time in milliseconds\n * @param controller A custom controller\n */\n setTimeout: (time, controller = fetchController) => {\n setTimeout(() => controller.abort(), time)\n return responseChain\n },\n /**\n * Returns the automatically generated AbortController alongside the current wretch response as a pair.\n */\n controller: () => [ fetchController, responseChain ],\n /**\n * Catches an http response with a specific error code or name and performs a callback.\n */\n error(errorId, cb) {\n catchers.set(errorId, cb)\n return responseChain\n },\n /**\n * Catches a bad request (http code 400) and performs a callback.\n */\n badRequest: cb => responseChain.error(400, cb),\n /**\n * Catches an unauthorized request (http code 401) and performs a callback.\n */\n unauthorized: cb => responseChain.error(401, cb),\n /**\n * Catches a forbidden request (http code 403) and performs a callback.\n */\n forbidden: cb => responseChain.error(403, cb),\n /**\n * Catches a \"not found\" request (http code 404) and performs a callback.\n */\n notFound: cb => responseChain.error(404, cb),\n /**\n * Catches a timeout (http code 408) and performs a callback.\n */\n timeout: cb => responseChain.error(408, cb),\n /**\n * Catches an internal server error (http code 500) and performs a callback.\n */\n internalError: cb => responseChain.error(500, cb),\n /**\n * Catches an AbortError and performs a callback.\n */\n onAbort: cb => responseChain.error(\"AbortError\", cb)\n }\n\n return resolvers.reduce((chain, r) => r(chain), responseChain)\n}\n","import { mix } from \"./mix\"\nimport conf from \"./config\"\nimport { resolver, WretcherError, ResponseChain } from \"./resolver\"\n\n/**\n * The Wretcher class used to perform easy fetch requests.\n *\n * Immutability : almost every method of this class return a fresh Wretcher object.\n */\nexport class Wretcher {\n\n protected constructor(\n private _url: string,\n private _options: RequestInit = {},\n private _catchers: Map void> = new Map(),\n private _resolvers: Array<(resolver: ResponseChain) => any> = []) {}\n\n static factory(url = \"\", opts: RequestInit = {}) { return new Wretcher(url, opts) }\n private selfFactory({ url = this._url, options = this._options, catchers = this._catchers, resolvers = this._resolvers } = {}) {\n return new Wretcher(url, options, catchers, resolvers)\n }\n\n /**\n * Sets the default fetch options used for every subsequent fetch call.\n * @param opts New default options\n * @param mixin If true, mixes in instead of replacing the existing options\n */\n defaults(opts: RequestInit, mixin = false) {\n conf.defaults = mixin ? conf.defaults = mix(conf.defaults, opts) : opts\n return this\n }\n\n /**\n * Sets the method (text, json ...) used to parse the data contained in the response body in case of an HTTP error.\n *\n * Persists for every subsequent requests.\n *\n * Default is \"text\".\n */\n errorType(method: \"text\" | \"json\") {\n conf.errorType = method\n return this\n }\n\n /**\n * Sets the non-global polyfills which will be used for every subsequent calls.\n *\n * Needed for libraries like [fetch-ponyfill](https://github.com/qubyte/fetch-ponyfill).\n *\n * @param polyfills An object containing the polyfills.\n */\n polyfills(polyfills: Partial) {\n conf.polyfills = { ...conf.polyfills, ...polyfills}\n return this\n }\n\n /**\n * Returns a new Wretcher object with the argument url appended and the same options.\n * @param url String url\n * @param replace Boolean If true, replaces the current url instead of appending\n */\n url(url: string, replace = false) {\n return replace ? this.selfFactory({ url }) : this.selfFactory({ url: this._url + url })\n }\n\n /**\n * Returns a new Wretcher object with the same url and new options.\n * @param options New options\n * @param mixin If true, mixes in instead of replacing the existing options\n */\n options(options: RequestInit, mixin = true) {\n return this.selfFactory({ options: mixin ? mix(this._options, options) : options })\n }\n\n /**\n * Converts a javascript object to query parameters,\n * then appends this query string to the current url.\n *\n * ```\n * let w = wretch(\"http://example.com\") // url is http://example.com\n * w = w.query({ a: 1, b : 2 }) // url is now http://example.com?a=1&b=2\n * ```\n *\n * @param qp An object which will be converted.\n */\n query(qp: object) {\n return this.selfFactory({ url: appendQueryParams(this._url, qp) })\n }\n\n /**\n * Set request headers.\n * @param headerValues An object containing header keys and values\n */\n headers(headerValues: { [headerName: string]: any }) {\n return this.selfFactory({ options: mix(this._options, { headers: headerValues }) })\n }\n\n /**\n * Shortcut to set the \"Accept\" header.\n * @param headerValue Header value\n */\n accept(headerValue: string) {\n return this.headers({ Accept : headerValue })\n }\n\n /**\n * Shortcut to set the \"Content-Type\" header.\n * @param headerValue Header value\n */\n content(headerValue: string) {\n return this.headers({ \"Content-Type\" : headerValue })\n }\n\n /**\n * Shortcut to set the \"Authorization\" header.\n * @param headerValue Header value\n */\n auth(headerValue: string) {\n return this.headers({ Authorization: headerValue })\n }\n\n /**\n * Adds a default catcher which will be called on every subsequent request error when the error code matches.\n * @param errorId Error code or name\n * @param catcher: The catcher method\n */\n catcher(errorId: number | string, catcher: (error: WretcherError) => void) {\n const newMap = new Map(this._catchers)\n newMap.set(errorId, catcher)\n return this.selfFactory({ catchers: newMap })\n }\n\n /**\n * Associates a custom signal with the request.\n * @param controller : An AbortController\n */\n signal(controller: any) {\n return this.selfFactory({ options: { ...this._options, signal: controller.signal } as any })\n }\n\n /**\n * Program a resolver to perform response chain tasks automatically.\n * @param doResolve : Resolver callback\n */\n resolve(doResolve: (chain: ResponseChain) => ResponseChain | Promise, clear: boolean = false) {\n return this.selfFactory({ resolvers: clear ? [ doResolve ] : [ ...this._resolvers, doResolve ]})\n }\n\n /**\n * Performs a get request.\n */\n get(opts = {}) {\n return resolver(this._url)(this._catchers)(this._resolvers)(mix(opts, this._options))\n }\n /**\n * Performs a delete request.\n */\n delete(opts = {}) {\n return resolver(this._url)(this._catchers)(this._resolvers)({ ...mix(opts, this._options), method: \"DELETE\" })\n }\n /**\n * Performs a put request.\n */\n put(opts = {}) {\n return resolver(this._url)(this._catchers)(this._resolvers)({ ...mix(opts, this._options), method: \"PUT\" })\n }\n /**\n * Performs a post request.\n */\n post(opts = {}) {\n return resolver(this._url)(this._catchers)(this._resolvers)({ ...mix(opts, this._options), method: \"POST\" })\n }\n /**\n * Performs a patch request.\n */\n patch(opts = {}) {\n return resolver(this._url)(this._catchers)(this._resolvers)({ ...mix(opts, this._options), method: \"PATCH\" })\n }\n /**\n * Performs a head request.\n */\n head(opts = {}) {\n return resolver(this._url)(this._catchers)(this._resolvers)({ ...mix(opts, this._options), method: \"HEAD\" })\n }\n /**\n * Performs an options request\n */\n opts(opts = {}) {\n return resolver(this._url)(this._catchers)(this._resolvers)({ ...mix(opts, this._options), method: \"OPTIONS\" })\n }\n\n /**\n * Sets the request body with any content.\n * @param contents The body contents\n */\n body(contents: any) {\n return this.selfFactory({ options: { ...this._options, body: contents }})\n }\n /**\n * Sets the content type header, stringifies an object and sets the request body.\n * @param jsObject An object which will be serialized into a JSON\n */\n json(jsObject: object) {\n return this.content(\"application/json\").body(JSON.stringify(jsObject))\n }\n /**\n * Converts the javascript object to a FormData and sets the request body.\n * @param formObject An object which will be converted to a FormData\n */\n formData(formObject: object) {\n return this.body(convertFormData(formObject))\n }\n /**\n * Converts the input to an url encoded string and sets the content-type header and body.\n * If the input argument is already a string, skips the conversion part.\n *\n * @param input An object to convert into an url encoded string or an already encoded string\n */\n formUrl(input: (object | string)) {\n return this\n .body(typeof input === \"string\" ? input : convertFormUrl(input))\n .content(\"application/x-www-form-urlencoded\")\n }\n}\n\n// Internal helpers\n\nconst appendQueryParams = (url: string, qp: object) => {\n const usp = conf.polyfill(\"URLSearchParams\", true, true)\n const index = url.indexOf(\"?\")\n for(const key in qp) {\n if(qp[key] instanceof Array) {\n for(const val of qp[key])\n usp.append(key, val)\n } else {\n usp.append(key, qp[key])\n }\n }\n return ~index ?\n `${url.substring(0, index)}?${usp.toString()}` :\n `${url}?${usp.toString()}`\n}\n\nconst convertFormData = (formObject: object) => {\n const formData = conf.polyfill(\"FormData\", true, true)\n for(const key in formObject) {\n if(formObject[key] instanceof Array) {\n for(const item of formObject[key])\n formData.append(key + \"[]\", item)\n } else {\n formData.append(key, formObject[key])\n }\n }\n\n return formData\n}\n\nconst convertFormUrl = (formObject: object) => {\n return Object.keys(formObject)\n .map(key =>\n encodeURIComponent(key) + \"=\" +\n `${ encodeURIComponent(typeof formObject[key] === \"object\" ? JSON.stringify(formObject[key]) : formObject[key]) }`)\n .join(\"&\")\n}\n","import { Wretcher } from \"./wretcher\"\n\n/**\n * Return a fresh Wretcher instance.\n */\nexport default Wretcher.factory\n"],"names":["mix","one","two","mergeArrays","clone","prop","hasOwnProperty","Array","config","defaults","errorType","polyfills","fetch","FormData","URLSearchParams","performance","PerformanceObserver","AbortController","polyfill","p","doThrow","instance","_i","args","res","this","self","global","Error","onMatch","entries","name","callback","_performance","matches","getEntriesByName","length","reverse","clearMeasures","perfs","callbacks","delete","size","observer","disconnect","clearResourceTimings","lazyObserver","_observer","forEach","Map","observe","conf","entryTypes","set","resolver","url","catchers","resolvers","opts","finalOpts","fetchController","signal","req","wrapper","then","response","ok","_","err","status","doCatch","promise","catch","has","get","wrapTypeParser","funName","cb","responseChain","json","blob","formData","arrayBuffer","text","setTimeout","time","controller","abort","error","errorId","badRequest","unauthorized","forbidden","notFound","timeout","internalError","onAbort","reduce","chain","r","_url","_options","_catchers","_resolvers","Wretcher","_a","_b","_c","_d","options","_e","_f","mixin","method","replace","selfFactory","qp","appendQueryParams","headerValues","headers","headerValue","Accept","Content-Type","Authorization","catcher","newMap","__assign","doResolve","clear","contents","body","jsObject","content","JSON","stringify","formObject","convertFormData","input","convertFormUrl","usp","index","indexOf","key","val","append","substring","toString","item","Object","keys","map","encodeURIComponent","join","factory"],"mappings":"0VAAO,IAAMA,EAAM,SAASC,EAAaC,EAAaC,GAClD,gBADkDA,OAC9CF,IAAQC,GAAsB,iBAARD,GAAmC,iBAARC,EACjD,OAAOD,EAEX,IAAMG,OAAaH,GACnB,IAAI,IAAMI,KAAQH,EACXA,EAAII,eAAeD,KACfH,EAAIG,aAAiBE,OAASN,EAAII,aAAiBE,MAClDH,EAAMC,GAAQF,EAAmBF,EAAII,UAAUH,EAAIG,IAAUH,EAAIG,GACtC,iBAAdH,EAAIG,IAA2C,iBAAdJ,EAAII,GAClDD,EAAMC,GAAQL,EAAIC,EAAII,GAAOH,EAAIG,GAAOF,GAExCC,EAAMC,GAAQH,EAAIG,IAK9B,OAAOD,GCfLI,GAEFC,YAEAC,UAAW,KAEXC,WACIC,MAAO,KACPC,SAAU,KACVC,gBAAiB,KACjBC,YAAa,KACbC,oBAAqB,KACrBC,gBAAiB,MAErBC,kBAASC,EAAWC,EAAgBC,gBAAhBD,mBAAgBC,UAAkB,aAAAC,mBAAAA,IAAAC,oBAClD,IAAMC,EAAMC,KAAKd,UAAUQ,KACN,oBAATO,KAAuBA,KAAKP,GAAK,QACtB,oBAAXQ,OAAyBA,OAAOR,GAAK,MACjD,GAAGC,IAAYI,EAAK,MAAM,IAAII,MAAMT,EAAI,mBACxC,OAAOE,GAAYG,MAAUA,aAAAA,kBAAOD,KAAQC,ICnB9CK,EAAU,SAACC,EAASC,EAAMC,EAAUC,GACtC,IAAMC,EAAUJ,EAAQK,iBAAiBJ,GACzC,SAAGG,GAAWA,EAAQE,OAAS,KAC3BJ,EAASE,EAAQG,UAAU,IAC3BJ,EAAaK,cAAcP,GAC3BQ,EAAMC,UAAUC,OAAOV,GAEpBQ,EAAMC,UAAUE,KAAO,IACtBH,EAAMI,SAASC,aACZX,EAAaY,sBACZZ,EAAaY,yBAGd,IAKTC,EAAe,SAACb,EAAcc,GAShC,OARIR,EAAMI,UAAYV,GAAgBc,IAClCR,EAAMI,SAAW,IAAII,EAAU,SAAAjB,GAC3BS,EAAMC,UAAUQ,QAAQ,SAAChB,EAAUD,GAC/BF,EAAQC,EAASC,EAAMC,EAAUC,OAGtCA,EAAaY,sBAAsBZ,EAAaY,wBAEhDN,EAAMI,UAGXJ,GACFC,UAAW,IAAIS,IACfN,SAAU,KACVO,QAAS,SAACnB,EAAMC,GACZ,GAAID,GAASC,EAAb,CAGA,IAAMC,EAAekB,EAAKjC,SAAS,eAAe,GAC5C6B,EAAaI,EAAKjC,SAAS,uBAAuB,GAEpD4B,EAAab,EAAcc,KAG3BlB,EAAQI,EAAcF,EAAMC,EAAUC,KACnCM,EAAMC,UAAUE,KAAO,GACtBH,EAAMI,SAASO,SAAUE,YAAa,WAAY,aACtDb,EAAMC,UAAUa,IAAItB,EAAMC,QCpBzBsB,EAAW,SAAAC,GAChB,OAAA,SAACC,GACD,oBADCA,MAAqEP,KACtE,SAACQ,GACD,OAAA,SAACC,gBAAAA,MAGL,IAAMC,EAAY3D,EAAImD,EAAK1C,SAAUiD,GAC/BE,EAAkBT,EAAKjC,SAAS,mBAAmB,GAAO,IAC5DyC,EAAkB,QAAKC,IACvBD,EAAkB,OAAIC,EAAgBC,QAG1C,IAAMC,EAAMX,EAAKjC,SAAS,QAAdiC,CAAuBI,EAAKI,GAClCI,EAAoCD,EAAIE,KAAK,SAAAC,GAC/C,OAAKA,EAASC,GASPD,EARIA,EAASd,EAAKzC,WAAa,UAAUsD,KAAK,SAAAG,GAC7C,IAAMC,EAAM,IAAIxC,MAAMuC,GAItB,MAHAC,EAAIjB,EAAKzC,WAAayD,EACtBC,EAAY,OAAIH,EAASI,OACzBD,EAAc,SAAIH,EACZG,MAMZE,EAAU,SAAIC,GAChB,OAAOA,EAAQC,MAAM,SAAAJ,GACjB,GAAGZ,EAASiB,IAAIL,EAAIC,QAChBb,EAASkB,IAAIN,EAAIC,OAAjBb,CAAyBY,OACxB,CAAA,IAAGZ,EAASiB,IAAIL,EAAIrC,MAGrB,MAAMqC,EAFNZ,EAASkB,IAAIN,EAAIrC,KAAjByB,CAAuBY,OAK7BO,EAA6B,SAAIC,GAAY,OAAA,SAAIC,GAAO,OAC1DP,EAD0DM,EAClDb,EAAQC,KAAK,SAAAG,GAAK,OAAAA,GAAKA,EAAES,OAAYZ,KAAK,SAAAG,GAAK,OAAAA,GAAKU,GAAMA,EAAGV,IAAMA,IACnEJ,EAAQC,KAAK,SAAAG,GAAK,OAAAA,GAAKU,GAAMA,EAAGV,IAAMA,OAE5CW,GAIFtD,IAAKmD,EAAyB,MAI9BI,KAAMJ,EAAoB,QAI1BK,KAAML,EAAqB,QAI3BM,SAAUN,EAAyB,YAInCO,YAAaP,EAA4B,eAIzCQ,KAAMR,EAAuB,QAM7BpC,MAAO,SAAAsC,GAEH,OADAf,EAAIE,KAAK,SAAAxC,GAAO,OAAAe,EAAMW,QAAQ1B,EAAI+B,IAAKsB,KAChCC,GAQXM,WAAY,SAACC,EAAMC,GAEf,oBAFeA,KACfF,WAAW,WAAM,OAAAE,EAAWC,SAASF,GAC9BP,GAKXQ,WAAY,WAAM,OAAE1B,EAAiBkB,IAIrCU,eAAMC,EAASZ,GAEX,OADArB,EAASH,IAAIoC,EAASZ,GACfC,GAKXY,WAAY,SAAAb,GAAM,OAAAC,EAAcU,MAAM,IAAKX,IAI3Cc,aAAc,SAAAd,GAAM,OAAAC,EAAcU,MAAM,IAAKX,IAI7Ce,UAAW,SAAAf,GAAM,OAAAC,EAAcU,MAAM,IAAKX,IAI1CgB,SAAU,SAAAhB,GAAM,OAAAC,EAAcU,MAAM,IAAKX,IAIzCiB,QAAS,SAAAjB,GAAM,OAAAC,EAAcU,MAAM,IAAKX,IAIxCkB,cAAe,SAAAlB,GAAM,OAAAC,EAAcU,MAAM,IAAKX,IAI9CmB,QAAS,SAAAnB,GAAM,OAAAC,EAAcU,MAAM,aAAcX,KAGrD,OAAOpB,EAAUwC,OAAO,SAACC,EAAOC,GAAM,OAAAA,EAAED,IAAQpB,oBC9IhD,WACYsB,EACAC,EACAC,EACAC,gBAFAF,mBACAC,MAAsErD,kBACtEsD,MAHA9E,UAAA2E,EACA3E,cAAA4E,EACA5E,eAAA6E,EACA7E,gBAAA8E,EAgNhB,OA9MWC,UAAP,SAAejD,EAAUG,GAA0B,oBAApCH,mBAAUG,MAAiC,IAAI8C,EAASjD,EAAKG,IACpE8C,wBAAR,SAAoBC,OAAAC,kBAAEC,QAAApD,yBAAiBqD,YAAAC,6BAAyBC,aAAAtD,8BAA2BuD,cACvF,OAAO,IAAIP,EAASjD,EAAKsD,EAASrD,iCAQtCgD,qBAAA,SAAS9C,EAAmBsD,GAExB,oBAFwBA,MACxB7D,EAAK1C,SAAWuG,EAAQ7D,EAAK1C,SAAWT,EAAImD,EAAK1C,SAAUiD,GAAQA,EAC5DjC,MAUX+E,sBAAA,SAAUS,GAEN,OADA9D,EAAKzC,UAAYuG,EACVxF,MAUX+E,sBAAA,SAAU7F,GAEN,OADAwC,EAAKxC,eAAiBwC,EAAKxC,UAAcA,GAClCc,MAQX+E,gBAAA,SAAIjD,EAAa2D,GACb,oBADaA,MACNA,EAAUzF,KAAK0F,aAAc5D,QAAS9B,KAAK0F,aAAc5D,IAAK9B,KAAK2E,KAAO7C,KAQrFiD,oBAAA,SAAQK,EAAsBG,GAC1B,oBAD0BA,MACnBvF,KAAK0F,aAAcN,QAASG,EAAQhH,EAAIyB,KAAK4E,SAAUQ,GAAWA,KAc7EL,kBAAA,SAAMY,GACF,OAAO3F,KAAK0F,aAAc5D,IAAK8D,EAAkB5F,KAAK2E,KAAMgB,MAOhEZ,oBAAA,SAAQc,GACJ,OAAO7F,KAAK0F,aAAcN,QAAS7G,EAAIyB,KAAK4E,UAAYkB,QAASD,OAOrEd,mBAAA,SAAOgB,GACH,OAAO/F,KAAK8F,SAAUE,OAASD,KAOnChB,oBAAA,SAAQgB,GACJ,OAAO/F,KAAK8F,SAAUG,eAAiBF,KAO3ChB,iBAAA,SAAKgB,GACD,OAAO/F,KAAK8F,SAAUI,cAAeH,KAQzChB,oBAAA,SAAQf,EAA0BmC,GAC9B,IAAMC,EAAS,IAAI5E,IAAIxB,KAAK6E,WAE5B,OADAuB,EAAOxE,IAAIoC,EAASmC,GACbnG,KAAK0F,aAAc3D,SAAUqE,KAOxCrB,mBAAA,SAAOlB,GACH,OAAO7D,KAAK0F,aAAcN,QAASiB,KAAKrG,KAAK4E,UAAUxC,OAAQyB,EAAWzB,YAO9E2C,oBAAA,SAAQuB,EAAmEC,GACvE,oBADuEA,MAChEvG,KAAK0F,aAAc1D,UAAWuE,GAAUD,GAAmBtG,KAAK8E,mBAAYwB,OAMvFvB,gBAAA,SAAI9C,GACA,oBADAA,MACOJ,EAAS7B,KAAK2E,KAAd9C,CAAoB7B,KAAK6E,UAAzBhD,CAAoC7B,KAAK8E,WAAzCjD,CAAqDtD,EAAI0D,EAAMjC,KAAK4E,YAK/EG,mBAAA,SAAO9C,GACH,oBADGA,MACIJ,EAAS7B,KAAK2E,KAAd9C,CAAoB7B,KAAK6E,UAAzBhD,CAAoC7B,KAAK8E,WAAzCjD,MAA0DtD,EAAI0D,EAAMjC,KAAK4E,WAAWY,OAAQ,aAKvGT,gBAAA,SAAI9C,GACA,oBADAA,MACOJ,EAAS7B,KAAK2E,KAAd9C,CAAoB7B,KAAK6E,UAAzBhD,CAAoC7B,KAAK8E,WAAzCjD,MAA0DtD,EAAI0D,EAAMjC,KAAK4E,WAAWY,OAAQ,UAKvGT,iBAAA,SAAK9C,GACD,oBADCA,MACMJ,EAAS7B,KAAK2E,KAAd9C,CAAoB7B,KAAK6E,UAAzBhD,CAAoC7B,KAAK8E,WAAzCjD,MAA0DtD,EAAI0D,EAAMjC,KAAK4E,WAAWY,OAAQ,WAKvGT,kBAAA,SAAM9C,GACF,oBADEA,MACKJ,EAAS7B,KAAK2E,KAAd9C,CAAoB7B,KAAK6E,UAAzBhD,CAAoC7B,KAAK8E,WAAzCjD,MAA0DtD,EAAI0D,EAAMjC,KAAK4E,WAAWY,OAAQ,YAKvGT,iBAAA,SAAK9C,GACD,oBADCA,MACMJ,EAAS7B,KAAK2E,KAAd9C,CAAoB7B,KAAK6E,UAAzBhD,CAAoC7B,KAAK8E,WAAzCjD,MAA0DtD,EAAI0D,EAAMjC,KAAK4E,WAAWY,OAAQ,WAKvGT,iBAAA,SAAK9C,GACD,oBADCA,MACMJ,EAAS7B,KAAK2E,KAAd9C,CAAoB7B,KAAK6E,UAAzBhD,CAAoC7B,KAAK8E,WAAzCjD,MAA0DtD,EAAI0D,EAAMjC,KAAK4E,WAAWY,OAAQ,cAOvGT,iBAAA,SAAKyB,GACD,OAAOxG,KAAK0F,aAAcN,aAAcpF,KAAK4E,UAAU6B,KAAMD,OAMjEzB,iBAAA,SAAK2B,GACD,OAAO1G,KAAK2G,QAAQ,oBAAoBF,KAAKG,KAAKC,UAAUH,KAMhE3B,qBAAA,SAAS+B,GACL,OAAO9G,KAAKyG,KAAKM,EAAgBD,KAQrC/B,oBAAA,SAAQiC,GACJ,OAAOhH,KACFyG,KAAsB,iBAAVO,EAAqBA,EAAQC,EAAeD,IACxDL,QAAQ,2CAMff,EAAoB,SAAC9D,EAAa6D,GACpC,IAAMuB,EAAMxF,EAAKjC,SAAS,mBAAmB,GAAM,GAC7C0H,EAAQrF,EAAIsF,QAAQ,KAC1B,IAAI,IAAMC,KAAO1B,EACb,GAAGA,EAAG0B,aAAgBvI,MAClB,IAAiB,QAAAkG,EAAAW,EAAG0B,GAAHxH,WAAAA,KAAb,IAAMyH,OACNJ,EAAIK,OAAOF,EAAKC,QAEpBJ,EAAIK,OAAOF,EAAK1B,EAAG0B,IAG3B,OAAQF,EACDrF,EAAI0F,UAAU,EAAGL,OAAUD,EAAIO,WAC/B3F,MAAOoF,EAAIO,YAGhBV,EAAkB,SAACD,GACrB,IAAMtD,EAAW9B,EAAKjC,SAAS,YAAY,GAAM,GACjD,IAAI,IAAM4H,KAAOP,EACb,GAAGA,EAAWO,aAAgBvI,MAC1B,IAAkB,QAAAkG,EAAA8B,EAAWO,GAAXxH,WAAAA,KAAd,IAAM6H,OACNlE,EAAS+D,OAAOF,EAAM,KAAMK,QAEhClE,EAAS+D,OAAOF,EAAKP,EAAWO,IAIxC,OAAO7D,GAGLyD,EAAiB,SAACH,GACpB,OAAOa,OAAOC,KAAKd,GACde,IAAI,SAAAR,GACD,OAAAS,mBAAmBT,GAAO,IACtBS,mBAA8C,iBAApBhB,EAAWO,GAAoBT,KAAKC,UAAUC,EAAWO,IAAQP,EAAWO,MAC7GU,KAAK,aCjQChD,EAASiD"} \ No newline at end of file +{"version":3,"file":"wretch.js","sources":["../../src/mix.ts","../../src/config.ts","../../src/perfs.ts","../../src/resolver.ts","../../src/wretcher.ts","../../src/index.ts"],"sourcesContent":["export const mix = function(one: object, two: object, mergeArrays: boolean = false) {\n if(!one || !two || typeof one !== \"object\" || typeof two !== \"object\")\n return one\n\n const clone = { ...one }\n for(const prop in two) {\n if(two.hasOwnProperty(prop)) {\n if(two[prop] instanceof Array && one[prop] instanceof Array) {\n clone[prop] = mergeArrays ? [ ...one[prop], ...two[prop] ] : two[prop]\n } else if(typeof two[prop] === \"object\" && typeof one[prop] === \"object\") {\n clone[prop] = mix(one[prop], two[prop], mergeArrays)\n } else {\n clone[prop] = two[prop]\n }\n }\n }\n\n return clone\n}\n","declare const global\n\nconst config = {\n // Default options\n defaults: {},\n // Error type\n errorType: null,\n // Polyfills\n polyfills: {\n fetch: null,\n FormData: null,\n URLSearchParams: null,\n performance: null,\n PerformanceObserver: null,\n AbortController: null\n },\n polyfill(p: string, doThrow = true, instance = false, ...args) {\n const res = this.polyfills[p] ||\n (typeof self !== \"undefined\" ? self[p] : null) ||\n (typeof global !== \"undefined\" ? global[p] : null)\n if(doThrow && !res) throw new Error(p + \" is not defined\")\n return instance && res ? new res(...args) : res\n }\n}\n\nexport default config\n","import conf from \"./config\"\n\nconst onMatch = (entries, name, callback, _performance) => {\n const matches = entries.getEntriesByName(name)\n if(matches && matches.length > 0) {\n callback(matches.reverse()[0])\n _performance.clearMeasures(name)\n perfs.callbacks.delete(name)\n\n if(perfs.callbacks.size < 1) {\n perfs.observer.disconnect()\n if(_performance.clearResourceTimings) {\n _performance.clearResourceTimings()\n }\n }\n return true\n }\n return false\n}\n\nconst lazyObserver = (_performance, _observer) => {\n if(!perfs.observer && _performance && _observer) {\n perfs.observer = new _observer(entries => {\n perfs.callbacks.forEach((callback, name) => {\n onMatch(entries, name, callback, _performance)\n })\n })\n if(_performance.clearResourceTimings) _performance.clearResourceTimings()\n }\n return perfs.observer\n}\n\nconst perfs = {\n callbacks: new Map(),\n observer: null,\n observe: (name, callback) => {\n if(!name || !callback)\n return\n\n const _performance = conf.polyfill(\"performance\", false)\n const _observer = conf.polyfill(\"PerformanceObserver\", false)\n\n if(!lazyObserver(_performance, _observer))\n return\n\n if(!onMatch(_performance, name, callback, _performance)) {\n if(perfs.callbacks.size < 1)\n perfs.observer.observe({ entryTypes: [\"resource\", \"measure\"] })\n perfs.callbacks.set(name, callback)\n }\n\n }\n}\n\nexport default perfs\n","import { mix } from \"./mix\"\nimport conf from \"./config\"\nimport perfs from \"./perfs\"\n\nexport type WretcherError = Error & { status: number, response: Response, text?: string, json?: any }\nexport type ResponseChain = {\n // Response types\n res: (cb?: (type: Response) => Result) => Promise,\n json: (cb?: (type: {[key: string]: any}) => Result) => Promise,\n blob: (cb?: (type: Blob) => Result) => Promise,\n formData: (cb?: (type: FormData) => Result) => Promise,\n arrayBuffer: (cb?: (type: ArrayBuffer) => Result) => Promise,\n text: (cb?: (type: string) => Result) => Promise,\n // Extras\n perfs: (cb?: (type: any) => void) => ResponseChain,\n setTimeout: (time: number, controller: any) => ResponseChain,\n controller: () => [any, ResponseChain],\n // Catchers\n error: (code: (number | string), cb: any) => ResponseChain,\n badRequest: (cb: (error: WretcherError) => void) => ResponseChain,\n unauthorized: (cb: (error: WretcherError) => void) => ResponseChain,\n forbidden: (cb: (error: WretcherError) => void) => ResponseChain,\n notFound: (cb: (error: WretcherError) => void) => ResponseChain,\n timeout: (cb: (error: WretcherError) => void) => ResponseChain,\n internalError: (cb: (error: WretcherError) => void) => ResponseChain,\n onAbort: (cb: (error: Error) => void) => ResponseChain\n}\n\nexport const resolver = url =>\n (catchers: Map void> = new Map()) =>\n (resolvers: Array<(chain: ResponseChain) => ResponseChain & Promise>) =>\n (opts = {}) => {\n type TypeParser = (funName: string | null) => (cb?: (type: Type) => Result) => Promise\n\n const finalOpts = mix(conf.defaults, opts)\n const fetchController = conf.polyfill(\"AbortController\", false, true)\n if(!finalOpts[\"signal\"] && fetchController) {\n finalOpts[\"signal\"] = fetchController.signal\n }\n\n const req = conf.polyfill(\"fetch\")(url, finalOpts)\n const wrapper: Promise = req.then(response => {\n if (!response.ok) {\n return response[conf.errorType || \"text\"]().then(_ => {\n const err = new Error(_)\n err[conf.errorType] = _\n err[\"status\"] = response.status\n err[\"response\"] = response\n throw err\n })\n }\n return response\n })\n\n const doCatch = (promise: Promise): Promise => {\n return promise.catch(err => {\n if(catchers.has(err.status))\n catchers.get(err.status)(err)\n else if(catchers.has(err.name))\n catchers.get(err.name)(err)\n else\n throw err\n })\n }\n const wrapTypeParser: TypeParser = (funName) => (cb) => funName ?\n doCatch(wrapper.then(_ => _ && _[funName]()).then(_ => _ && cb && cb(_) || _)) :\n doCatch(wrapper.then(_ => _ && cb && cb(_) || _))\n\n const responseChain: ResponseChain = {\n /**\n * Retrieves the raw result as a promise.\n */\n res: wrapTypeParser(null),\n /**\n * Retrieves the result as a parsed JSON object.\n */\n json: wrapTypeParser(\"json\"),\n /**\n * Retrieves the result as a Blob object.\n */\n blob: wrapTypeParser(\"blob\"),\n /**\n * Retrieves the result as a FormData object.\n */\n formData: wrapTypeParser(\"formData\"),\n /**\n * Retrieves the result as an ArrayBuffer object.\n */\n arrayBuffer: wrapTypeParser(\"arrayBuffer\"),\n /**\n * Retrieves the result as a string.\n */\n text: wrapTypeParser(\"text\"),\n /**\n * Performs a callback on the API performance timings of the request.\n *\n * Warning: Still experimental on browsers and node.js\n */\n perfs: cb => {\n req.then(res => perfs.observe(res.url, cb))\n return responseChain\n },\n /**\n * Aborts the request after a fixed time.\n *\n * @param time Time in milliseconds\n * @param controller A custom controller\n */\n setTimeout: (time, controller = fetchController) => {\n setTimeout(() => controller.abort(), time)\n return responseChain\n },\n /**\n * Returns the automatically generated AbortController alongside the current wretch response as a pair.\n */\n controller: () => [ fetchController, responseChain ],\n /**\n * Catches an http response with a specific error code or name and performs a callback.\n */\n error(errorId, cb) {\n catchers.set(errorId, cb)\n return responseChain\n },\n /**\n * Catches a bad request (http code 400) and performs a callback.\n */\n badRequest: cb => responseChain.error(400, cb),\n /**\n * Catches an unauthorized request (http code 401) and performs a callback.\n */\n unauthorized: cb => responseChain.error(401, cb),\n /**\n * Catches a forbidden request (http code 403) and performs a callback.\n */\n forbidden: cb => responseChain.error(403, cb),\n /**\n * Catches a \"not found\" request (http code 404) and performs a callback.\n */\n notFound: cb => responseChain.error(404, cb),\n /**\n * Catches a timeout (http code 408) and performs a callback.\n */\n timeout: cb => responseChain.error(408, cb),\n /**\n * Catches an internal server error (http code 500) and performs a callback.\n */\n internalError: cb => responseChain.error(500, cb),\n /**\n * Catches an AbortError and performs a callback.\n */\n onAbort: cb => responseChain.error(\"AbortError\", cb)\n }\n\n return resolvers.reduce((chain, r) => r(chain), responseChain) as (ResponseChain & Promise)\n}\n","import { mix } from \"./mix\"\nimport conf from \"./config\"\nimport { resolver, WretcherError, ResponseChain } from \"./resolver\"\n\n/**\n * The Wretcher class used to perform easy fetch requests.\n *\n * Immutability : almost every method of this class return a fresh Wretcher object.\n */\nexport class Wretcher {\n\n protected constructor(\n private _url: string,\n private _options: RequestInit,\n private _catchers: Map void> = new Map(),\n private _resolvers: Array<(resolver: ResponseChain) => any> = []) {}\n\n static factory(url = \"\", opts: RequestInit = {}) { return new Wretcher(url, opts) }\n private selfFactory({ url = this._url, options = this._options, catchers = this._catchers, resolvers = this._resolvers } = {}) {\n return new Wretcher(url, options, catchers, resolvers)\n }\n\n /**\n * Sets the default fetch options used for every subsequent fetch call.\n * @param opts New default options\n * @param mixin If true, mixes in instead of replacing the existing options\n */\n defaults(opts: RequestInit, mixin = false) {\n conf.defaults = mixin ? conf.defaults = mix(conf.defaults, opts) : opts\n return this\n }\n\n /**\n * Sets the method (text, json ...) used to parse the data contained in the response body in case of an HTTP error.\n *\n * Persists for every subsequent requests.\n *\n * Default is \"text\".\n */\n errorType(method: \"text\" | \"json\") {\n conf.errorType = method\n return this\n }\n\n /**\n * Sets the non-global polyfills which will be used for every subsequent calls.\n *\n * Needed for libraries like [fetch-ponyfill](https://github.com/qubyte/fetch-ponyfill).\n *\n * @param polyfills An object containing the polyfills.\n */\n polyfills(polyfills: Partial) {\n conf.polyfills = { ...conf.polyfills, ...polyfills}\n return this\n }\n\n /**\n * Returns a new Wretcher object with the argument url appended and the same options.\n * @param url String url\n * @param replace Boolean If true, replaces the current url instead of appending\n */\n url(url: string, replace = false) {\n return replace ? this.selfFactory({ url }) : this.selfFactory({ url: this._url + url })\n }\n\n /**\n * Returns a new Wretcher object with the same url and new options.\n * @param options New options\n * @param mixin If true, mixes in instead of replacing the existing options\n */\n options(options: RequestInit, mixin = true) {\n return this.selfFactory({ options: mixin ? mix(this._options, options) : options })\n }\n\n /**\n * Converts a javascript object to query parameters,\n * then appends this query string to the current url.\n *\n * ```\n * let w = wretch(\"http://example.com\") // url is http://example.com\n * w = w.query({ a: 1, b : 2 }) // url is now http://example.com?a=1&b=2\n * ```\n *\n * @param qp An object which will be converted.\n */\n query(qp: object) {\n return this.selfFactory({ url: appendQueryParams(this._url, qp) })\n }\n\n /**\n * Set request headers.\n * @param headerValues An object containing header keys and values\n */\n headers(headerValues: { [headerName: string]: any }) {\n return this.selfFactory({ options: mix(this._options, { headers: headerValues }) })\n }\n\n /**\n * Shortcut to set the \"Accept\" header.\n * @param headerValue Header value\n */\n accept(headerValue: string) {\n return this.headers({ Accept : headerValue })\n }\n\n /**\n * Shortcut to set the \"Content-Type\" header.\n * @param headerValue Header value\n */\n content(headerValue: string) {\n return this.headers({ \"Content-Type\" : headerValue })\n }\n\n /**\n * Shortcut to set the \"Authorization\" header.\n * @param headerValue Header value\n */\n auth(headerValue: string) {\n return this.headers({ Authorization: headerValue })\n }\n\n /**\n * Adds a default catcher which will be called on every subsequent request error when the error code matches.\n * @param errorId Error code or name\n * @param catcher: The catcher method\n */\n catcher(errorId: number | string, catcher: (error: WretcherError) => void) {\n const newMap = new Map(this._catchers)\n newMap.set(errorId, catcher)\n return this.selfFactory({ catchers: newMap })\n }\n\n /**\n * Associates a custom signal with the request.\n * @param controller : An AbortController\n */\n signal(controller: any) {\n return this.selfFactory({ options: { ...this._options, signal: controller.signal } as any })\n }\n\n /**\n * Program a resolver to perform response chain tasks automatically.\n * @param doResolve : Resolver callback\n */\n resolve(doResolve: (chain: ResponseChain) => ResponseChain | Promise, clear: boolean = false) {\n return this.selfFactory({ resolvers: clear ? [ doResolve ] : [ ...this._resolvers, doResolve ]})\n }\n\n /**\n * Performs a get request.\n */\n get(opts = {}) {\n return resolver(this._url)(this._catchers)(this._resolvers)(mix(opts, this._options))\n }\n /**\n * Performs a delete request.\n */\n delete(opts = {}) {\n return resolver(this._url)(this._catchers)(this._resolvers)({ ...mix(opts, this._options), method: \"DELETE\" })\n }\n /**\n * Performs a put request.\n */\n put(opts = {}) {\n return resolver(this._url)(this._catchers)(this._resolvers)({ ...mix(opts, this._options), method: \"PUT\" })\n }\n /**\n * Performs a post request.\n */\n post(opts = {}) {\n return resolver(this._url)(this._catchers)(this._resolvers)({ ...mix(opts, this._options), method: \"POST\" })\n }\n /**\n * Performs a patch request.\n */\n patch(opts = {}) {\n return resolver(this._url)(this._catchers)(this._resolvers)({ ...mix(opts, this._options), method: \"PATCH\" })\n }\n /**\n * Performs a head request.\n */\n head(opts = {}) {\n return resolver(this._url)(this._catchers)(this._resolvers)({ ...mix(opts, this._options), method: \"HEAD\" })\n }\n /**\n * Performs an options request\n */\n opts(opts = {}) {\n return resolver(this._url)(this._catchers)(this._resolvers)({ ...mix(opts, this._options), method: \"OPTIONS\" })\n }\n\n /**\n * Sets the request body with any content.\n * @param contents The body contents\n */\n body(contents: any) {\n return this.selfFactory({ options: { ...this._options, body: contents }})\n }\n /**\n * Sets the content type header, stringifies an object and sets the request body.\n * @param jsObject An object which will be serialized into a JSON\n */\n json(jsObject: object) {\n return this.content(\"application/json\").body(JSON.stringify(jsObject))\n }\n /**\n * Converts the javascript object to a FormData and sets the request body.\n * @param formObject An object which will be converted to a FormData\n */\n formData(formObject: object) {\n return this.body(convertFormData(formObject))\n }\n /**\n * Converts the input to an url encoded string and sets the content-type header and body.\n * If the input argument is already a string, skips the conversion part.\n *\n * @param input An object to convert into an url encoded string or an already encoded string\n */\n formUrl(input: (object | string)) {\n return this\n .body(typeof input === \"string\" ? input : convertFormUrl(input))\n .content(\"application/x-www-form-urlencoded\")\n }\n}\n\n// Internal helpers\n\nconst appendQueryParams = (url: string, qp: object) => {\n const usp = conf.polyfill(\"URLSearchParams\", true, true)\n const index = url.indexOf(\"?\")\n for(const key in qp) {\n if(qp[key] instanceof Array) {\n for(const val of qp[key])\n usp.append(key, val)\n } else {\n usp.append(key, qp[key])\n }\n }\n return ~index ?\n `${url.substring(0, index)}?${usp.toString()}` :\n `${url}?${usp.toString()}`\n}\n\nconst convertFormData = (formObject: object) => {\n const formData = conf.polyfill(\"FormData\", true, true)\n for(const key in formObject) {\n if(formObject[key] instanceof Array) {\n for(const item of formObject[key])\n formData.append(key + \"[]\", item)\n } else {\n formData.append(key, formObject[key])\n }\n }\n\n return formData\n}\n\nconst convertFormUrl = (formObject: object) => {\n return Object.keys(formObject)\n .map(key =>\n encodeURIComponent(key) + \"=\" +\n `${ encodeURIComponent(typeof formObject[key] === \"object\" ? JSON.stringify(formObject[key]) : formObject[key]) }`)\n .join(\"&\")\n}\n","import { Wretcher } from \"./wretcher\"\n\n/**\n * Return a fresh Wretcher instance.\n */\nexport default Wretcher.factory\n"],"names":["mix","one","two","mergeArrays","clone","prop","hasOwnProperty","Array","config","defaults","errorType","polyfills","fetch","FormData","URLSearchParams","performance","PerformanceObserver","AbortController","polyfill","p","doThrow","instance","_i","args","res","this","self","global","Error","onMatch","entries","name","callback","_performance","matches","getEntriesByName","length","reverse","clearMeasures","perfs","callbacks","delete","size","observer","disconnect","clearResourceTimings","lazyObserver","_observer","forEach","Map","observe","conf","entryTypes","set","resolver","url","catchers","resolvers","opts","finalOpts","fetchController","signal","req","wrapper","then","response","ok","_","err","status","doCatch","promise","catch","has","get","wrapTypeParser","funName","cb","responseChain","json","blob","formData","arrayBuffer","text","setTimeout","time","controller","abort","error","errorId","badRequest","unauthorized","forbidden","notFound","timeout","internalError","onAbort","reduce","chain","r","_url","_options","_catchers","_resolvers","Wretcher","_a","_b","_c","_d","options","_e","_f","mixin","method","replace","selfFactory","qp","appendQueryParams","headerValues","headers","headerValue","Accept","Content-Type","Authorization","catcher","newMap","__assign","doResolve","clear","contents","body","jsObject","content","JSON","stringify","formObject","convertFormData","input","convertFormUrl","usp","index","indexOf","key","val","append","substring","toString","item","Object","keys","map","encodeURIComponent","join","factory"],"mappings":"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"} \ No newline at end of file diff --git a/dist/resolver.d.ts b/dist/resolver.d.ts index 4dfbebb..8253301 100644 --- a/dist/resolver.d.ts +++ b/dist/resolver.d.ts @@ -27,4 +27,4 @@ export declare type ResponseChain = { internalError: (cb: (error: WretcherError) => void) => ResponseChain; onAbort: (cb: (error: Error) => void) => ResponseChain; }; -export declare const resolver: (url: any) => (catchers?: Map void>) => (resolvers: ((chain: ResponseChain) => Promise | ResponseChain)[]) => (opts?: {}) => Promise | ResponseChain; +export declare const resolver: (url: any) => (catchers?: Map void>) => (resolvers: ((chain: ResponseChain) => ResponseChain & Promise)[]) => (opts?: {}) => ResponseChain & Promise; diff --git a/dist/resolver.js.map b/dist/resolver.js.map index de67740..ead9de9 100644 --- a/dist/resolver.js.map +++ b/dist/resolver.js.map @@ -1 +1 @@ -{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,IAAI,MAAM,UAAU,CAAA;AAC3B,OAAO,KAAK,MAAM,SAAS,CAAA;AA0B3B,MAAM,CAAC,IAAM,QAAQ,GAAG,UAAA,GAAG;IACnB,OAAA,UAAC,QAA0E;QAA1E,yBAAA,EAAA,eAAqE,GAAG,EAAE;QAC3E,OAAA,UAAC,SAAwE;YACzE,OAAA,UAAC,IAAS;gBAAT,qBAAA,EAAA,SAAS;gBAGd,IAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;gBAC1C,IAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;gBACrE,EAAE,CAAA,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC;oBACzC,SAAS,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC,MAAM,CAAA;gBAChD,CAAC;gBAED,IAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;gBAClD,IAAM,OAAO,GAA6B,GAAG,CAAC,IAAI,CAAC,UAAA,QAAQ;oBACvD,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;wBACf,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAA,CAAC;4BAC9C,IAAM,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA;4BACxB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;4BACvB,GAAG,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAA;4BAC/B,GAAG,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAA;4BAC1B,MAAM,GAAG,CAAA;wBACb,CAAC,CAAC,CAAA;oBACN,CAAC;oBACD,MAAM,CAAC,QAAQ,CAAA;gBACnB,CAAC,CAAC,CAAA;gBAEF,IAAM,OAAO,GAAG,UAAI,OAAmB;oBACnC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAA,GAAG;wBACpB,EAAE,CAAA,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;4BACxB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;wBACjC,IAAI,CAAC,EAAE,CAAA,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;4BAC3B,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;wBAC/B,IAAI;4BACA,MAAM,GAAG,CAAA;oBACjB,CAAC,CAAC,CAAA;gBACN,CAAC,CAAA;gBACD,IAAM,cAAc,GAAe,UAAI,OAAO,IAAK,OAAA,UAAI,EAAE,IAAK,OAAA,OAAO;oBACjE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAjB,CAAiB,CAAC,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAArB,CAAqB,CAAC,CAAC;oBAC9E,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAArB,CAAqB,CAAC,CAAC,EAFS,CAET,EAFF,CAEE,CAAA;gBAErD,IAAM,aAAa,GAAkB;oBACjC;;uBAEG;oBACH,GAAG,EAAE,cAAc,CAAW,IAAI,CAAC;oBACnC;;uBAEG;oBACH,IAAI,EAAE,cAAc,CAAM,MAAM,CAAC;oBACjC;;uBAEG;oBACH,IAAI,EAAE,cAAc,CAAO,MAAM,CAAC;oBAClC;;uBAEG;oBACH,QAAQ,EAAE,cAAc,CAAW,UAAU,CAAC;oBAC9C;;uBAEG;oBACH,WAAW,EAAE,cAAc,CAAc,aAAa,CAAC;oBACvD;;uBAEG;oBACH,IAAI,EAAE,cAAc,CAAS,MAAM,CAAC;oBACpC;;;;uBAIG;oBACH,KAAK,EAAE,UAAA,EAAE;wBACL,GAAG,CAAC,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,EAA1B,CAA0B,CAAC,CAAA;wBAC3C,MAAM,CAAC,aAAa,CAAA;oBACxB,CAAC;oBACD;;;;;uBAKG;oBACH,UAAU,EAAE,UAAC,IAAI,EAAE,UAA4B;wBAA5B,2BAAA,EAAA,4BAA4B;wBAC3C,UAAU,CAAC,cAAM,OAAA,UAAU,CAAC,KAAK,EAAE,EAAlB,CAAkB,EAAE,IAAI,CAAC,CAAA;wBAC1C,MAAM,CAAC,aAAa,CAAA;oBACxB,CAAC;oBACD;;uBAEG;oBACH,UAAU,EAAE,cAAM,OAAA,CAAE,eAAe,EAAE,aAAa,CAAE,EAAlC,CAAkC;oBACpD;;uBAEG;oBACH,KAAK,YAAC,OAAO,EAAE,EAAE;wBACb,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;wBACzB,MAAM,CAAC,aAAa,CAAA;oBACxB,CAAC;oBACD;;uBAEG;oBACH,UAAU,EAAE,UAAA,EAAE,IAAI,OAAA,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,EAA5B,CAA4B;oBAC9C;;uBAEG;oBACH,YAAY,EAAE,UAAA,EAAE,IAAI,OAAA,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,EAA5B,CAA4B;oBAChD;;uBAEG;oBACH,SAAS,EAAE,UAAA,EAAE,IAAI,OAAA,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,EAA5B,CAA4B;oBAC7C;;uBAEG;oBACH,QAAQ,EAAE,UAAA,EAAE,IAAI,OAAA,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,EAA5B,CAA4B;oBAC5C;;uBAEG;oBACH,OAAO,EAAE,UAAA,EAAE,IAAI,OAAA,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,EAA5B,CAA4B;oBAC3C;;uBAEG;oBACH,aAAa,EAAE,UAAA,EAAE,IAAI,OAAA,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,EAA5B,CAA4B;oBACjD;;uBAEG;oBACH,OAAO,EAAE,UAAA,EAAE,IAAI,OAAA,aAAa,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC,EAArC,CAAqC;iBACvD,CAAA;gBAED,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAC,KAAK,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,CAAC,EAAR,CAAQ,EAAE,aAAa,CAAC,CAAA;YAClE,CAAC;QA3HO,CA2HP;IA5HO,CA4HP;AA7HO,CA6HP,CAAA"} \ No newline at end of file +{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/wretcher.d.ts b/dist/wretcher.d.ts index a2f80b5..530ee2c 100644 --- a/dist/wretcher.d.ts +++ b/dist/wretcher.d.ts @@ -10,7 +10,7 @@ export declare class Wretcher { private _options; private _catchers; private _resolvers; - protected constructor(_url: string, _options?: RequestInit, _catchers?: Map void>, _resolvers?: Array<(resolver: ResponseChain) => any>); + protected constructor(_url: string, _options: RequestInit, _catchers?: Map void>, _resolvers?: Array<(resolver: ResponseChain) => any>); static factory(url?: string, opts?: RequestInit): Wretcher; private selfFactory({url, options, catchers, resolvers}?); /** @@ -100,31 +100,31 @@ export declare class Wretcher { /** * Performs a get request. */ - get(opts?: {}): Promise | ResponseChain; + get(opts?: {}): ResponseChain & Promise; /** * Performs a delete request. */ - delete(opts?: {}): Promise | ResponseChain; + delete(opts?: {}): ResponseChain & Promise; /** * Performs a put request. */ - put(opts?: {}): Promise | ResponseChain; + put(opts?: {}): ResponseChain & Promise; /** * Performs a post request. */ - post(opts?: {}): Promise | ResponseChain; + post(opts?: {}): ResponseChain & Promise; /** * Performs a patch request. */ - patch(opts?: {}): Promise | ResponseChain; + patch(opts?: {}): ResponseChain & Promise; /** * Performs a head request. */ - head(opts?: {}): Promise | ResponseChain; + head(opts?: {}): ResponseChain & Promise; /** * Performs an options request */ - opts(opts?: {}): Promise | ResponseChain; + opts(opts?: {}): ResponseChain & Promise; /** * Sets the request body with any content. * @param contents The body contents diff --git a/dist/wretcher.js b/dist/wretcher.js index 843a8d2..55bd597 100644 --- a/dist/wretcher.js +++ b/dist/wretcher.js @@ -16,7 +16,6 @@ import { resolver } from "./resolver"; */ var Wretcher = /** @class */ (function () { function Wretcher(_url, _options, _catchers, _resolvers) { - if (_options === void 0) { _options = {}; } if (_catchers === void 0) { _catchers = new Map(); } if (_resolvers === void 0) { _resolvers = []; } this._url = _url; diff --git a/dist/wretcher.js.map b/dist/wretcher.js.map index af1ebd0..d30f62f 100644 --- a/dist/wretcher.js.map +++ b/dist/wretcher.js.map @@ -1 +1 @@ -{"version":3,"file":"wretcher.js","sourceRoot":"","sources":["../src/wretcher.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"wretcher.js","sourceRoot":"","sources":["../src/wretcher.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/resolver.ts b/src/resolver.ts index ba8a0f8..5676310 100644 --- a/src/resolver.ts +++ b/src/resolver.ts @@ -28,7 +28,7 @@ export type ResponseChain = { export const resolver = url => (catchers: Map void> = new Map()) => - (resolvers: Array<(chain: ResponseChain) => ResponseChain | Promise>) => + (resolvers: Array<(chain: ResponseChain) => ResponseChain & Promise>) => (opts = {}) => { type TypeParser = (funName: string | null) => (cb?: (type: Type) => Result) => Promise @@ -151,5 +151,5 @@ export const resolver = url => onAbort: cb => responseChain.error("AbortError", cb) } - return resolvers.reduce((chain, r) => r(chain), responseChain) + return resolvers.reduce((chain, r) => r(chain), responseChain) as (ResponseChain & Promise) }