Merge pull request #12741 from TonyPythoneer/patch-14

[@types/response-time] Meet types-2.0 style
This commit is contained in:
Andy 2016-11-17 19:12:25 -08:00 committed by GitHub
commit d6c68f5dcb
2 changed files with 63 additions and 27 deletions

View File

@ -1,8 +1,9 @@
// Type definitions for response-time 2.2.0
// Type definitions for response-time 2.3.2
// Project: https://github.com/expressjs/response-time
// Definitions by: Uros Smolnik <https://github.com/urossmolnik/>
// Definitions by: Uros Smolnik <https://github.com/urossmolnik/>, TonyYang <https://github.com/TonyPythoneer>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/* =================== USAGE ===================
import responseTime = require('response-time');
@ -11,27 +12,32 @@
=============================================== */
/// <reference types="node" />
import express = require('express');
import http = require("http");
export = responseTime;
/**
* Response time header for node.js
* Returns middleware that adds a X-Response-Time header to responses.
*/
declare function responseTime(options?: {
/**
* The fixed number of digits to include in the output, which is always in milliseconds, defaults to 3 (ex: 2.300ms).
*/
digits?: number;
/**
* The name of the header to set, defaults to X-Response-Time.
*/
header?: string;
/**
* Boolean to indicate if units of measurement suffix should be added to the output, defaults to true (ex: 2.300ms vs 2.300).
*/
suffix?: boolean;
}): express.RequestHandler;
declare function responseTime(options?: responseTime.ResponseTimeOptions):
(request: http.IncomingMessage, response: http.ServerResponse, callback: (err: any) => void) => any;
declare function responseTime(fn: responseTime.ResponseTimeFunction):
(request: http.IncomingMessage, response: http.ServerResponse, callback: (err: any) => void) => any;
export = responseTime;
declare namespace responseTime {
export interface ResponseTimeOptions {
digits?: number;
header?: string;
suffix?: boolean;
}
export interface ResponseTimeFunction {
(request: http.IncomingMessage, response: http.ServerResponse, time: number ): any;
}
}

View File

@ -1,11 +1,41 @@
import express = require('express');
import responseTime = require('response-time');
var app = express();
app.use(responseTime());
app.use(responseTime({
digits: 3,
header: 'X-Response-Time',
suffix: true
}));
////////////////////////////////////////////////////////////////////////////////////
// expressconnect tests https://github.com/expressjs/response-time#expressconnect //
////////////////////////////////////////////////////////////////////////////////////
import express = require('express')
namespace express_connect_tests {
const app = express()
app.use(responseTime())
}
//////////////////////////////////////////////////////////////////////////////////////////////
// vanilla http server tests https://github.com/expressjs/response-time#vanilla-http-server //
//////////////////////////////////////////////////////////////////////////////////////////////
import http = require('http')
namespace vanilla_http_server_tests {
// create "middleware"
var _responseTime = responseTime()
http.createServer(function (req, res) {
_responseTime(req, res, function (err) {
if (err) return console.log(err);
// respond to request
res.setHeader('content-type', 'text/plain')
res.end('hello, world!')
})
})
}
//////////////////////////////////////////////////////////////////////////////////////////////////
// response time metrics tests https://github.com/expressjs/response-time#response-time-metrics //
//////////////////////////////////////////////////////////////////////////////////////////////////
namespace response_time_metrics_tests {
const app = express()
app.use(responseTime(function (req, res, time) {
let num: number = time;
}));
}