* 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.
30 lines
988 B
TypeScript
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 }
|