Home / Function/ generateReferenceMetadata() — supabase Function Reference

generateReferenceMetadata() — supabase Function Reference

Architecture documentation for the generateReferenceMetadata() function in Reference.utils.ts from the supabase codebase.

Entity Profile

Dependency Diagram

graph TD
  201fe934_d9a7_666d_72d6_d4c613257d3c["generateReferenceMetadata()"]
  9e04b292_66c7_6129_dcb5_dfa277f2392b["parseReferencePath()"]
  201fe934_d9a7_666d_72d6_d4c613257d3c -->|calls| 9e04b292_66c7_6129_dcb5_dfa277f2392b
  32dd3152_4871_894d_754e_0b5325558dba["getFlattenedSections()"]
  201fe934_d9a7_666d_72d6_d4c613257d3c -->|calls| 32dd3152_4871_894d_754e_0b5325558dba
  470231a1_c969_e49c_869a_855dad8b74f8["generateOpenGraphImageMeta()"]
  201fe934_d9a7_666d_72d6_d4c613257d3c -->|calls| 470231a1_c969_e49c_869a_855dad8b74f8
  style 201fe934_d9a7_666d_72d6_d4c613257d3c fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

apps/docs/features/docs/Reference.utils.ts lines 130–193

export async function generateReferenceMetadata(
  props: { params: Promise<{ slug: Array<string> }> },
  resolvingParent: ResolvingMetadata
): Promise<Metadata> {
  const { slug } = await props.params
  const { alternates: parentAlternates, openGraph: parentOg } = await resolvingParent

  const parsedPath = parseReferencePath(slug)
  const isClientSdkReference = parsedPath.__type === 'clientSdk'
  const isCliReference = parsedPath.__type === 'cli'
  const isApiReference = parsedPath.__type === 'api'
  const isSelfHostingReference = parsedPath.__type === 'self-hosting'
  if (isClientSdkReference) {
    const { sdkId, maybeVersion, path } = parsedPath
    const version = maybeVersion ?? REFERENCES[sdkId].versions[0]

    const flattenedSections = await getFlattenedSections(sdkId, version)

    const displayName = REFERENCES[sdkId].name
    const sectionTitle =
      slug.length > 0
        ? flattenedSections?.find((section) => section.slug === slug[0])?.title
        : undefined
    const url = [BASE_PATH, 'reference', sdkId, path[0]].filter(Boolean).join('/')

    const images = generateOpenGraphImageMeta({
      type: 'API Reference',
      title: `${displayName}${sectionTitle ? `: ${sectionTitle}` : ''}`,
    })

    return {
      title: `${displayName} API Reference | ${metadataTitle || 'Supabase'}`,
      description: `API reference for the ${displayName} Supabase SDK`,
      ...(slug.length > 0
        ? {
            alternates: {
              canonical: url,
            },
          }
        : {}),
      openGraph: {
        ...parentOg,
        url,
        images,
      },
    }
  } else if (isCliReference) {
    return {
      title: 'CLI Reference | Supabase Docs',
      description: 'CLI reference for the Supabase CLI',
    }
  } else if (isApiReference) {
    return {
      title: 'Management API Reference | Supabase Docs',
      description: 'Management API reference for the Supabase API',
    }
  } else if (isSelfHostingReference) {
    return {
      title: 'Self-Hosting | Supabase Docs',
    }
  } else {
    return {}
  }
}

Subdomains

Frequently Asked Questions

What does generateReferenceMetadata() do?
generateReferenceMetadata() is a function in the supabase codebase.
What does generateReferenceMetadata() call?
generateReferenceMetadata() calls 3 function(s): generateOpenGraphImageMeta, getFlattenedSections, parseReferencePath.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free