From 266fc895f8a229294531b591d030d13cd69ea180 Mon Sep 17 00:00:00 2001 From: Sam Herrmann Date: Sun, 19 Apr 2015 09:28:42 -0400 Subject: [PATCH] Add type definitions for the connect-slashes middleware --- connect-slashes/connect-slashes-tests.ts | 53 ++++++++++++++++++++++++ connect-slashes/connect-slashes.d.ts | 40 ++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 connect-slashes/connect-slashes-tests.ts create mode 100644 connect-slashes/connect-slashes.d.ts diff --git a/connect-slashes/connect-slashes-tests.ts b/connect-slashes/connect-slashes-tests.ts new file mode 100644 index 0000000000..6fc66bbc03 --- /dev/null +++ b/connect-slashes/connect-slashes-tests.ts @@ -0,0 +1,53 @@ +/// + +import express = require('express'); +import slashes = require('connect-slashes'); + +var app = express(); + +// Using default settings... +app.use(slashes()); + + +// Remove slashes instead of adding them... +app.use(slashes(false)); + + +// With additional options defined inline... +app.use(slashes(true, { + base: '/blog', + code: 302, + headers: { + 'Cache-Control': 'public', + 'Accpet': 'application/json' + } +})); + + +// Defining an options object and referencing +// it in the constructor... +var options: slashes.Options = { + base: '/blog', + code: 302, + headers: { + 'Cache-Control': 'public', + 'Accpet': 'application/json' + } +}; +app.use(slashes(true, options)); + + +// Defining an options object with only +// some properties... +var options: slashes.Options = { + base: '/blog' +} +var options: slashes.Options = { + code: 302 +} +var options: slashes.Options = { + headers: { + 'Cache-Control': 'public', + 'Accpet': 'application/json' + } +} diff --git a/connect-slashes/connect-slashes.d.ts b/connect-slashes/connect-slashes.d.ts new file mode 100644 index 0000000000..58f0e7e690 --- /dev/null +++ b/connect-slashes/connect-slashes.d.ts @@ -0,0 +1,40 @@ +// Type definitions for connect-slashes +// Project: https://github.com/avinoamr/connect-slashes +// Definitions by: Sam Herrmann +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/* =================== USAGE =================== + + import express = require('express'); + import slashes = require('connect-slashes'); + + var app = express(); + app.use(slashes()); + =============================================== */ + +/// + + +declare module "connect-slashes" { + import express = require('express'); + + /** + * @see https://github.com/avinoamr/connect-slashes#usage + */ + function slashes (addTrailingSlashes?: boolean, options?: slashes.Options): express.RequestHandler; + + module slashes { + + /** + * Additional settings + * @see https://github.com/avinoamr/connect-slashes#additional-settings + */ + interface Options { + base?: string; + code?: number; + headers?: {[field: string]: string}; + } + } + + export = slashes; +}