Vollstaendige Next.js/Prisma-E-Commerce-Anwendung fuer eine Imkerei: Shop, Warenkorb, Stripe-Checkout, Kundenkonto mit 2FA, Admin-Bereich (Produkte, Ernten, Chargen, Bestellungen, Gutscheine, admin-editierbare Website-Inhalte), i18n (DE/EN), Rate-Limiting/CSP/Audit-Log-Haertung, PostgreSQL- und MySQL-Unterstuetzung ueber austauschbare Prisma- Treiber-Adapter, Unit-/Komponenten-/E2E-Tests.
13 lines
634 B
TypeScript
13 lines
634 B
TypeScript
/**
|
|
* Normalisiert den Rueckgabewert eines Json-Feldes (tasteTags/images auf
|
|
* Harvest/Product — siehe schema.prisma-Kommentare dort) zu einem
|
|
* String-Array. Diese Felder sind bewusst als Json statt String[] modelliert,
|
|
* da MySQL keine nativen Skalar-Arrays kennt; zur Laufzeit steht dort aber
|
|
* immer ein JSON-Array aus Strings, solange nur ueber die App geschrieben
|
|
* wird. Fremdartige/fehlerhafte Werte werden defensiv zu [] statt zu werfen.
|
|
*/
|
|
export function asStringArray(value: unknown): string[] {
|
|
if (!Array.isArray(value)) return [];
|
|
return value.filter((item): item is string => typeof item === "string");
|
|
}
|