From 5ae741f65d0fef7ee19fc5822c1d83951f4de368 Mon Sep 17 00:00:00 2001 From: Isman Usoh Date: Sat, 19 Mar 2016 21:47:38 +0700 Subject: [PATCH 1/5] Create express-useragent.d.ts --- express-useragent/express-useragent.d.ts | 67 ++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 express-useragent/express-useragent.d.ts diff --git a/express-useragent/express-useragent.d.ts b/express-useragent/express-useragent.d.ts new file mode 100644 index 000000000..2fa2f632b --- /dev/null +++ b/express-useragent/express-useragent.d.ts @@ -0,0 +1,67 @@ +// 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 UserAgent { + 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?: UserAgent; + } +} + +declare module "express-useragent" { + import express = require("express"); + + export function express(): (req: express.Request, res: express.Response, next?: Function) => void; +} From 2d14f77aa341dbc9ce4f2833b6467cbba8bc6c88 Mon Sep 17 00:00:00 2001 From: Isman Usoh Date: Sat, 19 Mar 2016 21:49:12 +0700 Subject: [PATCH 2/5] Create express-useragent-tests.ts --- express-useragent/express-useragent-tests.ts | 22 ++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 express-useragent/express-useragent-tests.ts diff --git a/express-useragent/express-useragent-tests.ts b/express-useragent/express-useragent-tests.ts new file mode 100644 index 000000000..fea5d8fc1 --- /dev/null +++ b/express-useragent/express-useragent-tests.ts @@ -0,0 +1,22 @@ + +/// +/// + +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); +}); From ded7a3674f17f1195e61ec283387ce6aef4a3b78 Mon Sep 17 00:00:00 2001 From: Isman Usoh Date: Sat, 26 Mar 2016 08:40:56 +0700 Subject: [PATCH 3/5] add parse function and rename to ExpressUserAgent --- express-useragent/express-useragent.d.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/express-useragent/express-useragent.d.ts b/express-useragent/express-useragent.d.ts index 2fa2f632b..4ea3d91d7 100644 --- a/express-useragent/express-useragent.d.ts +++ b/express-useragent/express-useragent.d.ts @@ -6,7 +6,7 @@ /// declare namespace Express { - interface UserAgent { + interface ExpressUserAgent { isMobile: boolean; isTablet: boolean; isiPad: boolean; @@ -56,12 +56,13 @@ declare namespace Express { } interface Request { - useragent?: UserAgent; + 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; } From 81b33d33679cd2078d78d8573143fb0634e96c1f Mon Sep 17 00:00:00 2001 From: Isman Usoh Date: Sat, 26 Mar 2016 08:46:00 +0700 Subject: [PATCH 4/5] test parse function --- express-useragent/express-useragent-tests.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/express-useragent/express-useragent-tests.ts b/express-useragent/express-useragent-tests.ts index fea5d8fc1..57666e979 100644 --- a/express-useragent/express-useragent-tests.ts +++ b/express-useragent/express-useragent-tests.ts @@ -20,3 +20,10 @@ app.get("/", function(req, res) { res.end(userAgentString); }); + +app.get("/parse", function(req, res) { + const source = req.headers['user-agent'], + const ua = useragent.parse(source); + res.writeHead(200, {'Content-Type': 'text/plain'}); + res.end(JSON.stringify(ua)); +}); From e0d03ccc2ec4bd99b6c0ed082ab71aa15ab2f966 Mon Sep 17 00:00:00 2001 From: Isman Usoh Date: Sat, 26 Mar 2016 08:55:23 +0700 Subject: [PATCH 5/5] Update express-useragent-tests.ts --- express-useragent/express-useragent-tests.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/express-useragent/express-useragent-tests.ts b/express-useragent/express-useragent-tests.ts index 57666e979..b4d613d8b 100644 --- a/express-useragent/express-useragent-tests.ts +++ b/express-useragent/express-useragent-tests.ts @@ -22,8 +22,8 @@ app.get("/", function(req, res) { }); app.get("/parse", function(req, res) { - const source = req.headers['user-agent'], - const ua = useragent.parse(source); + var source = req.headers['user-agent'], + ua = useragent.parse(source); res.writeHead(200, {'Content-Type': 'text/plain'}); res.end(JSON.stringify(ua)); });