diff --git a/response-time/response-time-tests.ts b/response-time/response-time-tests.ts new file mode 100644 index 0000000000..b65b8fd19c --- /dev/null +++ b/response-time/response-time-tests.ts @@ -0,0 +1,12 @@ +/// + +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 +})); diff --git a/response-time/response-time.d.ts b/response-time/response-time.d.ts new file mode 100644 index 0000000000..ce9d41f5fe --- /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 +// Definitions: 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-tests.ts b/serve-favicon/serve-favicon-tests.ts new file mode 100644 index 0000000000..0f99a56fce --- /dev/null +++ b/serve-favicon/serve-favicon-tests.ts @@ -0,0 +1,9 @@ +/// + +import express = require('express'); +import favicon = require('serve-favicon'); +var app = express(); + +app.use(favicon(__dirname + '/public/favicon.ico', { + maxAge: 86400000 +})); diff --git a/serve-favicon/serve-favicon.d.ts b/serve-favicon/serve-favicon.d.ts new file mode 100644 index 0000000000..bb19c2f69a --- /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 +// Definitions: 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-tests.ts b/serve-static/serve-static-tests.ts new file mode 100644 index 0000000000..6b16e842b2 --- /dev/null +++ b/serve-static/serve-static-tests.ts @@ -0,0 +1,20 @@ +/// + +import express = require('express'); +import serveStatic = require('serve-static'); +var app = express(); + +app.use(serveStatic('/1')); +app.use(serveStatic('/2', { })); +app.use(serveStatic('/3', { + dotfiles: 'ignore', + etag: true, + extensions: ['html'], + index: true, + lastModified: true, + maxAge: 0, + redirect: true, + setHeaders: function(res: express.Response, path: string, stat: any) { + res.setHeader('Server', 'server-static middleware'); + } +})); diff --git a/serve-static/serve-static.d.ts b/serve-static/serve-static.d.ts new file mode 100644 index 0000000000..b116d43848 --- /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 +// Definitions: 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?: string[]; + + /** + * 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?: boolean; + + /** + * 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: express.Response, path: string, stat: any) => any; + }): express.Handler; + + export = serveStatic; +}