From 332c0f8d5625c34893eba64f9080800221392ee5 Mon Sep 17 00:00:00 2001 From: Uros Smolnik Date: Tue, 4 Nov 2014 21:22:07 +0100 Subject: [PATCH] express 4.x middleware - response-time - serve-favicon - serve-static --- response-time/response-time.d.ts | 38 +++++++++++++++ serve-favicon/serve-favicon.d.ts | 29 ++++++++++++ serve-static/serve-static.d.ts | 79 ++++++++++++++++++++++++++++++++ 3 files changed, 146 insertions(+) create mode 100644 response-time/response-time.d.ts create mode 100644 serve-favicon/serve-favicon.d.ts create mode 100644 serve-static/serve-static.d.ts diff --git a/response-time/response-time.d.ts b/response-time/response-time.d.ts new file mode 100644 index 000000000..0a7c25465 --- /dev/null +++ b/response-time/response-time.d.ts @@ -0,0 +1,38 @@ +// Type definitions for response-time 2.2.0 +// Project: https://github.com/expressjs/response-time +// Definitions by: Uros Smolnik +// DefinitelyTyped: https://github.com/borisyankov/DefinitelyTyped + +/* =================== USAGE =================== + + import responseTime = require('response-time'); + app.use(responseTime()); + + =============================================== */ + +/// + +declare module "response-time" { + import express = require('express'); + + /** + * Response time header for node.js + * Returns middleware that adds a X-Response-Time header to responses. + */ + 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; + + export = responseTime; +} \ No newline at end of file diff --git a/serve-favicon/serve-favicon.d.ts b/serve-favicon/serve-favicon.d.ts new file mode 100644 index 000000000..80faf5921 --- /dev/null +++ b/serve-favicon/serve-favicon.d.ts @@ -0,0 +1,29 @@ +// Type definitions for serve-favicon 2.1.6 +// Project: https://github.com/expressjs/serve-favicon +// Definitions by: Uros Smolnik +// DefinitelyTyped: https://github.com/borisyankov/DefinitelyTyped + +/* =================== USAGE =================== + + import serveFavicon = require('serve-favicon'); + app.use(serveFavicon(__dirname + '/public/favicon.ico')); + + =============================================== */ + +/// + +declare module "serve-favicon" { + import express = require('express'); + + /** + * Node.js middleware for serving a favicon. + */ + function serveFavicon(path: string, options?: { + /** + * The cache-control max-age directive in ms, defaulting to 1 day. This can also be a string accepted by the ms module. + */ + maxAge?: number; + }): express.RequestHandler; + + export = serveFavicon; +} \ No newline at end of file diff --git a/serve-static/serve-static.d.ts b/serve-static/serve-static.d.ts new file mode 100644 index 000000000..9bb57e6d3 --- /dev/null +++ b/serve-static/serve-static.d.ts @@ -0,0 +1,79 @@ +// Type definitions for serve-static 1.7.1 +// Project: https://github.com/expressjs/serve-static +// Definitions by: Uros Smolnik +// DefinitelyTyped: https://github.com/borisyankov/DefinitelyTyped + +/* =================== USAGE =================== + + import serveStatic = require('serve-static'); + app.use(serveStatic('public/ftp', {'index': ['default.html', 'default.htm']})) + + =============================================== */ + +/// + +declare module "serve-static" { + import express = require('express'); + + /** + * Create a new middleware function to serve files from within a given root directory. + * The file to serve will be determined by combining req.url with the provided root directory. + * When a file is not found, instead of sending a 404 response, this module will instead call next() to move on to the next middleware, allowing for stacking and fall-backs. + */ + function serveStatic(root: string, options?: { + /** + * Set how "dotfiles" are treated when encountered. A dotfile is a file or directory that begins with a dot ("."). + * Note this check is done on the path itself without checking if the path actually exists on the disk. + * If root is specified, only the dotfiles above the root are checked (i.e. the root itself can be within a dotfile when when set to "deny"). + * The default value is 'ignore'. + * 'allow' No special treatment for dotfiles + * 'deny' Send a 403 for any request for a dotfile + * 'ignore' Pretend like the dotfile does not exist and call next() + */ + dotfiles?: string; + + /** + * Enable or disable etag generation, defaults to true. + */ + etag?: boolean; + + /** + * Set file extension fallbacks. When set, if a file is not found, the given extensions will be added to the file name and search for. + * The first that exists will be served. Example: ['html', 'htm']. + * The default value is false. + */ + extensions?: boolean; + + /** + * By default this module will send "index.html" files in response to a request on a directory. + * To disable this set false or to supply a new index pass a string or an array in preferred order. + */ + index?: boolean; + + /** + * Enable or disable Last-Modified header, defaults to true. Uses the file system's last modified value. + */ + lastModified?: boolean; + + /** + * Provide a max-age in milliseconds for http caching, defaults to 0. This can also be a string accepted by the ms module. + */ + maxAge?: number; + + /** + * Redirect to trailing "/" when the pathname is a dir. Defaults to true. + */ + redirect?: number; + + /** + * Function to set custom headers on response. Alterations to the headers need to occur synchronously. + * The function is called as fn(res, path, stat), where the arguments are: + * res the response object + * path the file path that is being sent + * stat the stat object of the file that is being sent + */ + setHeaders?: (res, path, stat) => any; + }): express.Handler; + + export = serveStatic; +} \ No newline at end of file