Home / Function/ makeValidateRequired() — supabase Function Reference

makeValidateRequired() — supabase Function Reference

Architecture documentation for the makeValidateRequired() function in Wrappers.utils.ts from the supabase codebase.

Entity Profile

Dependency Diagram

graph TD
  f17778f0_0474_c6f9_6004_6763d2604934["makeValidateRequired()"]
  8da2fdba_0ae6_da34_b6db_e886f1354db0["CreateIcebergWrapperSheet()"]
  8da2fdba_0ae6_da34_b6db_e886f1354db0 -->|calls| f17778f0_0474_c6f9_6004_6763d2604934
  a07b5e79_2b1c_182b_80b9_d4e85041defc["CreateWrapperSheet()"]
  a07b5e79_2b1c_182b_80b9_d4e85041defc -->|calls| f17778f0_0474_c6f9_6004_6763d2604934
  2d7aff71_ad70_13c1_d314_aaa9543be33f["EditWrapperSheet()"]
  2d7aff71_ad70_13c1_d314_aaa9543be33f -->|calls| f17778f0_0474_c6f9_6004_6763d2604934
  9e17af0f_33f2_6fc7_10c9_4e2f9fef4699["TableForm()"]
  9e17af0f_33f2_6fc7_10c9_4e2f9fef4699 -->|calls| f17778f0_0474_c6f9_6004_6763d2604934
  style f17778f0_0474_c6f9_6004_6763d2604934 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

apps/studio/components/interfaces/Integrations/Wrappers/Wrappers.utils.ts lines 5–51

export const makeValidateRequired = (options: { name: string; required: boolean }[]) => {
  const requiredOptionsSet = new Set(
    options.filter((option) => option.required).map((option) => option.name)
  )

  const requiredArrayOptionsSet = new Set(
    Array.from(requiredOptionsSet).filter((option) => option.includes('.'))
  )
  const requiredArrayOptions = Array.from(requiredArrayOptionsSet)

  return (values: Record<string, any>) => {
    const errors = Object.fromEntries(
      Object.entries(values)
        .flatMap(([key, value]) =>
          Array.isArray(value)
            ? [[key, value], ...value.map((v, i) => [`${key}.${i}`, v])]
            : [[key, value]]
        )
        .filter(([_key, value]) => {
          const [key, idx] = _key.split('.')

          if (
            idx !== undefined &&
            requiredOptionsSet.has(key) &&
            Object.keys(value).some((subKey) => requiredArrayOptionsSet.has(`${key}.${subKey}`))
          ) {
            const arrayOption = requiredArrayOptions.find((option) => option.startsWith(`${key}.`))
            if (arrayOption) {
              const subKey = arrayOption.split('.')[1]
              return !value[subKey]
            }

            return false
          }

          return requiredOptionsSet.has(key) && (Array.isArray(value) ? value.length < 1 : !value)
        })
        .map(([key]) => {
          if (key === 'table_name') return [key, 'Please provide a name for your table']
          else if (key === 'columns') return [key, 'Please select at least one column']
          else return [key, 'This field is required']
        })
    )

    return errors
  }
}

Subdomains

Frequently Asked Questions

What does makeValidateRequired() do?
makeValidateRequired() is a function in the supabase codebase.
What calls makeValidateRequired()?
makeValidateRequired() is called by 4 function(s): CreateIcebergWrapperSheet, CreateWrapperSheet, EditWrapperSheet, TableForm.

Analyze Your Own Codebase

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

Try Supermodel Free