Skip to the content.

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-transformer convert them into usable, standardized errors — no framework needed.

GitHub Workflow Status npm version GitHub license GitHub Issues Codacy Badge Codacy Badge npms.io (final) npm npm bundle size (version) NPM Type Definitions Socket Badge GitHub Pages Github Sponsors Open Collective Buy Me A Coffee Patreon PayPal

Features

Table of Content

Installation

npm install @wthek/zod-transformer

Usage

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:

BNB: 0x1D59a291391a3CE17C63D5dC50F258Dc0Ab62889

BTC: bc1p22h4nsad5d8ketyhuvf0vyva6unttxwzzqvkty5r839as0mlclgs72d3mf

ETH: 0x1D59a291391a3CE17C63D5dC50F258Dc0Ab62889

License

@wthek/zod-transformer project is open-sourced software licensed under the MIT license by Himanshu Bansal.