mirror of
https://github.com/supabase/supabase.git
synced 2026-10-08 19:05:06 +03:00
# Conflicts: # apps/studio/components/interfaces/Auth/AuthProvidersForm/FormField.tsx # apps/studio/components/interfaces/Auth/AuthProvidersForm/ProviderForm.tsx # apps/studio/components/interfaces/Auth/AuthProvidersForm/index.tsx # apps/studio/components/interfaces/BranchManagement/BranchPanels.tsx # apps/studio/components/interfaces/BranchManagement/Overview.tsx # apps/studio/components/interfaces/Settings/General/General.tsx # apps/studio/components/layouts/AppLayout/BranchDropdown.tsx # apps/studio/components/layouts/Navigation/NavigationBar/NavigationBar.utils.tsx # apps/studio/package.json # apps/studio/pages/project/[ref]/merge.tsx # package.json # pnpm-lock.yaml
29 lines
962 B
TypeScript
29 lines
962 B
TypeScript
import type { ProjectConfig } from '@supabase-dx/config'
|
|
import { useQuery } from '@tanstack/react-query'
|
|
|
|
import { useSelectedProjectQuery } from '@/hooks/misc/useSelectedProject'
|
|
|
|
const ENV_SERVER = 'http://localhost:3457'
|
|
|
|
export type { ProjectConfig }
|
|
|
|
async function fetchProjectConfig(projectRef: string): Promise<ProjectConfig> {
|
|
const res = await fetch(`${ENV_SERVER}/projects/${projectRef}/env?scope=config`)
|
|
if (!res.ok) throw new Error(`env-server error: ${res.status}`)
|
|
const vars: { key: string; value: string }[] = await res.json()
|
|
return Object.fromEntries(vars.map((v) => [v.key, v.value])) as ProjectConfig
|
|
}
|
|
|
|
export function useProjectConfig() {
|
|
const { data: project } = useSelectedProjectQuery()
|
|
const projectRef = project?.parentRef
|
|
|
|
return useQuery({
|
|
queryKey: ['project-config', projectRef],
|
|
queryFn: () => fetchProjectConfig(projectRef!),
|
|
enabled: !!projectRef,
|
|
retry: false,
|
|
throwOnError: false,
|
|
})
|
|
}
|