Merge pull request #8637 from isman-usoh/express-useragent-patch-1

add express-useragent typedefinition
This commit is contained in:
Masahiro Wakame
2016-03-26 20:45:05 +09:00
2 changed files with 97 additions and 0 deletions
@@ -0,0 +1,29 @@
/// <reference path="../express/express.d.ts" />
/// <reference path="./express-useragent.d.ts" />
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));
});
+68
View File
@@ -0,0 +1,68 @@
// Type definitions for express-useragent 0.2.4
// Project: https://www.npmjs.org/package/express-useragent
// Definitions by: Isman Usoh <https://github.com/isman-usoh/>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/// <reference path="../express/express.d.ts" />
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;
}