1.1.0 • Published 4 years ago

erel v1.1.0

Weekly downloads
4
License
MIT
Repository
github
Last release
4 years ago

Features

  • Written in TypeScript
  • Included types for intellisense in IDE
  • Supports both CJS and ESM modules
  • Small package and easy to set up
  • Support for custom logging solution
  • Provides route insights like IP address, status code, execution time. etc

Install

# NPM
npm i erel --save

# Yarn
yarn add erel

Screenshot

Logging route insights using custom logger and EREL
Demo screenshot

Usage

  1. For JavaScript
const express = require('express');
const app = express();

// Import exitLog from erel
const { exitLog } = require('erel');

// Use your custom logging solution (optional but preferred)
const customLogger = (data, req, res) => {
  Logger.info(
    `${data.timestamp} - ${data.ip} - ${data.method} - ${data.route} - ${data.statusCode} - ${data.responseTime}`,
  );
};
exitLog.setLogger(customLogger);

// Configure express app to use the middleware
app.use(exitLog.middleware);
  1. For TypeScript
import * as express from 'express';
const app = express();

// import exitLog and LoggerCallback from erel
import { exitLog, LoggerCallback } from 'erel';

// Use your custom logging solution (optional but preferred)
const customLogger: LoggerCallback = (data, req, res) => {
  Logger.info(
    `${data.timestamp} - ${data.ip} - ${data.method} - ${data.route} - ${data.statusCode} - ${data.responseTime}`,
  );
};
exitLog.setLogger(customLogger);

// Configure express app to use the middleware
app.use(exitLog.middleware);

API Reference

exitLog

  • exitLog.setLogger

setLogger method can be used to set your custom Logging function which will be called along with the request insights. It accepts a logger function as argument which implements the LoggerCallback interface. See LoggerCallback for more details.

// Example

import { exitLog } from 'erel';
// req and res is also passed to log custom objects, like req.userId
exitLog.setLogger((data, req, res) => {
  Logger.log(`${data.timestamp} - ${req.userId} - ${data.ip} - ${data.statusCode}`);
});
  • exitLog.middleware

middleware is the inbuilt middleware function to be configured with express to use. This middleware will call the custom Logger function (if set using exitLog.setLogger), otherwise the default Logger.

// Example
import * as express from 'express';
import { exitLog } from 'erel';
const app = express();
app.use(exitLog.middleware);

LoggerCallback

LoggerCallback is an interface for the custom logger function to be used.

type LoggerCallback = (data: exitData, req?: Request, res?: Response) => void;
// data -> request insights
// req -> express request object
// res -> express response object

data contains the following properties | Property | Type | Description | |--------------|:-------------------:|:---------------------------------------------------:| | rawEnterDate | Date | Date when request entered the route | | rawExitDate | Date | Date when request finished route execution | | timestamp | string | Timestamp when route finished execution | | statusCode | number | Response status code | | route | string | Route accessed | | ip | string | undefined | IP address of the request | | responseTime | number | Time taken in millisecond to finish route execution | | method | string | Request method to access the endpoint |

Need more insights?

Consider opening a feature request here.

License

Build with ♡ by

Bhumij Gupta

GitHub followers LinkedIn Twitter Follow


if (repo.isAwesome || repo.isHelpful) {
  StarRepo();
}