Home / Function/ searchRegistries() — ui Function Reference

searchRegistries() — ui Function Reference

Architecture documentation for the searchRegistries() function in search.ts from the ui codebase.

Entity Profile

Dependency Diagram

graph TD
  e6f35579_6ae8_ff1e_5451_66a5bfd635b0["searchRegistries()"]
  97050a69_2c4b_4c20_ca72_89be3ec705bd["search.ts"]
  e6f35579_6ae8_ff1e_5451_66a5bfd635b0 -->|defined in| 97050a69_2c4b_4c20_ca72_89be3ec705bd
  95834bbc_689d_8b36_7d45_d37bbccd3517["getRegistry()"]
  e6f35579_6ae8_ff1e_5451_66a5bfd635b0 -->|calls| 95834bbc_689d_8b36_7d45_d37bbccd3517
  52d1915f_aae4_92b3_79b0_94994822dd9e["buildRegistryItemNameFromRegistry()"]
  e6f35579_6ae8_ff1e_5451_66a5bfd635b0 -->|calls| 52d1915f_aae4_92b3_79b0_94994822dd9e
  c268ce34_f24c_a3dd_6ee3_4e563522e9be["searchItems()"]
  e6f35579_6ae8_ff1e_5451_66a5bfd635b0 -->|calls| c268ce34_f24c_a3dd_6ee3_4e563522e9be
  style e6f35579_6ae8_ff1e_5451_66a5bfd635b0 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/shadcn/src/registry/search.ts lines 8–62

export async function searchRegistries(
  registries: string[],
  options?: {
    query?: string
    limit?: number
    offset?: number
    config?: Partial<Config>
    useCache?: boolean
  }
) {
  const { query, limit, offset, config, useCache } = options || {}

  let allItems: z.infer<typeof searchResultItemSchema>[] = []

  for (const registry of registries) {
    const registryData = await getRegistry(registry, { config, useCache })

    const itemsWithRegistry = (registryData.items || []).map((item) => ({
      name: item.name,
      type: item.type,
      description: item.description,
      registry: registry,
      addCommandArgument: buildRegistryItemNameFromRegistry(
        item.name,
        registry
      ),
    }))

    allItems = allItems.concat(itemsWithRegistry)
  }

  if (query) {
    allItems = searchItems(allItems, {
      query,
      limit: allItems.length,
      keys: ["name", "description"],
    }) as z.infer<typeof searchResultItemSchema>[]
  }

  const paginationOffset = offset || 0
  const paginationLimit = limit || allItems.length
  const totalItems = allItems.length

  const result: z.infer<typeof searchResultsSchema> = {
    pagination: {
      total: totalItems,
      offset: paginationOffset,
      limit: paginationLimit,
      hasMore: paginationOffset + paginationLimit < totalItems,
    },
    items: allItems.slice(paginationOffset, paginationOffset + paginationLimit),
  }

  return searchResultsSchema.parse(result)
}

Subdomains

Frequently Asked Questions

What does searchRegistries() do?
searchRegistries() is a function in the ui codebase, defined in packages/shadcn/src/registry/search.ts.
Where is searchRegistries() defined?
searchRegistries() is defined in packages/shadcn/src/registry/search.ts at line 8.
What does searchRegistries() call?
searchRegistries() calls 3 function(s): buildRegistryItemNameFromRegistry, getRegistry, searchItems.

Analyze Your Own Codebase

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

Try Supermodel Free