ramyam
v2.0.15
Published
Common middleware, logger, and types for Prasad DYS microservices
Readme
ramyam
Overview
ramyam is a collection of common middleware, logging utilities, and TypeScript types for Prasad DYS microservices. It provides essential tools to help streamline the development of microservices by offering reusable components, such as logging and middleware, out of the box.
This package is designed to be used in any Node.js-based microservices architecture and can be easily extended or customized.
Features
- Middleware: A set of common middleware for request handling.
- Logging: Uses Winston for logging with customizable log levels.
- Types: Provides TypeScript types to ensure type safety across your microservices.
- JWT Authentication: Utility functions to work with JSON Web Tokens (JWT).
- GeoIP Lookup: Integrates with geoip-lite for IP geolocation.
Installation
To install the package, use npm:
bash
npm install ramyamExample Usage Importing and Using Middleware
import { loggerMiddleware } from 'ramyam';
import express from 'express';
const app = express();
const publicRoutes = [
"/health"
];
app.use(unifiedMiddleware({ publicRoutes }));
app.get('/', (req, res) => {
res.send('Hello World');
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});Example: Logging You can use the logger provided by the package in any part of your application:
import { logger } from 'ramyam';
logger.info('This is an info log');
logger.error('This is an error log');Example: JWT Authentication Use the utility to verify a JWT token:
import { verifyToken } from 'ramyam';
const token = 'your_jwt_token_here';
verifyToken(token)
.then(decoded => {
console.log('Token is valid', decoded);
})
.catch(error => {
console.error('Token validation failed', error);
});Example: GeoIP Lookup You can also use the geoip-lite utility to get location information based on an IP address:
import { getGeoIPInfo } from 'ramyam';
const ip = '8.8.8.8';
const geoInfo = getGeoIPInfo(ip);
console.log(geoInfo);API Documentation loggerMiddleware
Description: A middleware that logs incoming HTTP requests.
Usage: Simply add this middleware to your Express app to log request details.
logger
Description: A logger based on Winston .
Methods:
logger.info(message: string)
logger.error(message: string)
logger.warn(message: string)
verifyToken(token: string)Description: Verifies a JWT token and returns the decoded information if valid.
Parameters:
token: string – The JWT token to verify.
Returns: A promise that resolves with the decoded token if valid, or rejects with an error if invalid.
getGeoIPInfo(ip: string)
Description: Fetches geolocation information for an IP address using the geoip-lite library.
Parameters:
ip: string – The IP address to lookup.
Returns: A geolocation object containing details like country, city, and region.
Development Building the Package
To build the package locally, run the following command:
npm run build
