simple-typed-fetch
Advanced tools
Comparing version
@@ -16,2 +16,3 @@ import * as neverthrow from 'neverthrow'; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -37,2 +38,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -59,2 +61,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -81,2 +84,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -90,23 +94,2 @@ referrer?: string; | ||
type: "unknownGetTextUnknownError"; | ||
}> | neverthrow.Err<never, { | ||
message: string; | ||
text: string; | ||
response: Response; | ||
requestOptions: { | ||
headers: HeadersInit; | ||
body?: BodyInit | null; | ||
cache?: RequestCache; | ||
credentials?: RequestCredentials; | ||
integrity?: string; | ||
keepalive?: boolean; | ||
method?: string; | ||
mode?: RequestMode; | ||
redirect?: RequestRedirect; | ||
referrer?: string; | ||
referrerPolicy?: ReferrerPolicy; | ||
signal?: AbortSignal | null; | ||
window?: null; | ||
}; | ||
url: string; | ||
type: "serverError"; | ||
}> | neverthrow.Ok<{ | ||
@@ -125,2 +108,3 @@ data: DataOut; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -149,2 +133,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -172,2 +157,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -193,2 +179,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -204,3 +191,2 @@ referrer?: string; | ||
message: string; | ||
payload: ErrorOut; | ||
text: string; | ||
@@ -217,2 +203,3 @@ response: Response; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -225,6 +212,6 @@ referrer?: string; | ||
url: string; | ||
type: "clientErrorWithResponsePayload"; | ||
type: "serverError"; | ||
}> | neverthrow.Err<never, { | ||
message: string; | ||
error: z.ZodError<ErrorIn>; | ||
errorMetadata: ErrorOut | undefined; | ||
text: string; | ||
@@ -241,2 +228,3 @@ response: Response; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -249,23 +237,2 @@ referrer?: string; | ||
url: string; | ||
type: "clientErrorPayloadParseError"; | ||
}> | neverthrow.Err<never, { | ||
message: string; | ||
text: string; | ||
response: Response; | ||
requestOptions: { | ||
headers: HeadersInit; | ||
body?: BodyInit | null; | ||
cache?: RequestCache; | ||
credentials?: RequestCredentials; | ||
integrity?: string; | ||
keepalive?: boolean; | ||
method?: string; | ||
mode?: RequestMode; | ||
redirect?: RequestRedirect; | ||
referrer?: string; | ||
referrerPolicy?: ReferrerPolicy; | ||
signal?: AbortSignal | null; | ||
window?: null; | ||
}; | ||
url: string; | ||
type: "clientError"; | ||
@@ -285,2 +252,3 @@ }> | neverthrow.Err<never, { | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -309,2 +277,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -330,2 +299,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -352,2 +322,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -374,2 +345,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -383,23 +355,2 @@ referrer?: string; | ||
type: "unknownGetTextUnknownError"; | ||
}> | neverthrow.Err<never, { | ||
message: string; | ||
text: string; | ||
response: Response; | ||
requestOptions: { | ||
headers: HeadersInit; | ||
body?: BodyInit | null; | ||
cache?: RequestCache; | ||
credentials?: RequestCredentials; | ||
integrity?: string; | ||
keepalive?: boolean; | ||
method?: string; | ||
mode?: RequestMode; | ||
redirect?: RequestRedirect; | ||
referrer?: string; | ||
referrerPolicy?: ReferrerPolicy; | ||
signal?: AbortSignal | null; | ||
window?: null; | ||
}; | ||
url: string; | ||
type: "serverError"; | ||
}> | neverthrow.Ok<{ | ||
@@ -418,2 +369,3 @@ data: DataOut; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -442,2 +394,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -465,2 +418,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -486,2 +440,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -497,3 +452,2 @@ referrer?: string; | ||
message: string; | ||
payload: ErrorOut; | ||
text: string; | ||
@@ -510,2 +464,3 @@ response: Response; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -518,6 +473,6 @@ referrer?: string; | ||
url: string; | ||
type: "clientErrorWithResponsePayload"; | ||
type: "serverError"; | ||
}> | neverthrow.Err<never, { | ||
message: string; | ||
error: z.ZodError<ErrorIn>; | ||
errorMetadata: ErrorOut | undefined; | ||
text: string; | ||
@@ -534,2 +489,3 @@ response: Response; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -542,23 +498,2 @@ referrer?: string; | ||
url: string; | ||
type: "clientErrorPayloadParseError"; | ||
}> | neverthrow.Err<never, { | ||
message: string; | ||
text: string; | ||
response: Response; | ||
requestOptions: { | ||
headers: HeadersInit; | ||
body?: BodyInit | null; | ||
cache?: RequestCache; | ||
credentials?: RequestCredentials; | ||
integrity?: string; | ||
keepalive?: boolean; | ||
method?: string; | ||
mode?: RequestMode; | ||
redirect?: RequestRedirect; | ||
referrer?: string; | ||
referrerPolicy?: ReferrerPolicy; | ||
signal?: AbortSignal | null; | ||
window?: null; | ||
}; | ||
url: string; | ||
type: "clientError"; | ||
@@ -578,2 +513,3 @@ }> | neverthrow.Err<never, { | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -580,0 +516,0 @@ referrer?: string; |
@@ -1,2 +0,2 @@ | ||
"use strict";var stf=(()=>{var g=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var V=(e,r)=>{for(var t in r)g(e,t,{get:r[t],enumerable:!0})},J=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of j(r))!C.call(e,o)&&o!==t&&g(e,o,{get:()=>r[o],enumerable:!(n=A(r,o))||n.enumerable});return e};var F=e=>J(g({},"__esModule",{value:!0}),e);var H={};V(H,{fetchWithValidation:()=>b,simpleFetch:()=>I});var L={withStackTrace:!1},U=(e,r,t=L)=>{let n=r.isOk()?{type:"Ok",value:r.value}:{type:"Err",value:r.error},o=t.withStackTrace?new Error().stack:void 0;return{data:n,message:e,stack:o}};function _(e,r,t,n){function o(s){return s instanceof t?s:new t(function(i){i(s)})}return new(t||(t=Promise))(function(s,i){function a(l){try{p(n.next(l))}catch(f){i(f)}}function m(l){try{p(n.throw(l))}catch(f){i(f)}}function p(l){l.done?s(l.value):o(l.value).then(a,m)}p((n=n.apply(e,r||[])).next())})}function D(e){var r=typeof Symbol=="function"&&Symbol.iterator,t=r&&e[r],n=0;if(t)return t.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")}function O(e){return this instanceof O?(this.v=e,this):new O(e)}function N(e,r,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=t.apply(e,r||[]),o,s=[];return o={},i("next"),i("throw"),i("return"),o[Symbol.asyncIterator]=function(){return this},o;function i(h){n[h]&&(o[h]=function(w){return new Promise(function(T,P){s.push([h,w,T,P])>1||a(h,w)})})}function a(h,w){try{m(n[h](w))}catch(T){f(s[0][3],T)}}function m(h){h.value instanceof O?Promise.resolve(h.value.v).then(p,l):f(s[0][2],h)}function p(h){a("next",h)}function l(h){a("throw",h)}function f(h,w){h(w),s.shift(),s.length&&a(s[0][0],s[0][1])}}function q(e){var r,t;return r={},n("next"),n("throw",function(o){throw o}),n("return"),r[Symbol.iterator]=function(){return this},r;function n(o,s){r[o]=e[o]?function(i){return(t=!t)?{value:O(e[o](i)),done:o==="return"}:s?s(i):i}:s}}function Z(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=e[Symbol.asyncIterator],t;return r?r.call(e):(e=typeof D=="function"?D(e):e[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(s){t[s]=e[s]&&function(i){return new Promise(function(a,m){i=e[s](i),o(a,m,i.done,i.value)})}}function o(s,i,a,m){Promise.resolve(m).then(function(p){s({value:p,done:a})},i)}}var v=class e{constructor(r){this._promise=r}static fromSafePromise(r){let t=r.then(n=>new d(n));return new e(t)}static fromPromise(r,t){let n=r.then(o=>new d(o)).catch(o=>new E(t(o)));return new e(n)}static combine(r){return M(r)}static combineWithAllErrors(r){return B(r)}map(r){return new e(this._promise.then(t=>_(this,void 0,void 0,function*(){return t.isErr()?new E(t.error):new d(yield r(t.value))})))}mapErr(r){return new e(this._promise.then(t=>_(this,void 0,void 0,function*(){return t.isOk()?new d(t.value):new E(yield r(t.error))})))}andThen(r){return new e(this._promise.then(t=>{if(t.isErr())return new E(t.error);let n=r(t.value);return n instanceof e?n._promise:n}))}orElse(r){return new e(this._promise.then(t=>_(this,void 0,void 0,function*(){return t.isErr()?r(t.error):new d(t.value)})))}match(r,t){return this._promise.then(n=>n.match(r,t))}unwrapOr(r){return this._promise.then(t=>t.unwrapOr(r))}safeUnwrap(){return N(this,arguments,function*(){return yield O(yield O(yield*q(Z(yield O(this._promise.then(t=>t.safeUnwrap()))))))})}then(r,t){return this._promise.then(r,t)}};var $=e=>new v(Promise.resolve(new E(e))),k=v.fromPromise,Q=v.fromSafePromise,G=e=>r=>[...r,e],W=e=>e.reduce((r,t)=>r.isOk()?t.isErr()?c(t.error):r.map(G(t.value)):r,y([])),M=e=>v.fromSafePromise(Promise.all(e)).andThen(W),R=e=>e.reduce((r,t)=>t.isErr()?r.isErr()?c([...r.error,t.error]):c([t.error]):r.isErr()?r:y([...r.value,t.value]),y([])),B=e=>v.fromSafePromise(Promise.all(e)).andThen(R),S;(function(e){function r(o,s){return(...i)=>{try{let a=o(...i);return y(a)}catch(a){return c(s?s(a):a)}}}e.fromThrowable=r;function t(o){return W(o)}e.combine=t;function n(o){return R(o)}e.combineWithAllErrors=n})(S||(S={}));var y=e=>new d(e),c=e=>new E(e);var d=class{constructor(r){this.value=r}isOk(){return!0}isErr(){return!this.isOk()}map(r){return y(r(this.value))}mapErr(r){return y(this.value)}andThen(r){return r(this.value)}orElse(r){return y(this.value)}asyncAndThen(r){return r(this.value)}asyncMap(r){return v.fromSafePromise(r(this.value))}unwrapOr(r){return this.value}match(r,t){return r(this.value)}safeUnwrap(){let r=this.value;return function*(){return r}()}_unsafeUnwrap(r){return this.value}_unsafeUnwrapErr(r){throw U("Called `_unsafeUnwrapErr` on an Ok",this,r)}},E=class{constructor(r){this.error=r}isOk(){return!1}isErr(){return!this.isOk()}map(r){return c(this.error)}mapErr(r){return c(r(this.error))}andThen(r){return c(this.error)}orElse(r){return r(this.error)}asyncAndThen(r){return $(this.error)}asyncMap(r){return $(this.error)}unwrapOr(r){return r}match(r,t){return t(this.error)}safeUnwrap(){let r=this.error;return function*(){throw yield c(r),new Error("Do not use this generator out of `safeTry`")}()}_unsafeUnwrap(r){throw U("Called `_unsafeUnwrap` on an Err",this,r)}_unsafeUnwrapErr(r){return this.error}},z=S.fromThrowable;async function b(e,r,t,n){let o={...t,headers:t?.headers??{}},s={requestOptions:o,url:e},i=await k(fetch(e,o),u=>u instanceof Error?c({type:"fetchError",...s,message:u.message,error:u}):c({type:"unknownFetchThrow",...s,message:"Unknown fetch error",error:u}));if(i.isErr())return i.error;let a=i.value,m={...s,response:a},p=await k(a.text(),u=>u instanceof Error?c({type:"unknownGetTextError",...m,message:`Can't get response content: ${u.message}`,error:u}):c({type:"unknownGetTextUnknownError",...m,message:"Can't get response content: unknown error",error:u}));if(p.isErr())return p.error;let l=p.value,f={...m,text:l};if(a.status>=500)return c({type:"serverError",...f,message:`Server error: ${a.status} ${a.statusText}`});let w=z(JSON.parse,u=>u instanceof Error?c({type:"jsonParseError",...f,message:u.message,error:u}):c({type:"jsonParseUnknownError",...f,message:"Unknown JSON parse error",error:u}))(l);if(w.isErr()){let u=r.safeParse(l);return u.success?y({...f,data:u.data}):c({type:"jsonParseError",...f,message:`Can't parse response as JSON: ${w.error.error.message}. Original response: ${l}`,error:w.error.error})}let T=w.value;if(a.status>=400){if(n){let u=n.safeParse(T);return u.success?c({type:"clientErrorWithResponsePayload",...f,message:`Client error: ${a.status} ${a.statusText}. Server error: ${JSON.stringify(u.data)}`,payload:u.data}):c({type:"clientErrorPayloadParseError",...f,message:"Can't recognize error message. Response: "+l,error:u.error})}return c({type:"clientError",...f,message:`Error: ${a.status} ${a.statusText}. Response: ${l}`})}let P=r.safeParse(T);if(!P.success){let u=P.error.issues.map(x=>`[${x.path.join(".")}] ${x.message}`).join(", ");return c({type:"payloadParseError",...f,message:`Can't recognize response payload: ${u}`})}return y({...f,data:P.data})}function I(e){return async(...r)=>{let t=await e(...r);if(t.isErr()){let{message:n,url:o}=t.error;throw new Error(`${n} (${o})`)}return t.value.data}}return F(H);})(); | ||
"use strict";var stf=(()=>{var g=Object.defineProperty;var z=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var J=(t,r)=>{for(var e in r)g(t,e,{get:r[e],enumerable:!0})},L=(t,r,e,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of V(r))!C.call(t,o)&&o!==e&&g(t,o,{get:()=>r[o],enumerable:!(n=z(r,o))||n.enumerable});return t};var N=t=>L(g({},"__esModule",{value:!0}),t);var K={};J(K,{fetchWithValidation:()=>_,simpleFetch:()=>x});var q={withStackTrace:!1},W=(t,r,e=q)=>{let n=r.isOk()?{type:"Ok",value:r.value}:{type:"Err",value:r.error},o=e.withStackTrace?new Error().stack:void 0;return{data:n,message:t,stack:o}};function P(t,r,e,n){function o(s){return s instanceof e?s:new e(function(a){a(s)})}return new(e||(e=Promise))(function(s,a){function i(h){try{p(n.next(h))}catch(l){a(l)}}function m(h){try{p(n.throw(h))}catch(l){a(l)}}function p(h){h.done?s(h.value):o(h.value).then(i,m)}p((n=n.apply(t,r||[])).next())})}function U(t){var r=typeof Symbol=="function"&&Symbol.iterator,e=r&&t[r],n=0;if(e)return e.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")}function O(t){return this instanceof O?(this.v=t,this):new O(t)}function F(t,r,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=e.apply(t,r||[]),o,s=[];return o={},a("next"),a("throw"),a("return"),o[Symbol.asyncIterator]=function(){return this},o;function a(f){n[f]&&(o[f]=function(w){return new Promise(function(T,b){s.push([f,w,T,b])>1||i(f,w)})})}function i(f,w){try{m(n[f](w))}catch(T){l(s[0][3],T)}}function m(f){f.value instanceof O?Promise.resolve(f.value.v).then(p,h):l(s[0][2],f)}function p(f){i("next",f)}function h(f){i("throw",f)}function l(f,w){f(w),s.shift(),s.length&&i(s[0][0],s[0][1])}}function M(t){var r,e;return r={},n("next"),n("throw",function(o){throw o}),n("return"),r[Symbol.iterator]=function(){return this},r;function n(o,s){r[o]=t[o]?function(a){return(e=!e)?{value:O(t[o](a)),done:o==="return"}:s?s(a):a}:s}}function Z(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=t[Symbol.asyncIterator],e;return r?r.call(t):(t=typeof U=="function"?U(t):t[Symbol.iterator](),e={},n("next"),n("throw"),n("return"),e[Symbol.asyncIterator]=function(){return this},e);function n(s){e[s]=t[s]&&function(a){return new Promise(function(i,m){a=t[s](a),o(i,m,a.done,a.value)})}}function o(s,a,i,m){Promise.resolve(m).then(function(p){s({value:p,done:i})},a)}}var v=class t{constructor(r){this._promise=r}static fromSafePromise(r){let e=r.then(n=>new d(n));return new t(e)}static fromPromise(r,e){let n=r.then(o=>new d(o)).catch(o=>new E(e(o)));return new t(n)}static fromThrowable(r,e){return(...n)=>new t(P(this,void 0,void 0,function*(){try{return new d(yield r(...n))}catch(o){return new E(e?e(o):o)}}))}static combine(r){return B(r)}static combineWithAllErrors(r){return H(r)}map(r){return new t(this._promise.then(e=>P(this,void 0,void 0,function*(){return e.isErr()?new E(e.error):new d(yield r(e.value))})))}mapErr(r){return new t(this._promise.then(e=>P(this,void 0,void 0,function*(){return e.isOk()?new d(e.value):new E(yield r(e.error))})))}andThen(r){return new t(this._promise.then(e=>{if(e.isErr())return new E(e.error);let n=r(e.value);return n instanceof t?n._promise:n}))}orElse(r){return new t(this._promise.then(e=>P(this,void 0,void 0,function*(){return e.isErr()?r(e.error):new d(e.value)})))}match(r,e){return this._promise.then(n=>n.match(r,e))}unwrapOr(r){return this._promise.then(e=>e.unwrapOr(r))}safeUnwrap(){return F(this,arguments,function*(){return yield O(yield O(yield*M(Z(yield O(this._promise.then(e=>e.safeUnwrap()))))))})}then(r,e){return this._promise.then(r,e)}};var $=t=>new v(Promise.resolve(new E(t))),I=v.fromPromise,X=v.fromSafePromise,Y=v.fromThrowable,G=t=>r=>[...r,t],A=t=>t.reduce((r,e)=>r.isOk()?e.isErr()?c(e.error):r.map(G(e.value)):r,y([])),B=t=>v.fromSafePromise(Promise.all(t)).andThen(A),R=t=>t.reduce((r,e)=>e.isErr()?r.isErr()?c([...r.error,e.error]):c([e.error]):r.isErr()?r:y([...r.value,e.value]),y([])),H=t=>v.fromSafePromise(Promise.all(t)).andThen(R),k;(function(t){function r(o,s){return(...a)=>{try{let i=o(...a);return y(i)}catch(i){return c(s?s(i):i)}}}t.fromThrowable=r;function e(o){return A(o)}t.combine=e;function n(o){return R(o)}t.combineWithAllErrors=n})(k||(k={}));var y=t=>new d(t),c=t=>new E(t);var d=class{constructor(r){this.value=r}isOk(){return!0}isErr(){return!this.isOk()}map(r){return y(r(this.value))}mapErr(r){return y(this.value)}andThen(r){return r(this.value)}orElse(r){return y(this.value)}asyncAndThen(r){return r(this.value)}asyncMap(r){return v.fromSafePromise(r(this.value))}unwrapOr(r){return this.value}match(r,e){return r(this.value)}safeUnwrap(){let r=this.value;return function*(){return r}()}_unsafeUnwrap(r){return this.value}_unsafeUnwrapErr(r){throw W("Called `_unsafeUnwrapErr` on an Ok",this,r)}},E=class{constructor(r){this.error=r}isOk(){return!1}isErr(){return!this.isOk()}map(r){return c(this.error)}mapErr(r){return c(r(this.error))}andThen(r){return c(this.error)}orElse(r){return r(this.error)}asyncAndThen(r){return $(this.error)}asyncMap(r){return $(this.error)}unwrapOr(r){return r}match(r,e){return e(this.error)}safeUnwrap(){let r=this.error;return function*(){throw yield c(r),new Error("Do not use this generator out of `safeTry`")}()}_unsafeUnwrap(r){throw W("Called `_unsafeUnwrap` on an Err",this,r)}_unsafeUnwrapErr(r){return this.error}},j=k.fromThrowable;async function _(t,r,e,n){let o={...e,headers:e?.headers??{}},s={requestOptions:o,url:t},a=await I(fetch(t,o),u=>u instanceof Error?c({type:"fetchError",...s,message:u.message,error:u}):c({type:"unknownFetchThrow",...s,message:"Unknown fetch error",error:u}));if(a.isErr())return a.error;let i=a.value,m={...s,response:i},p=await I(i.text(),u=>u instanceof Error?c({type:"unknownGetTextError",...m,message:`Can't get response content: ${u.message}`,error:u}):c({type:"unknownGetTextUnknownError",...m,message:"Can't get response content: unknown error",error:u}));if(p.isErr())return p.error;let h=p.value,l={...m,text:h},w=j(JSON.parse,u=>u instanceof Error?c({type:"jsonParseError",...l,message:u.message,error:u}):c({type:"jsonParseUnknownError",...l,message:"Unknown JSON parse error",error:u}))(h);if(w.isErr()){let u=r.safeParse(h);return u.success?y({...l,data:u.data}):c({type:"jsonParseError",...l,message:`Can't parse response as JSON: ${w.error.error.message}. Original response: ${h}`,error:w.error.error})}let T=w.value,b;if(n){let u=n.safeParse(T);u.success&&(b=u.data)}if(i.status>=500)return c({type:"serverError",...l,message:`Server error: ${i.status} ${i.statusText}. ${b?`Data: ${JSON.stringify(b)}`:""}`});if(i.status>=400)return c({type:"clientError",...l,message:`Error: ${i.status} ${i.statusText}. Response: ${h}`,errorMetadata:b});let S=r.safeParse(T);if(!S.success){let u=S.error.issues.map(D=>`[${D.path.join(".")}] ${D.message}`).join(", ");return c({type:"payloadParseError",...l,message:`Can't recognize response payload: ${u}`})}return y({...l,data:S.data})}function x(t){return async(...r)=>{let e=await t(...r);if(e.isErr()){let{message:n,url:o}=e.error;throw new Error(`${n} (${o})`)}return e.value.data}}return N(K);})(); | ||
//# sourceMappingURL=browser.global.js.map |
@@ -16,2 +16,3 @@ import * as neverthrow from 'neverthrow'; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -37,2 +38,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -59,2 +61,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -81,2 +84,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -90,23 +94,2 @@ referrer?: string; | ||
type: "unknownGetTextUnknownError"; | ||
}> | neverthrow.Err<never, { | ||
message: string; | ||
text: string; | ||
response: Response; | ||
requestOptions: { | ||
headers: HeadersInit; | ||
body?: BodyInit | null; | ||
cache?: RequestCache; | ||
credentials?: RequestCredentials; | ||
integrity?: string; | ||
keepalive?: boolean; | ||
method?: string; | ||
mode?: RequestMode; | ||
redirect?: RequestRedirect; | ||
referrer?: string; | ||
referrerPolicy?: ReferrerPolicy; | ||
signal?: AbortSignal | null; | ||
window?: null; | ||
}; | ||
url: string; | ||
type: "serverError"; | ||
}> | neverthrow.Ok<{ | ||
@@ -125,2 +108,3 @@ data: DataOut; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -149,2 +133,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -172,2 +157,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -193,2 +179,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -204,3 +191,2 @@ referrer?: string; | ||
message: string; | ||
payload: ErrorOut; | ||
text: string; | ||
@@ -217,2 +203,3 @@ response: Response; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -225,6 +212,6 @@ referrer?: string; | ||
url: string; | ||
type: "clientErrorWithResponsePayload"; | ||
type: "serverError"; | ||
}> | neverthrow.Err<never, { | ||
message: string; | ||
error: z.ZodError<ErrorIn>; | ||
errorMetadata: ErrorOut | undefined; | ||
text: string; | ||
@@ -241,2 +228,3 @@ response: Response; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -249,23 +237,2 @@ referrer?: string; | ||
url: string; | ||
type: "clientErrorPayloadParseError"; | ||
}> | neverthrow.Err<never, { | ||
message: string; | ||
text: string; | ||
response: Response; | ||
requestOptions: { | ||
headers: HeadersInit; | ||
body?: BodyInit | null; | ||
cache?: RequestCache; | ||
credentials?: RequestCredentials; | ||
integrity?: string; | ||
keepalive?: boolean; | ||
method?: string; | ||
mode?: RequestMode; | ||
redirect?: RequestRedirect; | ||
referrer?: string; | ||
referrerPolicy?: ReferrerPolicy; | ||
signal?: AbortSignal | null; | ||
window?: null; | ||
}; | ||
url: string; | ||
type: "clientError"; | ||
@@ -285,2 +252,3 @@ }> | neverthrow.Err<never, { | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -309,2 +277,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -330,2 +299,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -352,2 +322,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -374,2 +345,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -383,23 +355,2 @@ referrer?: string; | ||
type: "unknownGetTextUnknownError"; | ||
}> | neverthrow.Err<never, { | ||
message: string; | ||
text: string; | ||
response: Response; | ||
requestOptions: { | ||
headers: HeadersInit; | ||
body?: BodyInit | null; | ||
cache?: RequestCache; | ||
credentials?: RequestCredentials; | ||
integrity?: string; | ||
keepalive?: boolean; | ||
method?: string; | ||
mode?: RequestMode; | ||
redirect?: RequestRedirect; | ||
referrer?: string; | ||
referrerPolicy?: ReferrerPolicy; | ||
signal?: AbortSignal | null; | ||
window?: null; | ||
}; | ||
url: string; | ||
type: "serverError"; | ||
}> | neverthrow.Ok<{ | ||
@@ -418,2 +369,3 @@ data: DataOut; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -442,2 +394,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -465,2 +418,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -486,2 +440,3 @@ referrer?: string; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -497,3 +452,2 @@ referrer?: string; | ||
message: string; | ||
payload: ErrorOut; | ||
text: string; | ||
@@ -510,2 +464,3 @@ response: Response; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -518,6 +473,6 @@ referrer?: string; | ||
url: string; | ||
type: "clientErrorWithResponsePayload"; | ||
type: "serverError"; | ||
}> | neverthrow.Err<never, { | ||
message: string; | ||
error: z.ZodError<ErrorIn>; | ||
errorMetadata: ErrorOut | undefined; | ||
text: string; | ||
@@ -534,2 +489,3 @@ response: Response; | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -542,23 +498,2 @@ referrer?: string; | ||
url: string; | ||
type: "clientErrorPayloadParseError"; | ||
}> | neverthrow.Err<never, { | ||
message: string; | ||
text: string; | ||
response: Response; | ||
requestOptions: { | ||
headers: HeadersInit; | ||
body?: BodyInit | null; | ||
cache?: RequestCache; | ||
credentials?: RequestCredentials; | ||
integrity?: string; | ||
keepalive?: boolean; | ||
method?: string; | ||
mode?: RequestMode; | ||
redirect?: RequestRedirect; | ||
referrer?: string; | ||
referrerPolicy?: ReferrerPolicy; | ||
signal?: AbortSignal | null; | ||
window?: null; | ||
}; | ||
url: string; | ||
type: "clientError"; | ||
@@ -578,2 +513,3 @@ }> | neverthrow.Err<never, { | ||
mode?: RequestMode; | ||
priority?: RequestPriority; | ||
redirect?: RequestRedirect; | ||
@@ -580,0 +516,0 @@ referrer?: string; |
@@ -1,2 +0,2 @@ | ||
import"isomorphic-unfetch";import{err as e,fromPromise as O,fromThrowable as D,ok as I}from"neverthrow";async function h(n,i,a,c){let u={...a,headers:a?.headers??{}},f={requestOptions:u,url:n},m=await O(fetch(n,u),r=>r instanceof Error?e({type:"fetchError",...f,message:r.message,error:r}):e({type:"unknownFetchThrow",...f,message:"Unknown fetch error",error:r}));if(m.isErr())return m.error;let t=m.value,E={...f,response:t},d=await O(t.text(),r=>r instanceof Error?e({type:"unknownGetTextError",...E,message:`Can't get response content: ${r.message}`,error:r}):e({type:"unknownGetTextUnknownError",...E,message:"Can't get response content: unknown error",error:r}));if(d.isErr())return d.error;let o=d.value,s={...E,text:o};if(t.status>=500)return e({type:"serverError",...s,message:`Server error: ${t.status} ${t.statusText}`});let p=D(JSON.parse,r=>r instanceof Error?e({type:"jsonParseError",...s,message:r.message,error:r}):e({type:"jsonParseUnknownError",...s,message:"Unknown JSON parse error",error:r}))(o);if(p.isErr()){let r=i.safeParse(o);return r.success?I({...s,data:r.data}):e({type:"jsonParseError",...s,message:`Can't parse response as JSON: ${p.error.error.message}. Original response: ${o}`,error:p.error.error})}let l=p.value;if(t.status>=400){if(c){let r=c.safeParse(l);return r.success?e({type:"clientErrorWithResponsePayload",...s,message:`Client error: ${t.status} ${t.statusText}. Server error: ${JSON.stringify(r.data)}`,payload:r.data}):e({type:"clientErrorPayloadParseError",...s,message:"Can't recognize error message. Response: "+o,error:r.error})}return e({type:"clientError",...s,message:`Error: ${t.status} ${t.statusText}. Response: ${o}`})}let y=i.safeParse(l);if(!y.success){let r=y.error.issues.map(g=>`[${g.path.join(".")}] ${g.message}`).join(", ");return e({type:"payloadParseError",...s,message:`Can't recognize response payload: ${r}`})}return I({...s,data:y.data})}function w(n){return async(...i)=>{let a=await n(...i);if(a.isErr()){let{message:c,url:u}=a.error;throw new Error(`${c} (${u})`)}return a.value.data}}export{h as fetchWithValidation,w as simpleFetch}; | ||
import"isomorphic-unfetch";import{err as e,fromPromise as I,fromThrowable as x,ok as w}from"neverthrow";async function l(n,i,a,c){let u={...a,headers:a?.headers??{}},m={requestOptions:u,url:n},E=await I(fetch(n,u),r=>r instanceof Error?e({type:"fetchError",...m,message:r.message,error:r}):e({type:"unknownFetchThrow",...m,message:"Unknown fetch error",error:r}));if(E.isErr())return E.error;let t=E.value,d={...m,response:t},h=await I(t.text(),r=>r instanceof Error?e({type:"unknownGetTextError",...d,message:`Can't get response content: ${r.message}`,error:r}):e({type:"unknownGetTextUnknownError",...d,message:"Can't get response content: unknown error",error:r}));if(h.isErr())return h.error;let o=h.value,s={...d,text:o},p=x(JSON.parse,r=>r instanceof Error?e({type:"jsonParseError",...s,message:r.message,error:r}):e({type:"jsonParseUnknownError",...s,message:"Unknown JSON parse error",error:r}))(o);if(p.isErr()){let r=i.safeParse(o);return r.success?w({...s,data:r.data}):e({type:"jsonParseError",...s,message:`Can't parse response as JSON: ${p.error.error.message}. Original response: ${o}`,error:p.error.error})}let O=p.value,f;if(c){let r=c.safeParse(O);r.success&&(f=r.data)}if(t.status>=500)return e({type:"serverError",...s,message:`Server error: ${t.status} ${t.statusText}. ${f?`Data: ${JSON.stringify(f)}`:""}`});if(t.status>=400)return e({type:"clientError",...s,message:`Error: ${t.status} ${t.statusText}. Response: ${o}`,errorMetadata:f});let y=i.safeParse(O);if(!y.success){let r=y.error.issues.map(g=>`[${g.path.join(".")}] ${g.message}`).join(", ");return e({type:"payloadParseError",...s,message:`Can't recognize response payload: ${r}`})}return w({...s,data:y.data})}function D(n){return async(...i)=>{let a=await n(...i);if(a.isErr()){let{message:c,url:u}=a.error;throw new Error(`${c} (${u})`)}return a.value.data}}export{l as fetchWithValidation,D as simpleFetch}; | ||
//# sourceMappingURL=index.js.map |
@@ -7,3 +7,3 @@ { | ||
}, | ||
"version": "0.2.12", | ||
"version": "0.2.13", | ||
"description": "Making HTTP requests human way", | ||
@@ -42,5 +42,5 @@ "main": "./dist/index.cjs", | ||
"isomorphic-unfetch": "^4.0.2", | ||
"neverthrow": "^6.1.0", | ||
"neverthrow": "^6.2.1", | ||
"patch-package": "^8.0.0", | ||
"zod": "^3.22.4" | ||
"zod": "^3.23.8" | ||
}, | ||
@@ -52,10 +52,10 @@ "homepage": "https://github.com/lobotomoe/simple-typed-fetch#readme", | ||
"devDependencies": { | ||
"@typescript-eslint/eslint-plugin": ">=6.5.0", | ||
"@typescript-eslint/parser": ">=6.5.0", | ||
"eslint": ">=8.48.0", | ||
"eslint-config-xo": "^0.43.1", | ||
"eslint-config-xo-typescript": "^1.0.1", | ||
"rimraf": "^5.0.1", | ||
"@typescript-eslint/eslint-plugin": ">=7.11.0", | ||
"@typescript-eslint/parser": ">=7.11.0", | ||
"eslint": ">=9.3.0", | ||
"eslint-config-xo": "^0.45.0", | ||
"eslint-config-xo-typescript": "^4.0.0", | ||
"rimraf": "^5.0.7", | ||
"tsup": "^8.0.2", | ||
"typescript": "^5.3.3" | ||
"typescript": "^5.4.5" | ||
}, | ||
@@ -62,0 +62,0 @@ "pnpm": { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
113901
-5.48%1036
-11.15%Updated
Updated