@wthek/zod-transformer
v1.0.0
Published
Framework-agnostic utility that transforms Zod validation errors into structured http-error-kit errors. Preserves issue details and integrates cleanly with custom formatters.
Maintainers
Readme
Official @wthek Extension – Zod Transformer for http-error-kit
Convert Zod validation errors into structured http-error-kit errors — framework-free
Built for projects using http-error-kit, this utility transforms native Zod validation errors into rich, consistent BadRequestError responses.
💡 What the HEK?! Tired of parsing raw Zod errors? Let
@wthek/zod-transformerconvert them into usable, standardized errors — no framework needed.
Features
- Framework-Agnostic – Works with any HTTP server: Express, Fastify, Hapi, Koa, NestJS, etc
- Preserves Zod Issues – Keeps all raw
ZodIssue[]data for later formatting - Handles ZodError gracefully – Converts it to
HttpError.BadRequest - Formatter-Friendly – Customize your output using
KitHttpErrorConfig.configureFormatter - Plug-and-play logic – One function to drop in wherever you handle errors
- Composable – Can be used alongside
@wthek/*-middlewareextension
Table of Content
Installation
npm install @wthek/zod-transformerUsage
Add Middleware Just Before Starting the Server
Use KitZodTransformer in your error pipeline before global error-handling middleware like @wthek/express-middleware or @wthek/fastify-middleware.
This ensures Zod validation errors are transformed into http-error-kit errors early, allowing WTHek or any other middlewares to handle them cleanly.
import { KitZodTransformer } from "@wthek/zod-transformer";
import { z } from "zod";
try {
const schema = z.object({
name: z.string(),
age: z.number().min(18),
});
schema.parse({ name: "Hek", age: 14 }); // Will fail
} catch (err) {
throw KitZodTransformer(err); // Converts to HttpError.BadRequest(...)
}With Express/Fastify/NestJS
Use the transformer early in your error handling pipeline — before applying framework-specific middleware like:
This ensures Zod validation errors are transformed into http-error-kit errors early, allowing WTHek or any other middlewares to handle them cleanly.
Optional: Custom Formatting with KitHttpErrorConfig
To define how your error responses look in production:
import { KitHttpErrorConfig } from "http-error-kit";
KitHttpErrorConfig.configureFormatter(
(statusCode, message, details, ...args) => ({
code: statusCode,
msg: message,
extra: details,
traceId: args[0] || "0fcb44cb-4f09-4900-8c4f-73ddd37ffe0a",
})
);
// Response
{
"code": 400,
"msg": "Zod validation failed",
"extra": {
"issues": [
{
"code": "too_small",
"minimum": 18,
"type": "number",
"inclusive": true,
"exact": false,
"message": "Number must be greater than or equal to 18",
"path": ["age"]
}
]
},
"traceId": "0fcb44cb-4f09-4900-8c4f-73ddd37ffe0a"
}
Explore More WTHek Extensions
The WTHek ecosystem continues to grow with new extensions to simplify error handling across various frameworks and libraries. Stay updated with the latest tools that integrate seamlessly with http-error-kit.
Check out the official list of extensions: Official Extensions List
People
The original author of the project is Himanshu Bansal
Donations
This is all voluntary work, so if you want to support my efforts you can
You can also use the following:
License
@wthek/zod-transformer project is open-sourced software licensed under the MIT license by Himanshu Bansal.
