diff --git a/src/backend/services/runtimeConfig.ts b/src/backend/services/runtimeConfig.ts index e0be560..1b9176d 100644 --- a/src/backend/services/runtimeConfig.ts +++ b/src/backend/services/runtimeConfig.ts @@ -34,6 +34,7 @@ export function generateRuntimeConfig( const envConfig = { BASE_PATH: basePath || '/', FRONTEND_API_KEY: config.apiKeys.frontend, + DEBOUNCE_MS: config.debounceMs, }; // eslint-disable-next-line @typescript-eslint/no-unused-vars diff --git a/src/frontend/public/env.js b/src/frontend/public/env.js index e2501bb..3c6d70f 100644 --- a/src/frontend/public/env.js +++ b/src/frontend/public/env.js @@ -3,5 +3,6 @@ // eslint-disable-next-line no-undef window.env = { "BASE_PATH": "/", - "FRONTEND_API_KEY": "frontend-dev-key" + "FRONTEND_API_KEY": "frontend-dev-key", + "DEBOUNCE_MS": 2000 }; diff --git a/src/frontend/src/pages/Home.tsx b/src/frontend/src/pages/Home.tsx index 82fb71f..f1b5344 100644 --- a/src/frontend/src/pages/Home.tsx +++ b/src/frontend/src/pages/Home.tsx @@ -3,9 +3,7 @@ import MapComponent from '../components/MapComponent'; import BitipAPI from '../services/api'; import { SimplifiedGeoIPResponse } from '../types'; import './Home.css'; - -const DEBOUNCE_MS = - parseInt(import.meta.env.VITE_DEBOUNCE_MS as string) || 2000; +import config from '../services/config'; const Home: React.FC = () => { const [inputIP, setInputIP] = useState(''); @@ -31,7 +29,7 @@ const Home: React.FC = () => { } finally { setLoading(false); } - }, DEBOUNCE_MS), + }, config.DEBOUNCE_MS), [] ); diff --git a/src/frontend/src/services/config.ts b/src/frontend/src/services/config.ts new file mode 100644 index 0000000..cfb5d96 --- /dev/null +++ b/src/frontend/src/services/config.ts @@ -0,0 +1,12 @@ +const runtimeEnv = window.env || {}; +const compileEnv = import.meta.env; + +const DEBOUNCE_MS = + runtimeEnv.DEBOUNCE_MS || parseInt(compileEnv.VITE_DEBOUNCE_MS); + +const processedEnv = { + DEBOUNCE_MS, +}; + +const env = { ...compileEnv, ...runtimeEnv, ...processedEnv }; +export default env; diff --git a/src/frontend/src/types/globals.d.ts b/src/frontend/src/types/globals.d.ts index 374e990..6b669a6 100644 --- a/src/frontend/src/types/globals.d.ts +++ b/src/frontend/src/types/globals.d.ts @@ -12,6 +12,7 @@ declare global { env: { BASE_PATH: string; FRONTEND_API_KEY: string; + DEBOUNCE_MS: number; }; } }