UNPKG

vormiaqueryjs

Version:

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

3 lines (2 loc) 2.59 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("axios"),t={VORMIA_API_URL:process.env.VORMIA_API_URL||"",VORMIA_AUTH_TOKEN_KEY:process.env.VORMIA_AUTH_TOKEN_KEY||"auth_token",VORMIA_TIMEOUT:process.env.VORMIA_TIMEOUT?parseInt(process.env.VORMIA_TIMEOUT,10):3e4,VORMIA_WITH_CREDENTIALS:"true"===process.env.VORMIA_WITH_CREDENTIALS||!1};class s extends Error{constructor(e,t,s,r){super(e),this.name="VormiaError",this.status=t,this.response=s,this.code=r}}class r{constructor(s={}){const r={baseURL:t.VORMIA_API_URL||"",authTokenKey:t.VORMIA_AUTH_TOKEN_KEY,withCredentials:t.VORMIA_WITH_CREDENTIALS,timeout:t.VORMIA_TIMEOUT};this.config={...r,...s},this.config.baseURL||console.warn("VormiaClient: No baseURL provided. Please set VORMIA_API_URL in your .env file or pass baseURL in the config."),this.axiosInstance=e.create({baseURL:this.config.baseURL,timeout:this.config.timeout,headers:{"Content-Type":"application/json",...this.config.headers},withCredentials:this.config.withCredentials}),this.setupInterceptors()}setupInterceptors(){this.axiosInstance.interceptors.request.use(e=>{const t=this.getAuthToken();return t&&(e.headers.Authorization=`Bearer ${t}`),e},e=>Promise.reject(e)),this.axiosInstance.interceptors.response.use(e=>e,e=>(e.response&&401===e.response.status&&this.config.onUnauthenticated&&this.config.onUnauthenticated(),Promise.reject(e)))}async request(e){var t,r;try{return await this.axiosInstance.request(e)}catch(o){const e=null==(t=o.response)?void 0:t.status,n=null==(r=o.response)?void 0:r.data,i=o.message||"Request failed";throw new s(i,e,n,o.code)}}get(e,t){return this.request({...t,method:"GET",url:e})}post(e,t,s){return this.request({...s,method:"POST",url:e,data:t})}put(e,t,s){return this.request({...s,method:"PUT",url:e,data:t})}delete(e,t){return this.request({...t,method:"DELETE",url:e})}patch(e,t,s){return this.request({...s,method:"PATCH",url:e,data:t})}setAuthToken(e){"undefined"!=typeof window&&localStorage.setItem(this.config.authTokenKey,e)}clearAuthToken(){"undefined"!=typeof window&&localStorage.removeItem(this.config.authTokenKey)}getAuthToken(){return"undefined"!=typeof window?localStorage.getItem(this.config.authTokenKey):null}}let o=null;exports.VormiaClient=r,exports.VormiaError=s,exports.createVormiaClient=function(e){return o=new r(e),o},exports.getGlobalVormiaClient=function(){if(!o)throw new Error("VormiaClient has not been initialized. Call createVormiaClient first.");return o},exports.setGlobalVormiaClient=function(e){o=e}; //# sourceMappingURL=VormiaClient.js.map