@saas-power-factory/express-response-kit
v0.1.1
Published
Tiny helper to send consistent API responses (status, message, data, error)
Downloads
7
Maintainers
Readme
@saas-power-factory/response-kit
Tiny Express helper to send consistent API responses with configurable required keys and default envelopes.
Quick Start
import express from 'express'
import { sendResponse, defaultMiddleware } from '@saas-power-factory/response-kit'
const app = express()
app.use(express.json())
// Option 1: Direct helper (no middleware needed)
app.get('/simple', (req, res) => {
sendResponse(res, { status: 200, message: 'ok', data: { hello: 'world' } })
})
// Option 2: Use middleware to attach res.api.send
app.use(defaultMiddleware)
app.get('/middleware', (req, res) => {
res.api.send({ status: 200, message: 'ok', data: { hello: 'world' } })
})Configurable Response Kit
Create a configured response helper that ensures required keys are always present:
import { createResponseKit } from '@saas-power-factory/response-kit'
const { sendResponse, middleware } = createResponseKit({
requiredKeys: ['status', 'message', 'error'],
defaultEnvelope: { message: 'default message' },
defaultStatus: 200
})
app.use(middleware)
app.get('/api/data', (req, res) => {
// Only provide data - required keys will be filled automatically
res.api.send({ data: { items: [] } })
// Result: { status: 200, message: 'default message', error: null, data: { items: [] } }
})
app.get('/api/replace', (req, res) => {
// Replace mode: custom payload replaces defaults but required keys are ensured
sendResponse(res, { status: 201, custom: 'field' }, { replace: true })
// Result: { status: 201, message: null, error: null, custom: 'field' }
})Features
- Consistent shape: All responses follow the same JSON structure
- Required keys: Ensure specific fields are always present
- Default values: Set fallback values for common fields
- Replace mode: Option to override default envelope completely
- TypeScript friendly: Proper types, no
as anyneeded - Flexible: Accept custom fields alongside standard ones
