Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

exp-core

d-shaktiranjan213MIT1.2.0TypeScript support: included

Core utilities and middleware for building robust Express applications, including standard API responses, async error handling, request sanitization, and extended request types.

exp-core, express, utils, helpers, express-logger, express-middleware, express-utils, api-response, success-response, error-response, async-wrapper, api-error, request-validation, typescript, express5, express-core, custom-error, request-body-initializer, auth-request

readme

ex-core

Core utilities and middleware for building robust Express applications, including standard API responses, async error handling, request sanitization, and extended request types.

Installation

npm install exp-core

Usages

Util functions

successResponse

Sends a standardized successful API response.

import { successResponse } from "exp-core";

const getUsers = (req, res) => {
    const users = []; // your logic to fetch users would go here

    return successResponse(res, {
        message: "Users fetched successfully.",
        statusCode: 200,
        data: { users: [] },
        meta: { totalCount: 50 },
    });
};

errorResponse

Sends a standardized error API response.

import { errorResponse } from "exp-core";

const updateUser = async (req, res) => {
    if (!req.user)
        return errorResponse(res, {
            message: "User not found",
            statusCode: 401,
        });
};

Middlewares

aw

Wraps an async Express route handler to catch errors and forward them to a standardized error response.

import { aw } from "exp-core";

router.get(
    "/users",
    aw(async (req, res) => {
        const users = await userService.getAllUsers();
        return successResponse(res, {
            message: "Users fetched successfully.",
            data: { users },
        });
    }),
);

initRequestBody

Middleware to ensure req.body is always initialized as an object.

  • In Express 5, req.body is undefined by default if no body-parsing middleware
  • is used. This middleware sets req.body to {} if it's undefined.
import express from "express";
import { initRequestBody } from "exp-core";

const app = express();
app.use(initRequestBody);

Libs (custom classes)

ApiError

Custom error class for handling API-specific errors with support for HTTP status codes and detailed validation or field-level errors.

  • Extends the built-in Error class to include additional properties commonly used
  • in API error responses.
import { ApiError } from "exp-core";

const userValidatorUtil = (userData) => {
    if (!userData.email || !userData.email.trim())
        throw new ApiError("Invalid input data", 422);
};