Zod CoerceArray

coerceArray Funktion

Bei der Verwendung von Zod zur Schema-Validierung kann es vorkommen, dass sowohl einzelne Werte als auch Arrays akzeptiert werden sollen. Die Funktion coerceArray hilft dabei, indem sie die Eingabe in ein Array-Format umwandelt.

import type { ZodType } from 'zod';
import { z } from 'zod';

export function coerceArray<T extends ZodType>(schema: T) {
  return z
    .union([schema, z.array(schema)])
    .transform((rel) => (Array.isArray(rel) ? rel : [rel]) as T['_output'][]);
}

Nutzungsbeispiel

Das folgende Beispiel zeigt, wie die Funktion coerceArray verwendet wird, um sowohl einzelne Werte als auch Arrays zu validieren und in ein Array umzuwandeln.

import { z } from 'zod';
import { coerceArray } from './coerceArray';

const schema = coerceArray(z.enum(['active', 'inactive']));

// Validierung von Einzelwerten
schema.parse('active'); // ['active']
schema.parse(['active', 'inactive']); // ['active', 'inactive']

© 2025 - Alexander Friesen