diff --git a/.changeset/fix-universal-registry-item-empty-files.md b/.changeset/fix-universal-registry-item-empty-files.md new file mode 100644 index 0000000000..863599f638 --- /dev/null +++ b/.changeset/fix-universal-registry-item-empty-files.md @@ -0,0 +1,5 @@ +--- +"shadcn": patch +--- + +Fix support for universal registry items that only have dependencies without files diff --git a/packages/shadcn/src/registry/utils.test.ts b/packages/shadcn/src/registry/utils.test.ts index e94198b1c9..79b42fe393 100644 --- a/packages/shadcn/src/registry/utils.test.ts +++ b/packages/shadcn/src/registry/utils.test.ts @@ -216,16 +216,16 @@ describe("isUniversalRegistryItem", () => { expect(isUniversalRegistryItem(registryItem)).toBe(false) }) - it("should return false when files array is empty", () => { + it("should return true when files array is empty", () => { const registryItem = { files: [], } - expect(isUniversalRegistryItem(registryItem)).toBe(false) + expect(isUniversalRegistryItem(registryItem)).toBe(true) }) - it("should return false when files is undefined", () => { + it("should return true when files is undefined", () => { const registryItem = {} - expect(isUniversalRegistryItem(registryItem)).toBe(false) + expect(isUniversalRegistryItem(registryItem)).toBe(true) }) it("should return false when registryItem is null", () => { diff --git a/packages/shadcn/src/registry/utils.ts b/packages/shadcn/src/registry/utils.ts index 84fd4cdc62..d17abe197f 100644 --- a/packages/shadcn/src/registry/utils.ts +++ b/packages/shadcn/src/registry/utils.ts @@ -278,13 +278,16 @@ export function isUniversalRegistryItem( | null | undefined ): boolean { - return ( - !!registryItem?.files?.length && - registryItem.files.every( - (file) => - !!file.target && - (file.type === "registry:file" || file.type === "registry:item") - ) + if (!registryItem) { + return false + } + + const files = registryItem.files ?? [] + + return files.every( + (file) => + !!file.target && + (file.type === "registry:file" || file.type === "registry:item") ) }