Catalog npm
PACKAGE EXPLORERView in registry

@0layimika/api-response-kit

npm

A typed toolkit for consistent API success and error responses

apiapi-responseapi-toolkitdeveloper-toolserror-handlingexpressfastifyhttpnestjsrestsuccess-responsetypescript
Versions collected4
Direct dependencies7From release 0.1.3
Last observed20 Oct, 22:12 UTC

README

Current package documentation

api-response-kit

A small, TypeScript-first toolkit for consistent API success and error responses.


Why This Exists

Most APIs suffer from the same problems:

  • Inconsistent response shapes across endpoints
  • Ad-hoc error handling (throw new Error, random JSON)
  • Frontend has to guess response structures
  • Documentation drifts away from reality
  • Boilerplate res.status().json() everywhere

api-response-kit fixes this by enforcing a predictable response contract for both success and error responses while keeping your code clean and framework-agnostic.


Core Idea

Instead of:

res.status(200).json(user)
res.status(400).json({ error: "Invalid input" })

You write:

return Ok(user)
return BadRequest("Invalid input")

Response Contract

Success Response

type ApiSuccess<T> = {
  success: true
  data: T
  message?: string
  meta?: Record<string, unknown>
}

Error Response

type ApiError = {
  success: false
  error: {
    code: string
    message: string
    details?: unknown
  }
}

Installation

npm install @0layimika/api-response-kit

yarn add @0layimika/api-response-kit

pnpm add @0layimika/api-response-kit

Basic Usage

Success Helpers

import { Ok, Created, NoContent } from "@0layimika/api-response-kit"

return Ok(user)
return Created(newUser)
return NoContent()

Error Helpers

import { BadRequest, NotFound, Unauthorized } from "@olayimika/api-response-kit"

if (!user) return NotFound("User not found")
if (!email) return BadRequest("Email is required")
if (!token) return Unauthorized()

Controller Example

export function getUser(id: string) {
  const user = findUser(id)

  if (!user) {
    return NotFound("User")
  }

  return Ok(user)
}

Express Adapter Example

import { sendResponse } from "@0layimika/api-response-kit/express"

app.get("/users/:id", (req, res) => {
  const response = getUser(req.params.id)
  sendResponse(res, response)
})

Custom Errors

import { CustomError } from "@0layimika/api-response-kit"

return CustomError({
  code: "PAYMENT_FAILED",
  status: 402,
  message: "Payment authorization failed"
})

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 4

Collected releases
VersionPublishedDirect dependenciesOpen version
0.1.3Registry latest4 Jan 20267
0.1.23 Jan 20267
0.1.13 Jan 20267
0.1.03 Jan 20267

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 22:12 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:9917f0bec104de20127001c56c5d3b9b53049781238da9510565fd1108eaedf6