Home / Function/ recurseThroughParams() — supabase Function Reference

recurseThroughParams() — supabase Function Reference

Architecture documentation for the recurseThroughParams() function in legacy.ts from the supabase codebase.

Entity Profile

Dependency Diagram

graph TD
  d5b5e20b_fb94_1a99_c31e_76fe6e3a378e["recurseThroughParams()"]
  05d8312f_d822_2922_b652_a232d77d6bd8["generateParameters()"]
  05d8312f_d822_2922_b652_a232d77d6bd8 -->|calls| d5b5e20b_fb94_1a99_c31e_76fe6e3a378e
  d1bf8fbe_732a_75ff_99ce_68a16ff3330b["isDereferenced()"]
  d5b5e20b_fb94_1a99_c31e_76fe6e3a378e -->|calls| d1bf8fbe_732a_75ff_99ce_68a16ff3330b
  bb2e938d_5d19_f784_ec33_1ad931f27295["generateLabelParam()"]
  d5b5e20b_fb94_1a99_c31e_76fe6e3a378e -->|calls| bb2e938d_5d19_f784_ec33_1ad931f27295
  a8207671_cea6_d97a_3f79_204ffe961c1d["isUnion()"]
  d5b5e20b_fb94_1a99_c31e_76fe6e3a378e -->|calls| a8207671_cea6_d97a_3f79_204ffe961c1d
  a81fc47f_9e2a_6f40_cea0_6cbbb3437752["methodListGroup()"]
  d5b5e20b_fb94_1a99_c31e_76fe6e3a378e -->|calls| a81fc47f_9e2a_6f40_cea0_6cbbb3437752
  66f02e18_f90c_31d9_5b47_ce91de19fd89["methodListItemLabel()"]
  d5b5e20b_fb94_1a99_c31e_76fe6e3a378e -->|calls| 66f02e18_f90c_31d9_5b47_ce91de19fd89
  style d5b5e20b_fb94_1a99_c31e_76fe6e3a378e fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

apps/docs/generator/legacy.ts lines 105–138

function recurseThroughParams(paramDefinition: TsDoc.TypeDefinition) {
  // If this is a reference to another Param, let's use the reference instead
  let param = isDereferenced(paramDefinition) ? paramDefinition.type?.dereferenced : paramDefinition
  const labelParams = generateLabelParam(param)
  let subContent = ''

  let children = param?.children
  if (param.type?.declaration?.children) {
    children = param.type?.declaration?.children
  } else if (isUnion(param)) {
    // We don't want to show the union types if it's a literal
    const nonLiteralVariants = param.type.types.filter(({ type }) => type !== 'literal')

    if (nonLiteralVariants.length === 0) {
      children = null
    } else {
      children = nonLiteralVariants
    }
  } else if (param.type === 'reflection') {
    children = param.declaration.children
  }

  if (!!children) {
    let properties = children
      .sort((a, b) => a.name?.localeCompare(b.name)) // first alphabetical
      .sort((a, b) => (a.flags?.isOptional ? 1 : -1)) // required params first
      .map((x) => recurseThroughParams(x))

    let heading = `<h5 class="method-list-title method-list-title-isChild expanded">Properties</h5>`
    subContent = methodListGroup([heading].concat(properties).join('\n'))
    return methodListItemLabel(labelParams, subContent)
  }
  return methodListItemLabel(labelParams, subContent)
}

Subdomains

Frequently Asked Questions

What does recurseThroughParams() do?
recurseThroughParams() is a function in the supabase codebase.
What does recurseThroughParams() call?
recurseThroughParams() calls 5 function(s): generateLabelParam, isDereferenced, isUnion, methodListGroup, methodListItemLabel.
What calls recurseThroughParams()?
recurseThroughParams() is called by 1 function(s): generateParameters.

Analyze Your Own Codebase

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

Try Supermodel Free