diff --git a/express-useragent/express-useragent-tests.ts b/express-useragent/express-useragent-tests.ts new file mode 100644 index 000000000..b4d613d8b --- /dev/null +++ b/express-useragent/express-useragent-tests.ts @@ -0,0 +1,29 @@ + +/// +/// + +import express = require("express"); +import useragent = require("express-useragent"); + +var app = express(); +app.use(useragent.express()); +app.get("/", function(req, res) { + var userAgentString = + "isMobile:" + req.useragent.isMobile + "," + + "isDesktop:" + req.useragent.isDesktop + "," + + "isBot:" + req.useragent.isDesktop + "," + + "browser:" + req.useragent.isDesktop + "," + + "version:" + req.useragent.isDesktop + "," + + "os:" + req.useragent.isDesktop + "," + + "platform:" + req.useragent.isDesktop + "," + + "source :" + req.useragent.isDesktop; + + res.end(userAgentString); +}); + +app.get("/parse", function(req, res) { + var source = req.headers['user-agent'], + ua = useragent.parse(source); + res.writeHead(200, {'Content-Type': 'text/plain'}); + res.end(JSON.stringify(ua)); +}); diff --git a/express-useragent/express-useragent.d.ts b/express-useragent/express-useragent.d.ts new file mode 100644 index 000000000..4ea3d91d7 --- /dev/null +++ b/express-useragent/express-useragent.d.ts @@ -0,0 +1,68 @@ +// Type definitions for express-useragent 0.2.4 +// Project: https://www.npmjs.org/package/express-useragent +// Definitions by: Isman Usoh +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +declare namespace Express { + interface ExpressUserAgent { + isMobile: boolean; + isTablet: boolean; + isiPad: boolean; + isiPod: boolean; + isiPhone: boolean; + isAndroid: boolean; + isBlackberry: boolean; + isOpera: boolean; + isIE: boolean; + isEdge: boolean; + isIECompatibilityMode: boolean; + isSafari: boolean; + isFirefox: boolean; + isWebkit: boolean; + isChrome: boolean; + isKonqueror: boolean; + isOmniWeb: boolean; + isSeaMonkey: boolean; + isFlock: boolean; + isAmaya: boolean; + isEpiphany: boolean; + isDesktop: boolean; + isWindows: boolean; + isWindowsPhone: boolean; + isLinux: boolean; + isLinux64: boolean; + isMac: boolean; + isChromeOS: boolean; + isBada: boolean; + isSamsung: boolean; + isRaspberry: boolean; + isBot: boolean; + isCurl: boolean; + isAndroidTablet: boolean; + isWinJs: boolean; + isKindleFire: boolean; + isSilk: boolean; + isCaptive: boolean; + isSmartTV: boolean; + silkAccelerated: boolean; + browser: string; + version: string; + os: string; + platform: string; + geoIp: any; + source: string; + } + + interface Request { + useragent?: ExpressUserAgent; + } +} + +declare module "express-useragent" { + import express = require("express"); + + export function parse(source: string): Express.ExpressUserAgent; + export function express(): (req: express.Request, res: express.Response, next?: Function) => void; +}