npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

em-bench

v1.0.5

Published

emBench is a Node.js package designed to provide benchmarking capabilities for Express.js applications

Downloads

3

Readme

emBench

NPM

npm downloads

Logo

Overview

emBench is a Node.js package designed to provide benchmarking capabilities for Express.js applications. It offers a decorator function called Benchmark that can be applied to route handler methods to log the start time, end time, and duration of their execution.

Installation

You can install emBench via npm, pnpm or yarn by running:

npm install em-bench

OR

pnpm add em-bench

OR

yarn add em-bench

Usage

After installing emBench, you can import the Benchmark decorator function and apply it to your Express route handler methods.

Example 1

import express, { Request, Response } from "express";
import { Benchmark } from "em-bench";

const app = express();
const PORT = 3000;

// Define route with benchmarking
app.get("/", Benchmark, (req: Request, res: Response) => {
    res.send("Welcome to the homepage!");
});

// Start the server
app.listen(PORT, () => {
    console.log(`Server is running on http://localhost:${PORT}`);
});

Example 2

import express, { Request, Response } from "express";
import { Benchmark } from "em-bench";

const app = express();
const PORT = 3000;

// Middleware to parse JSON bodies
app.use(express.json());

class MyController {
    @Benchmark
    async myRoute(req: Request, res: Response) {
        // Your route handling logic goes here
        const { name } = req.body;
        res.send(`Hello, ${name || "world"}!`);
    }
}

const myController = new MyController();

// Route with benchmarking
app.post("/api/myroute", myController.myRoute);

// Start the server
app.listen(PORT, () => {
    console.log(`Server is running on http://localhost:${PORT}`);
});

Benchmark Decorator

The Benchmark decorator logs the start time, end time, and duration of method execution. It takes the following parameters:

  • _target: Ignored parameter, represents the constructor function of the class for instance methods.
  • _propertyKey: Ignored parameter, represents the name of the decorated property.
  • descriptor: Descriptor object representing the property being decorated.

Example Log Output

[GET] /api/myroute - Start time: 1632549760s 352.101ms
[GET] /api/myroute - End time: 1632549760s 756.243ms
[GET] /api/myroute - Duration: 404.142ms

Note

Make sure to apply the Benchmark decorator to your route handler methods within an Express application to utilize the benchmarking functionality provided by emBench.

Contributing

Contributions are welcome! Please open an issue or fork on the GitHub repository.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Author

Developed by Ethern Myth.