vormiaqueryjs
Version:
Vormia Query Js - A npm package for query management with VormiaPHP laravel Backend application
1 lines • 7.14 kB
Source Map (JSON)
{"version":3,"file":"VormiaClient.mjs","sources":["../../../src/core/VormiaClient.js"],"sourcesContent":["import axios from \"axios\";\n\n/* global process */\n\n// Environment variable fallbacks\nconst DEFAULT_CONFIG = {\n VORMIA_API_URL: process.env.VORMIA_API_URL || \"\",\n VORMIA_AUTH_TOKEN_KEY: process.env.VORMIA_AUTH_TOKEN_KEY || \"auth_token\",\n VORMIA_TIMEOUT: process.env.VORMIA_TIMEOUT\n ? parseInt(process.env.VORMIA_TIMEOUT, 10)\n : 30000,\n VORMIA_WITH_CREDENTIALS:\n process.env.VORMIA_WITH_CREDENTIALS === \"true\" || false,\n};\n\nexport class VormiaError extends Error {\n constructor(message, status, response, code) {\n super(message);\n this.name = \"VormiaError\";\n this.status = status;\n this.response = response;\n this.code = code;\n }\n}\n\nexport class VormiaClient {\n constructor(config = {}) {\n // Start with default config from environment variables\n const defaultConfig = {\n baseURL: DEFAULT_CONFIG.VORMIA_API_URL || \"\",\n authTokenKey: DEFAULT_CONFIG.VORMIA_AUTH_TOKEN_KEY,\n withCredentials: DEFAULT_CONFIG.VORMIA_WITH_CREDENTIALS,\n timeout: DEFAULT_CONFIG.VORMIA_TIMEOUT,\n };\n\n // Merge with user-provided config (user config takes precedence)\n this.config = { ...defaultConfig, ...config };\n\n // Validate required configuration\n if (!this.config.baseURL) {\n console.warn(\n \"VormiaClient: No baseURL provided. Please set VORMIA_API_URL in your .env file or pass baseURL in the config.\"\n );\n }\n\n // Create axios instance\n this.axiosInstance = axios.create({\n baseURL: this.config.baseURL,\n timeout: this.config.timeout,\n headers: {\n \"Content-Type\": \"application/json\",\n ...this.config.headers,\n },\n withCredentials: this.config.withCredentials,\n });\n\n this.setupInterceptors();\n }\n\n setupInterceptors() {\n // Request interceptor\n this.axiosInstance.interceptors.request.use(\n (config) => {\n // Add auth token if available\n const token = this.getAuthToken();\n if (token) {\n config.headers.Authorization = `Bearer ${token}`;\n }\n return config;\n },\n (error) => Promise.reject(error)\n );\n\n // Response interceptor\n this.axiosInstance.interceptors.response.use(\n (response) => response,\n (error) => {\n if (error.response && error.response.status === 401) {\n // Handle unauthorized\n if (this.config.onUnauthenticated) {\n this.config.onUnauthenticated();\n }\n }\n return Promise.reject(error);\n }\n );\n }\n\n // Core HTTP methods\n async request(config) {\n try {\n const response = await this.axiosInstance.request(config);\n return response;\n } catch (error) {\n const status = error.response?.status;\n const response = error.response?.data;\n const message = error.message || \"Request failed\";\n throw new VormiaError(message, status, response, error.code);\n }\n }\n\n get(url, config) {\n return this.request({ ...config, method: \"GET\", url });\n }\n\n post(url, data, config) {\n return this.request({ ...config, method: \"POST\", url, data });\n }\n\n put(url, data, config) {\n return this.request({ ...config, method: \"PUT\", url, data });\n }\n\n delete(url, config) {\n return this.request({ ...config, method: \"DELETE\", url });\n }\n\n patch(url, data, config) {\n return this.request({ ...config, method: \"PATCH\", url, data });\n }\n\n // Auth methods\n setAuthToken(token) {\n if (typeof window !== \"undefined\") {\n localStorage.setItem(this.config.authTokenKey, token);\n }\n }\n\n clearAuthToken() {\n if (typeof window !== \"undefined\") {\n localStorage.removeItem(this.config.authTokenKey);\n }\n }\n\n getAuthToken() {\n if (typeof window !== \"undefined\") {\n return localStorage.getItem(this.config.authTokenKey);\n }\n return null;\n }\n}\n\n// Global instance management\nlet globalClient = null;\n\nexport function createVormiaClient(config) {\n globalClient = new VormiaClient(config);\n return globalClient;\n}\n\nexport function getGlobalVormiaClient() {\n if (!globalClient) {\n throw new Error(\n \"VormiaClient has not been initialized. Call createVormiaClient first.\"\n );\n }\n return globalClient;\n}\n\nexport function setGlobalVormiaClient(client) {\n globalClient = client;\n}\n"],"names":[],"mappings":"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"}