Collection References
Плагин для Payload CMS, который автоматически удаляет или обнуляет ссылки на документ при его удалении.
Установка
pnpm add @lizardglobal/payload-collection-references Описание
В Payload поле типа `relationship` или `upload` может указывать на документ, который уже не существует. Плагин закрывает эту проблему. При инициализации конфигурации он обходит дерево полей каждого целевого коллекции, включая группы, вкладки и массивы, и находит все поля `relationship` и `upload` по путям в dot-нотации. Затем на каждую коллекцию, на которую кто-то ссылается, добавляется хук `beforeDelete`. При удалении документа хук опрашивает все ссылающиеся коллекции и для каждого поля применяет одну из двух стратегий. Стратегия `delete` каскадно удаляет ссылающиеся документы и заново запускает их собственные хуки `beforeDelete`. Стратегия `unlink` сохраняет документ, но устанавливает поле в `null` или в заданное значение `unlinkValue`. По умолчанию для автоматически найденных полей используется `delete`, но явные объявления переопределяют стратегию для конкретного поля. Конфигурация минимальна. Вызовите `collectionReferencesPlugin()` без аргументов, чтобы применить плагин ко всем коллекциям, или передайте `collections` для разрешительного списка, `exclude` для запретительного списка и `declarations` для переопределения отдельных полей с вложенными путями вроде `seo.ogImage`. Флаг `disabled` превращает плагин в заглушку, что удобно для тестовых окружений. Циклические ссылки между коллекциями отслеживаются через `req.context`, чтобы избежать бесконечных циклов. Для проектов, где нужен ручной контроль, доступно отдельное API: функция `withCollectionReferences` оборачивает конфиг одной коллекции, `finalizeCollectionReferences` разрешает набор ссылок, а вспомогательные функции вроде `getReferencesPointingTo`, `buildWhereForReferences` и `groupReferencesByCollection` открывают доступ к внутренностям. Плагин работает с Payload `^3.84.1` и требует Node >=20. Он помечен как экспериментальный: схемы коллекций и поведение могут меняться между релизами, поэтому фиксируйте версию явно. Лицензия MIT, код написан на TypeScript.
О пакете
- Имя пакета
@lizardglobal/payload-collection-references- Последняя версия
1.0.2- Размер
- 77 кБ
- Лицензия
- MIT
- Загрузок в неделю
- 2
- Последняя публикация
- 4 авг. 2026 г.
Ещё от LizardGlobalGH
Профиль автораRich Text Lexical React Native
Рендерит сериализованный контент Lexical из Payload CMS в React Native-приложениях с переопределяемыми конвертерами и нативными примитивами.
Dry Run
Плагин для Payload CMS: проверяет операцию create с полным циклом валидации, хуков и доступа, затем откатывает транзакцию.
Discord Sync
Синхронизирует гильдии, каналы, участников и роли Discord с коллекциями Payload по запросу, через HTTP или по расписанию через discord.js.
Похожие плагины
Ещё в категории «Контент»Sitemap
Строит sitemap.xml из коллекций Payload и статических страниц и хранит файлы в любом storage adapter.
Structured Markdown
Обеспечивает структурированный Markdown-редактирование для Payload CMS с расширенными функциями.
AI Plugin
Интегрирует функции ИИ для генерации контента в Payload CMS.
onpage for TanStack Start
Подключает плагин payload-onpage к сайту на TanStack Start, чтобы редакторы правили контент и смотрели черновики прямо на странице.
On-Page Editing
Встраивает редактирование Payload-страниц прямо в Next.js-фронтенд, сохраняет правки как черновики и выдаёт ссылки для предпросмотра.
Lexical Inline Rich Text Editor
Добавляет редактирование полей richText Payload прямо на странице: клик по тексту открывает редактор без перехода в админку.