Socket
Socket
Sign inDemoInstall

server-timing-header

Package Overview
Dependencies
Maintainers
1
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

server-timing-header - npm Package Compare versions

Comparing version 1.5.1 to 1.6.0

62

index.js

@@ -21,4 +21,5 @@ const onHeaders = require("on-headers");

* @param {string} [userAgent] — string that contain user agent description
* @param {boolean} [sendHeaders=true] - you may send or don't send headers depending on environment
*/
constructor(userAgent = "") {
constructor(userAgent = "", sendHeaders = true) {
// Before 64 version Chrome support old server-timing

@@ -42,3 +43,10 @@ // specification with different syntax

/**
* Should middleware send headers
* @private
* @type {boolean} - if false middleware will not add headers
*/
this.sendHeaders = sendHeaders;
/**
* @private
* @type {object} - We will store time metrics in this object

@@ -55,5 +63,8 @@ */

// We should keep consistent context for non static methods
this.addHeaders = this.addHeaders.bind(this);
this.from = this.from.bind(this);
this.to = this.to.bind(this);
Object.getOwnPropertyNames(Object.getPrototypeOf(this)).forEach(name => {
const method = this[name];
if (name !== "constructor" && typeof method === "function") {
this[name] = method.bind(this);
}
});
}

@@ -72,3 +83,3 @@

* const app = express();
* app.use(serverTimingMiddleware);
* app.use(serverTimingMiddleware());
* app.use(function (req, res, next) {

@@ -122,3 +133,3 @@ * // If one measurement include other inside you may substract times

* const app = express();
* app.use(serverTimingMiddleware);
* app.use(serverTimingMiddleware());
* app.get('/', function (req, res, next) {

@@ -148,3 +159,3 @@ * // If you define only start time for metric,

* const app = express();
* app.use(serverTimingMiddleware);
* app.use(serverTimingMiddleware());
* app.get('/', function (req, res, next) {

@@ -215,3 +226,3 @@ * // fetching data from database

* const app = express();
* app.use(serverTimingMiddleware);
* app.use(serverTimingMiddleware());
* app.get('/', function (req, res, next) {

@@ -241,3 +252,3 @@ * // You got time metric from the external source

* const app = express();
* app.use(serverTimingMiddleware);
* app.use(serverTimingMiddleware());
* app.get('/', function (req, res, next) {

@@ -251,2 +262,3 @@ * req.serverTiming.from('db');

addHeaders(response) {
if (!this.addHeaders) return;
if (response.headerSent) throw new Error(HEADERS_SENT);

@@ -385,7 +397,11 @@ const updatedMetrics = this.hooks

* @exports serverTimingMiddleware
* @param {object} [options] — middleware options
* @param {boolean} [options.sendHeaders] - should middleware send headers (may be disabled for some environments)
* @return {function} - return express middleware
* @example <caption>How to add middleware</caption>
* const serverTiming = require('server-timing-header');
* const express = require('express');
* const serverTimingMiddleware = require('server-timing-header');
* const port = 3000;
* const app = express();
* app.use(serverTimingMiddleware);
* app.use(serverTimingMiddleware());
* app.get('/', function (req, res, next) {

@@ -398,12 +414,20 @@ * req.serverTiming.from('db');

*/
module.exports = function serverTimingMiddleware(request, response, next) {
// Adding controller to request object
request.serverTiming = new ServerTiming(request.header("user-agent"));
module.exports = ({ sendHeaders = true } = {}) => {
function serverTimingMiddleware(request, response, next) {
// Adding controller to request object
request.serverTiming = new ServerTiming(
request.header("user-agent"),
sendHeaders
);
// We should send server-timing headers before headers are sent
onHeaders(response, () => {
request.serverTiming.addHeaders(response);
});
// We should send server-timing headers before headers are sent
if (sendHeaders)
onHeaders(response, () => {
request.serverTiming.addHeaders(response);
});
next();
next();
}
return serverTimingMiddleware;
};
{
"name": "server-timing-header",
"version": "1.5.1",
"version": "1.6.0",
"description": "Allow you add metrics via Server-Timing header",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -18,3 +18,3 @@ # Abstract

const app = express();
app.use(serverTimingMiddleware);
app.use(serverTimingMiddleware({sendHeaders: (process.env.NODE_ENV !== 'production')}));
app.get('/', function (req, res, next) {

@@ -35,3 +35,3 @@ req.serverTiming.from('db');

const app = express();
app.use(serverTimingMiddleware);
app.use(serverTimingMiddleware());
app.get('/', function (req, res, next) {

@@ -129,3 +129,3 @@ // You got time metric from the external source

const app = express();
app.use(serverTimingMiddleware);
app.use(serverTimingMiddleware());
app.use(function (req, res, next) {

@@ -173,3 +173,3 @@ // If one measurement include other inside you may substract times

const app = express();
app.use(serverTimingMiddleware);
app.use(serverTimingMiddleware());
app.get('/', function (req, res, next) {

@@ -203,3 +203,3 @@ // If you define only start time for metric,

const app = express();
app.use(serverTimingMiddleware);
app.use(serverTimingMiddleware());
app.get('/', function (req, res, next) {

@@ -252,3 +252,3 @@ // fetching data from database

const app = express();
app.use(serverTimingMiddleware);
app.use(serverTimingMiddleware());
app.get('/', function (req, res, next) {

@@ -307,5 +307,4 @@ // You got time metric from the external source

- `request`
- `response`
- `next`
- `options` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** — middleware options (optional, default `{}`)
- `options.sendHeaders` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?** should middleware send headers (may be disabled for some environments) (optional, default `true`)

@@ -318,6 +317,7 @@ ### Examples

```javascript
const serverTiming = require('server-timing-header');
const express = require('express');
const serverTimingMiddleware = require('server-timing-header');
const port = 3000;
const app = express();
app.use(serverTimingMiddleware);
app.use(serverTimingMiddleware());
app.get('/', function (req, res, next) {

@@ -330,1 +330,3 @@ req.serverTiming.from('db');

```
Returns **[function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)** return express middleware
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc