Nuclearly Potent Moonshine

    server-timing
    TypeScript icon, indicating that this package has built-in type declarations

    3.3.2 • Public • Published

    server-timing

    Build Status Coverage Status

    This module adds Server-Timing to response headers. Example is here and open chrome devtool network tab.

    You can use this as a express module / basic http function.

    Install

    $ npm install server-timing -S
    

    Usage

    const express = require('express');
    const serverTiming = require('server-timing');
    
    const app = express();
    app.use(serverTiming());
    
    app.use((req, res, next) => {
      res.startTime('file', 'File IO metric');
      setTimeout(() => {
        res.endTime('file');
      }, 100);
      next();
    });
    app.use((req, res, next) => {
      // you can see test end time response
      res.startTime('test', 'forget to call endTime');
      next();
    });
    app.use((req, res, next) => {
      // All timings should be in milliseconds (s). See issue #9 (https://github.com/yosuke-furukawa/server-timing/issues/9).
      res.setMetric('db', 100.0, 'Database metric');
      res.setMetric('api', 200.0, 'HTTP/API metric');
      res.setMetric('cache', 300.0, 'cache metric');
      next();
    });
    app.use((req, res, next) => {
      res.send('hello');
    });

    Conditionally enabled

    const express = require('express');
    const serverTiming = require('server-timing');
    
    const app = express();
    app.use(serverTiming({
      // Only send metrics if query parameter `debug` is set to `true`
      enabled: (req, res) => req.query.debug === 'true'
    }));

    API

    constructor(options)

    • options.name: string, default total, name for the timing item
    • options.description: string, default Total Response Time, explanation for the timing item
    • options.total: boolean, default true, add total response time
    • options.enabled: boolean | function, default true, enable server timing header. If a function is passed, it will be called with two arguments, request and response, and should return a boolean.
    • options.autoEnd: boolean, default true automatically endTime is called if timer is not finished.
    • options.precision: number, default +Infinity, number of decimals to use for timings.

    Result

    image

    Install

    npm i server-timing

    DownloadsWeekly Downloads

    6,736

    Version

    3.3.2

    License

    MIT

    Unpacked Size

    26.7 kB

    Total Files

    14

    Last publish

    Collaborators

    • yosuke-furukawa