Skip to main content

Utilities quickstart

@alt-stack/zod-error turns a ZodError into text for a human or an object for a structured logging system.

1. Install

pnpm add @alt-stack/zod-error zod

The package declares Zod 4 as a peer dependency.

2. Parse at a boundary

import { z } from "zod";
import { zodErrorToString } from "@alt-stack/zod-error";

const CreateUser = z.object({
email: z.string().email(),
age: z.number().int().nonnegative(),
});

const parsed = CreateUser.safeParse({ email: "invalid", age: -1 });

if (!parsed.success) {
console.error(zodErrorToString(parsed.error));
}

Each issue becomes path: message; multiple issues are separated with ; . An issue at the schema root uses (root) as its path.

3. Emit structured data

import { zodErrorToStructuredLog } from "@alt-stack/zod-error";

if (!parsed.success) {
console.warn(
"create-user validation failed",
zodErrorToStructuredLog(parsed.error),
);
}

The returned object contains a stable type, summary, issue count, and normalized issue array.