UNPKG

vormiaqueryjs

Version:

Vormia Query Js - A npm package for query management with VormiaPHP laravel Backend application

3 lines (2 loc) 1.73 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("@tanstack/react-query"),e=require("../client/createVormiaClient.js");exports.useVormiaQueryAuth=a=>{const o=e.getGlobalVormiaClient(),{endpoint:r,method:n="GET",params:s,data:u,headers:i={},transform:c,encryptData:d=!1,storeToken:l=!0,...y}=a,h=[r,n,s,u];return t.useQuery({queryKey:h,queryFn:async()=>{var t;try{const e={method:n,url:r,params:"GET"===n?s:void 0,data:"GET"!==n?u:void 0,headers:{"Content-Type":"application/json",...i},encryptData:d},a=await o.request(e);return l&&(null==(t=a.data)?void 0:t.token)&&o.setAuthToken(a.data.token),c&&"function"==typeof c?{...a,data:c(a.data)}:a}catch(e){throw 401===e.status&&o.removeAuthToken(),e instanceof Error?e:new Error("Authentication query failed")}},retry:(t,e)=>401!==e.status&&t<3,...y})},exports.useVormiaQueryAuthMutation=a=>{const o=e.getGlobalVormiaClient(),{endpoint:r,method:n="POST",headers:s={},transform:u,encryptData:i=!1,storeToken:c=!0,onLoginSuccess:d,onSuccess:l,onError:y,...h}=a,p=t.useMutation({mutationFn:async t=>{var e;try{const a={method:n,url:r,data:t,headers:{"Content-Type":"application/json",...s},encryptData:i},d=await o.request(a);return c&&(null==(e=d.data)?void 0:e.token)&&o.setAuthToken(d.data.token),u&&"function"==typeof u?{...d,data:u(d.data)}:d}catch(a){throw 401===a.status&&o.removeAuthToken(),a instanceof Error?a:new Error("Authentication failed")}},onSuccess:(t,e,a)=>{var o;l&&l(t,e,a),d&&(null==(o=t.data)?void 0:o.token)&&d(t)},onError:(t,e,a)=>{y&&y(t,e,a)},...h}),m=!!o.getAuthToken();return{...p,login:async t=>p.mutateAsync(t),logout:()=>{o.removeAuthToken()},isAuthenticated:m}}; //# sourceMappingURL=useVrmAuth.js.map