mirror of
https://github.com/supabase/supabase.git
synced 2026-10-06 01:45:10 +03:00
60 lines
2.4 KiB
TypeScript
60 lines
2.4 KiB
TypeScript
// [Joshen] This is to the best of interpreting the syntax from the API response
|
|
// // There's different format for PG13 (depending on authentication method being md5) and PG14
|
|
export const constructConnStringSyntax = (
|
|
connString: string,
|
|
{
|
|
ref,
|
|
cloudProvider,
|
|
region,
|
|
tld,
|
|
portNumber,
|
|
}: { ref: string; cloudProvider: string; region: string; tld: string; portNumber: string }
|
|
) => {
|
|
if (connString.includes('postgres:[YOUR-PASSWORD]')) {
|
|
// PG 13 + Authentication MD5
|
|
return [
|
|
{ value: 'postgres://', tooltip: undefined },
|
|
{ value: '[user]', tooltip: 'Database user (e.g postgres)' },
|
|
{ value: ':', tooltip: undefined },
|
|
{ value: '[password]', tooltip: 'Database password' },
|
|
{ value: '@', tooltip: undefined },
|
|
{ value: cloudProvider.toLocaleLowerCase(), tooltip: 'Cloud provider' },
|
|
{ value: '-0-', tooltip: undefined },
|
|
{ value: region, tooltip: "Project's region" },
|
|
{ value: `.pooler.supabase.${tld}:`, tooltip: undefined },
|
|
{ value: portNumber, tooltip: 'Port number (Use 5432 if using prepared statements)' },
|
|
{ value: '/', tooltip: undefined },
|
|
{ value: '[db-name]', tooltip: 'Database name (e.g postgres)' },
|
|
{ value: `?options=reference%3D`, tooltip: undefined },
|
|
{ value: ref, tooltip: "Project's reference ID" },
|
|
]
|
|
} else {
|
|
return [
|
|
{ value: 'postgres://', tooltip: undefined },
|
|
{ value: '[user]', tooltip: 'Database user (e.g postgres)' },
|
|
{ value: '.', tooltip: undefined },
|
|
{ value: ref, tooltip: "Project's reference ID" },
|
|
{ value: ':', tooltip: undefined },
|
|
{ value: '[password]', tooltip: 'Database password' },
|
|
{ value: '@', tooltip: undefined },
|
|
{ value: cloudProvider.toLocaleLowerCase(), tooltip: 'Cloud provider' },
|
|
{ value: '-0-', tooltip: undefined },
|
|
{ value: region, tooltip: "Project's region" },
|
|
{ value: `.pooler.supabase.${tld}:`, tooltip: undefined },
|
|
{ value: portNumber, tooltip: 'Port number (Use 5432 if using prepared statements)' },
|
|
{ value: '/', tooltip: undefined },
|
|
{ value: '[db-name]', tooltip: 'Database name (e.g postgres)' },
|
|
]
|
|
}
|
|
}
|
|
|
|
export const getPoolerTld = (connString: string) => {
|
|
try {
|
|
const segment = connString.split('pooler.supabase.')[1]
|
|
const tld = segment.split(':6543')[0]
|
|
return tld
|
|
} catch {
|
|
return 'com'
|
|
}
|
|
}
|