Collection References

Kaskadiert Löschungen oder entfernt Referenzen bei relationship- und upload-Feldern in Payload, wenn ein referenziertes Dokument gelöscht wird.

Community 2 2/Wo. MIT v1.0.2

Installation

pnpm add @lizardglobal/payload-collection-references

Über

Payload übernimmt standardmäßig keine Bereinigung von relationship- und upload-Feldern, deren referenziertes Dokument gelöscht wurde. Dieses Plugin schließt diese Lücke. Bei der Initialisierung der Konfiguration durchläuft es den Feldbaum jeder Kollektion (einschließlich groups, tabs und arrays) und registriert alle relationship- und upload-Felder über ihre Pfadnotation. Anschließend injiziert es einen `beforeDelete`-Hook in jede Kollektion, auf die eine andere Kollektion verweist. Beim Löschen eines Dokuments fragt der Hook alle referenzierenden Kollektionen ab und wendet eine von zwei Strategien pro Feld an: `delete` entfernt die referenzierenden Dokumente kaskadierend und löst deren eigene `beforeDelete`-Hooks rekursiv aus. `unlink` setzt das Feld auf `null` oder einen konfigurierbaren `unlinkValue`, während das Dokument erhalten bleibt. Automatisch erkannte Felder verwenden standardmäßig `delete`; explizite Deklarationen überschreiben die Strategie pro Feld. Die Konfiguration ist kompakt. `collectionReferencesPlugin()` ohne Argumente wendet das Plugin auf alle Kollektionen an. Mit `collections` wird eine Allowlist definiert, mit `exclude` eine Blocklist. `declarations` ermöglicht pro-Feld-Überschreibungen mit verschachtelten Pfaden wie `seo.ogImage`. Ein `disabled`-Flag deaktiviert das Plugin vollständig, was sich für Testumgebungen eignet. Zirkuläre Referenzen zwischen Kollektionen werden über `req.context` nachverfolgt, um Endlosschleifen zu vermeiden. Für Projekte mit erweiterten Anforderungen wird die Core-API separat exportiert: `withCollectionReferences` wrappt eine einzelne Kollektionskonfiguration, `finalizeCollectionReferences` resolves die Menge, und Helfer wie `getReferencesPointingTo`, `buildWhereForReferences`, `groupReferencesByCollection`, `getCollectionConfig`, `filterUploadCollections`, `discoverRelationshipFields` und `mergeDeclarations` legen die Interna offen. Das Plugin setzt Payload `^3.84.1` voraus und ist explizit als experimentell markiert: Kollektionsschemata und Verhalten können sich zwischen Releases ändern. Versionen sollten daher bewusst fixiert werden.

Paketinformationen

Paketname
@lizardglobal/payload-collection-references
Neueste Version
1.0.2
Entpackte Größe
77 kB
Lizenz
MIT
Wöchentliche Downloads
2
Zuletzt veröffentlicht
4. Aug. 2026

Mehr von LizardGlobalGH

Profil ansehen

Ähnliche Plugins

Mehr in Content