From 4d2d35f3609b60fce77fd6c72ab1165f0aa48133 Mon Sep 17 00:00:00 2001 From: Matthieu Date: Wed, 17 Sep 2025 08:16:27 +0200 Subject: [PATCH] feat: use runtime config for public env --- app/composables/useApi.js | 8 +++++--- nuxt.config.ts | 13 +++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/app/composables/useApi.js b/app/composables/useApi.js index 232c416..b5ec749 100644 --- a/app/composables/useApi.js +++ b/app/composables/useApi.js @@ -2,8 +2,10 @@ import { useToast } from './useToast' export function useApi() { const { showSuccess, showError, showInfo } = useToast() - const API_BASE_URL = process.env.NUXT_PUBLIC_API_BASE_URL || 'http://localhost:3000/api' - const API_TIMEOUT = parseInt(process.env.NUXT_PUBLIC_API_TIMEOUT || '30000') + const { public: publicConfig } = useRuntimeConfig() + const API_BASE_URL = publicConfig.apiBaseUrl || 'http://localhost:3000/api' + const parsedApiTimeout = Number(publicConfig.apiTimeout ?? 30000) + const API_TIMEOUT = Number.isNaN(parsedApiTimeout) ? 30000 : parsedApiTimeout const apiCall = async (endpoint, options = {}) => { const url = `${API_BASE_URL}${endpoint}` @@ -72,4 +74,4 @@ export function useApi() { patch, delete: del } -} \ No newline at end of file +} diff --git a/nuxt.config.ts b/nuxt.config.ts index 92fde2d..0dad093 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -5,6 +5,19 @@ export default defineNuxtConfig({ devServer: { port: 3001, }, + runtimeConfig: { + public: { + apiBaseUrl: process.env.NUXT_PUBLIC_API_BASE_URL || 'http://localhost:3000/api', + appUrl: process.env.NUXT_PUBLIC_APP_URL || 'http://localhost:3001', + appName: process.env.NUXT_PUBLIC_APP_NAME || 'Inventory Management System', + apiTimeout: process.env.NUXT_PUBLIC_API_TIMEOUT || '30000', + requestTimeout: process.env.NUXT_PUBLIC_REQUEST_TIMEOUT || '10000', + enableDebug: process.env.NUXT_PUBLIC_ENABLE_DEBUG || 'true', + enableAnalytics: process.env.NUXT_PUBLIC_ENABLE_ANALYTICS || 'false', + csrfToken: process.env.NUXT_PUBLIC_CSRF_TOKEN || '', + logLevel: process.env.NUXT_PUBLIC_LOG_LEVEL || 'debug', + }, + }, vite: { plugins: [tailwindcss()], },