@nhost/nhost-js
Version:
Nhost JavaScript SDK
2 lines • 2.6 kB
JavaScript
import{t as e}from"./refreshSession-C7G1H9pk.js";function s(e=[]){return e.reduceRight(((e,s)=>s(e)),fetch)}var r=class extends Error{body;status;headers;constructor(e,s,r){super(function(e){if(e&&"string"==typeof e)return e;if(e&&"object"==typeof e){const s=e;if("message"in s&&"string"==typeof s.message)return s.message;if("error"in s&&"string"==typeof s.error)return s.error;if("error"in s&&s.error&&"object"==typeof s.error){const e=s.error;if("message"in e&&"string"==typeof e.message)return e.message}if("errors"in s&&Array.isArray(s.errors)){const e=s.errors.filter((e=>"object"==typeof e&&null!==e&&"message"in e&&"string"==typeof e.message)).map((e=>e.message));if(e.length>0)return e.join(", ")}}return"An unexpected error occurred"}(e)),this.body=e,this.status=s,this.headers=r}},n=e=>s=>async(r,n={})=>{const a=new Headers(n.headers||{});if(a.has("Authorization"))return s(r,n);const o=e.get();return s(r,o?.accessToken?{...n,headers:t(a,o)}:n)};function t(e,s){return s.accessToken&&e.set("Authorization",`Bearer ${s.accessToken}`),e}var a=(s,r,n)=>{const{marginSeconds:t=60}=n||{};return n=>async(a,o={})=>{if(function(e,s){return!!new Headers(s.headers||{}).has("Authorization")||!!e.endsWith("/v1/token")}(a,o))return n(a,o);try{await e(s,r,t)}catch{}return n(a,o)}};var o=e=>s=>async(r,n)=>{const t=await s(r,n);try{if(r.endsWith("/signout"))return e.remove(),t;if(r.endsWith("/user/password")&&t.ok)return e.remove(),t;if(r.endsWith("/token")||r.includes("/token/exchange")||r.includes("/signin/")||r.includes("/signup/")){const s=await t.clone().json().catch((()=>null));if(s){const r=(e=>"string"==typeof e?null:"session"in e?e.session||null:"accessToken"in e&&"refreshToken"in e&&"user"in e?e:null)(s);r?.accessToken&&r.refreshToken&&e.set(r)}}}catch(a){console.warn("Error in session response middleware:",a)}return t},i=e=>s=>async(r,n={})=>{const t=new Headers(n.headers||{});if(t.has("x-hasura-admin-secret")||t.set("x-hasura-admin-secret",e.adminSecret),e.role&&!t.has("x-hasura-role")&&t.set("x-hasura-role",e.role),e.sessionVariables)for(const[s,a]of Object.entries(e.sessionVariables)){const e=s.startsWith("x-hasura-")?s:`x-hasura-${s}`;t.has(e)||t.set(e,a)}return s(r,{...n,headers:t})},c=e=>s=>async(r,n={})=>{const t=new Headers(n.headers||{});return new Headers(e).forEach(((e,s)=>{t.has(s)||t.set(s,e)})),s(r,{...n,headers:t})},u=e=>s=>async(r,n={})=>{const t=new Headers(n.headers||{});return t.has("x-hasura-role")||t.set("x-hasura-role",e),s(r,{...n,headers:t})};export{a,s as c,o as i,c as n,n as o,i as r,r as s,u as t};
//# sourceMappingURL=fetch-CaGArzje.js.map