search.ts — ui Source File
Architecture documentation for search.ts, a typescript file in the ui codebase. 6 imports, 1 dependents.
Entity Profile
Dependency Diagram
graph LR 97050a69_2c4b_4c20_ca72_89be3ec705bd["search.ts"] c41eed12_c415_48c8_bcf4_9d09d3424a18["api.ts"] 97050a69_2c4b_4c20_ca72_89be3ec705bd --> c41eed12_c415_48c8_bcf4_9d09d3424a18 95834bbc_689d_8b36_7d45_d37bbccd3517["getRegistry"] 97050a69_2c4b_4c20_ca72_89be3ec705bd --> 95834bbc_689d_8b36_7d45_d37bbccd3517 a3b2545e_3d8c_699d_ef11_6ab18db14666["schema"] 97050a69_2c4b_4c20_ca72_89be3ec705bd --> a3b2545e_3d8c_699d_ef11_6ab18db14666 b2895591_2a74_d518_deda_2f26be766dcb["get-config"] 97050a69_2c4b_4c20_ca72_89be3ec705bd --> b2895591_2a74_d518_deda_2f26be766dcb efb28b80_2677_0692_ff1f_c57fedcf6952["fuzzysort"] 97050a69_2c4b_4c20_ca72_89be3ec705bd --> efb28b80_2677_0692_ff1f_c57fedcf6952 6802ce19_522d_e5fb_e458_8826d9f6952e["zod"] 97050a69_2c4b_4c20_ca72_89be3ec705bd --> 6802ce19_522d_e5fb_e458_8826d9f6952e e11ff698_0507_c6bc_62af_f84a56089cf7["search.test.ts"] e11ff698_0507_c6bc_62af_f84a56089cf7 --> 97050a69_2c4b_4c20_ca72_89be3ec705bd style 97050a69_2c4b_4c20_ca72_89be3ec705bd fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { searchResultItemSchema, searchResultsSchema } from "@/src/schema"
import { Config } from "@/src/utils/get-config"
import fuzzysort from "fuzzysort"
import { z } from "zod"
import { getRegistry } from "./api"
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),
}
// ... (115 more lines)
Domain
Subdomains
Types
Dependencies
- api.ts
- fuzzysort
- get-config
- getRegistry
- schema
- zod
Imported By
Source
Frequently Asked Questions
What does search.ts do?
search.ts is a source file in the ui codebase, written in typescript. It belongs to the FrameworkTooling domain, SchemaValidation subdomain.
What functions are defined in search.ts?
search.ts defines 4 function(s): buildRegistryItemNameFromRegistry, isUrl, searchItems, searchRegistries.
What does search.ts depend on?
search.ts imports 6 module(s): api.ts, fuzzysort, get-config, getRegistry, schema, zod.
What files import search.ts?
search.ts is imported by 1 file(s): search.test.ts.
Where is search.ts in the architecture?
search.ts is located at packages/shadcn/src/registry/search.ts (domain: FrameworkTooling, subdomain: SchemaValidation, directory: packages/shadcn/src/registry).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free