Files
supabase/apps/ui-library/registry/utils.ts
Ivan Vasilov 191a291c2d feat: Preliminary work for shadcn add @supabase/...block... (#39322)
* Build the current registry.

* Export the blocks as JSON and import them into registry.json.

* Move the registry.json into public/r.

* Fix a prettier error.

* Clean up extra files in vue blocks.

* Bump shadcn.

* Readd shadcn to vue blocks.

* Fix the shadcn types.

* Remove extra package exclusions.
2025-10-07 20:32:24 +02:00

30 lines
988 B
TypeScript

import lodash from 'lodash'
import type { RegistryItem } from 'shadcn/schema'
const { uniq, uniqBy } = lodash
const registryItemAppend = (item: RegistryItem, items: RegistryItem[]) => {
const neededRegDependencies = [
...(item.registryDependencies || []),
...items.flatMap((i) => i.registryDependencies),
]
const neededDependencies = [...(item.dependencies || []), ...items.flatMap((i) => i.dependencies)]
const neededFiles = [...(item.files || []), ...items.flatMap((i) => i.files)]
const registryBlock = {
...item,
registryDependencies: uniq(neededRegDependencies),
dependencies: uniq(neededDependencies),
files: uniqBy(neededFiles, (file) => file?.path),
docs: (item.docs, items.flatMap((i) => i.docs)).filter(Boolean).join('\n\n'),
// merge all environment variables
envVars: {
...item.envVars,
...items.reduce((acc, i) => ({ ...acc, ...i.envVars }), {}),
},
}
return registryBlock
}
export { registryItemAppend }