import type { Auth0ClientOptions, CacheLocation } from '@auth0/auth0-spa-js' interface EnvConfig { name: string apiUrl: string auth: Auth0ClientOptions dev: boolean tracesSampleRate: number grafanaUrl: string } export const envConfig = (host: string): EnvConfig => { const options = { useRefreshTokens: true, cacheLocation: 'localstorage' as CacheLocation, authorizationParams: { audience: 'http://dancefinder.unbound.se', redirect_uri: window.location.origin, }, } const prod = { ...options, domain: 'unbound.eu.auth0.com', clientId: 'orQfnvCPUR5C3mJkKoiWLQHOVQsBn60e', } switch (host) { case 'localhost': return { name: 'development', apiUrl: 'http://localhost:6080/query', auth: prod, dev: true, tracesSampleRate: 1.0, grafanaUrl: '', } case 'dancefinder.unbound.se': return { name: 'production', apiUrl: 'https://dancefinder.unbound.se/query', auth: prod, dev: false, tracesSampleRate: 1.0, grafanaUrl: 'https://faro-collector-prod-eu-west-0.grafana.net/collect/532676b975308d70605d856635721a61', } default: throw new Error(`unexpected host: ${host}`) } }