@dashadmin/dash-axios-hook 1.3.17 → 1.3.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const E=(s,t,n="update")=>{t||(t="");const c={update:"Actualizar",create:"Crear",delete:"Eliminar"},a=s.response?.data?.message||s.message||"Error al "+(c[n]||n)+" el recurso",i=s.response?.status||500;let e={errors:{}};if(s.response?.data?.errors){const o=s.response.data.errors;Object.keys(o).forEach(r=>{typeof o[r]=="string"?e.errors[r]=o[r]:Array.isArray(o[r])?e.errors[r]=o[r].join(", "):typeof o[r]=="object"&&(e.errors[r]=o[r])}),a&&(e.errors.root={serverError:a})}const u={message:a,status:i,body:e,resource:t,originalError:s,name:"Error"};return console.error("Update error:",{resource:t,errorMessage:a,status:i,validationErrors:e.errors,originalError:s}),u};var l=E;export{l as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import A from"axios";import{DASHAdminSystemConstants as l}from"@dashadmin/dash-constants";import{dashStorage as u}from"@dashadmin/dash-utils";import y from"./processAxiosErrorFunction";let f=!1,h=[];const d=(s,r=null)=>{h.forEach(a=>{s?a.reject(s):a.resolve(r)}),h=[]},k=async s=>{const r=u.getItem("refreshToken");if(!r)return console.log("[Axios] No refresh token available"),null;try{console.log("[Axios] Attempting to refresh access token...");const i=await A.create({baseURL:l.system.ADMIN_API_URL,headers:{"Content-Type":"application/json",Accept:"application/json"}}).post("/auth/refresh",{refresh_token:r});if(i.status===200&&i.data.token){const o=i.data.token,e=i.data.refresh_token;return u.setItem("token",o),e&&u.setItem("refreshToken",e),console.log("[Axios] Token refresh successful"),o}return null}catch(a){return console.error("[Axios] Token refresh failed:",a),null}},g=()=>{console.log("[Axios] Logging out due to authentication failure");debugger;u.clear(),localStorage.clear(),window.dispatchEvent(new CustomEvent("auth:logout",{detail:{reason:"token_refresh_failed"}}))},p=(s,r)=>{const a=typeof navigator<"u"&&navigator.language?navigator.language.split("-")[0]:"es",i={headers:{"Content-Type":"application/json","Accept-Language":"es",Accept:"application/json"},...s},o=A.create(i);return r&&(o.defaults.withCredentials=!0,o.get("/csrf-cookie").then(e=>{console.log("sanctum",e)})),o.interceptors.request.use(function(e){const t=u.getItem("token");t!==void 0&&t!=="undefined"&&(e.headers.Authorization="Bearer "+t);const c=u.getItem("active_tenant_id");return c&&(e.headers["X-Tenant-Id"]=c),e}),o.interceptors.response.use(e=>e,async e=>{const t=e.config;if(e.response?.status===401&&!t._retry){if(t.url?.includes("/login")||t.url?.includes("/auth/refresh")||t.url?.includes("/logout"))return Promise.reject(e);if(f)return new Promise((n,x)=>{h.push({resolve:n,reject:x})}).then(n=>(n&&t.headers&&(t.headers.Authorization=`Bearer ${n}`),o(t))).catch(n=>Promise.reject(n));t._retry=!0,f=!0;try{const n=await k(o);return n?(t.headers&&(t.headers.Authorization=`Bearer ${n}`),d(null,n),o(t)):(d(e,null),g(),Promise.reject(e))}catch(n){return d(n,null),g(),Promise.reject(n)}finally{f=!1}}return window.dispatchEvent(new MessageEvent("DASHGlobalError",{data:y(e,null,"list"),origin:"AxiosInterceptor"})),Promise.reject(e)}),o},m=s=>p({baseURL:l.system.ADMIN_API_URL,...s&&{...s}}),b=s=>p({baseURL:l.system.ADMIN_API_URL,...s&&{...s}});var D=m;export{b as createAxiosInstance,D as default,p as initAxios,m as useAxios};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useEffect as y,useState as u}from"react";import{useStore as m}from"react-admin";import x from"./useAxios";const p=(e,o,a)=>o.split(".").reduce((s,i)=>s?s[i]:a,e),S=e=>{const{storeKey:o,dataPath:a="data"}=e,s=x(),[i,c]=u(null),[d,f]=u(!1),[l,h]=m(o,null),n=async r=>{try{const t=await s({method:r.method,url:`${r.url}${r.payload?"?"+r.payload:""}`});(t.status>=200||t.status<300)&&h(p(t,a,null))}catch(t){c(t)}finally{f(!0)}};return y(()=>{l||n(e)},[]),{request:n,results:l,error:i,loaded:d}};var W=S;export{W as default};
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dashadmin/dash-axios-hook",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.20",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "src/index.tsx",
|
|
@@ -39,13 +39,24 @@
|
|
|
39
39
|
"exports": {
|
|
40
40
|
".": {
|
|
41
41
|
"import": "./dist/index.js"
|
|
42
|
+
},
|
|
43
|
+
"./src/*": {
|
|
44
|
+
"import": "./dist/*.js"
|
|
42
45
|
}
|
|
43
46
|
}
|
|
44
47
|
},
|
|
45
48
|
"scripts": {
|
|
46
|
-
"build": "vite build"
|
|
49
|
+
"build": "rm -rf dist && node ../dash-build/compile.mjs && vite build"
|
|
47
50
|
},
|
|
48
51
|
"files": [
|
|
49
52
|
"dist"
|
|
50
|
-
]
|
|
53
|
+
],
|
|
54
|
+
"exports": {
|
|
55
|
+
".": {
|
|
56
|
+
"import": "./src/index.tsx"
|
|
57
|
+
},
|
|
58
|
+
"./src/*": {
|
|
59
|
+
"import": "./src/*"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
51
62
|
}
|