Wondering what’s next for npm?Check out our public roadmap! »

    @twuni/measured

    0.1.1 • Public • Published

    Measured.js

    CircleCI npm version npm downloads dependencies devDependencies license

    A thin wrapper around the Node.js Performance API to transparently measure the execution time of asynchronous functions.

    Installing

    Using yarn:

    yarn add @twuni/measured
    

    Using npm:

    npm install @twuni/measured
    

    Usage

    First, import the module:

    // Using ES6 modules:
    import { measured } from '@twuni/measured';
    
    // ...or, if you are using CommonJS modules:
    const { measured } = require('@twuni/measured');

    Then, you can use the measured() function like this:

    If this is what your code looked like before:

    await doExpensiveThing();

    To measure that, just change it to read something like this:

    await measured(doExpensiveThing, {
      onComplete: ({ duration }) => {
        console.debug(`Completed in ${duration}ms`);
      },
    
      onReject: ({ duration }) => {
        console.debug(`Rejected in ${duration}ms`);
      },
    
      onResolve: ({ duration }) => {
        console.debug(`Resolved in ${duration}ms`);
      }
    })();

    Each of these callbacks is optional and is described as follows:

    • The #onComplete() function will run whether the wrapped behavior resolves or rejects.

    • The #onResolve() function will run only when the wrapped behavior resolves.

    • The #onReject() function will run only when the wrapped behavior rejects.

    Examples

    Express.js Middleware

    const express = require('express');
    const app = express();
    
    app.use((request, response, next) => measured(next, {
      onComplete: ({ duration }) => {
        console.log(`${request.method} ${request.path} served in ${duration}ms`);
      }
    })());

    Keywords

    none

    Install

    npm i @twuni/measured

    DownloadsWeekly Downloads

    40

    Version

    0.1.1

    License

    MIT

    Unpacked Size

    461 kB

    Total Files

    6

    Last publish

    Collaborators

    • avatar