New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

mongoose-zod-error-formatter

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mongoose-zod-error-formatter

A powerful error formatter utility for Mongoose and Zod validation errors, designed for Express.js applications. Simplify and unify your API error handling with structured, user-friendly error messages.

latest
Source
npmnpm
Version
1.0.0
Version published
Maintainers
1
Created
Source

mongoose-zod-error-formatter

npm version
License: MIT

A robust and lightweight utility package to format error objects from Mongoose, Zod, and general errors into consistent, user-friendly responses for Express.js applications written in TypeScript. Perfect for API error handling, validation, and debugging.

Features

  • Format Mongoose validation errors with detailed paths and messages
  • Format Mongoose cast errors (e.g., invalid ObjectId)
  • Format Zod validation errors with clear path and messages
  • Format simple/general errors into structured responses
  • TypeScript-ready with strict types for error messages and responses
  • Easily integrate into any Express middleware or error handler

Installation

npm install mongoose-zod-error-formatter
# or
yarn add mongoose-zod-error-formatter

Usage

1. Format Mongoose Validation Error

import mongoose from "mongoose";
import { formatValidationError } from "mongoose-zod-error-formatter";

try {
  // Some mongoose operation that fails validation
} catch (error) {
  if (error instanceof mongoose.Error.ValidationError) {
    const formatted = formatValidationError(error);
    console.log(formatted);
  }
}

2. Format Mongoose Cast Error (e.g., invalid ObjectId)

import mongoose from "mongoose";
import { formatCastError } from "mongoose-zod-error-formatter";

try {
  // Some mongoose operation that throws CastError
} catch (error) {
  if (error instanceof mongoose.Error.CastError) {
    const formatted = formatCastError(error);
    console.log(formatted);
  }
}

3. Format Zod Validation Error

import { z, ZodError } from "zod";
import { formatZodError } from "mongoose-zod-error-formatter";

const schema = z.object({
  username: z.string().min(3),
  age: z.number().int().positive(),
});

try {
  schema.parse({ username: "ab", age: -1 });
} catch (error) {
  if (error instanceof ZodError) {
    const formatted = formatZodError(error);
    console.log(formatted);
  }
}

4. Format Simple or Custom Error

import { formatSimpleError } from "mongoose-zod-error-formatter";
import { Request } from "express";

const fakeReq = {
  originalUrl: "/api/users",
} as Request;

const error = new Error("Something went wrong");
error.statusCode = 500;

const formatted = formatSimpleError(fakeReq, error);
console.log(formatted);

API Reference

FunctionDescriptionInputOutput
formatValidationErrorFormats Mongoose validation errorsmongoose.Error.ValidationErrorIErrorResponse
formatCastErrorFormats Mongoose cast errors (invalid ObjectId)mongoose.Error.CastErrorIErrorResponse
formatZodErrorFormats Zod validation errorsZodErrorIErrorResponse
formatSimpleErrorFormats simple/general errors with Express Request contextRequest, Error & statusCode?IErrorResponse

Types

export interface IErrorMessages {
  path?: string | number;
  message: string;
}

export interface IErrorResponse {
  statusCode: number;
  message: string;
  errorMessages: IErrorMessages[];
}

Contributing

Contributions, issues, and feature requests are welcome! Feel free to open issues or submit pull requests.

License

MIT © Nurul Islam Rimon

Made with ❤️ by Nurul Islam Rimon

Keywords

mongoose

FAQs

Package last updated on 16 Jun 2025

Related posts