Skip to content

Commit 562f9cc

Browse files
AnandChowdharymariotsi
authored andcommitted
Add TypeScript types (#36)
* Add TypeScript types * Add types to package.jso
1 parent dbbe1d4 commit 562f9cc

File tree

2 files changed

+86
-1
lines changed

2 files changed

+86
-1
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
{
22
"name": "which-browser",
3-
"version": "0.4.0",
3+
"version": "0.4.1",
44
"description": "Browser sniffing tool and UA parser. Browser sniffing gone too far — A useragent parser library for JavaScript",
55
"main": "src/Parser.js",
6+
"types": "which-browser.d.ts",
67
"scripts": {
78
"test": "lab -a code -v",
89
"test-and-coverage": "istanbul cover lab --report lcovonly -- -a code -v --timeout 10000 -l",

which-browser.d.ts

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
declare module "which-browser" {
2+
export interface WhichBrowserDetails {
3+
toString(): string;
4+
getName(): string;
5+
getVersion(): string;
6+
name: string;
7+
version: WhichBrowserVersion;
8+
}
9+
export interface WhichBrowserVersion {
10+
value: string | number;
11+
alias: string;
12+
details: number;
13+
toString(): string;
14+
is(version: string | number): string;
15+
is(comparison: string, version: string | number): string;
16+
}
17+
export interface WhichBrowserFamily {
18+
name: string;
19+
version: string;
20+
getName(): string;
21+
getVersion(): string;
22+
toString(): string;
23+
}
24+
export interface WhichBrowserUsing {
25+
name: string;
26+
version: string;
27+
getName(): string;
28+
getVersion(): string;
29+
toString(): string;
30+
}
31+
32+
export interface WhichBrowserBrowser extends WhichBrowserDetails {
33+
alias: string;
34+
stock: boolean;
35+
channel: string;
36+
mode?: string;
37+
hidden?: boolean;
38+
family: WhichBrowserFamily;
39+
using: WhichBrowserUsing;
40+
isFamily(name: string): boolean;
41+
isUsing(name: string): boolean;
42+
}
43+
export interface WhichBrowserOS extends WhichBrowserDetails {
44+
family: WhichBrowserFamily;
45+
isFamily(name: string): boolean;
46+
}
47+
export type WhichBrowserDeviceType = "desktop" | "mobile" | "tablet" | "gaming" | "headset" | "ereader" | "media" | "emulator" | "television" | "monitor" | "camera" | "signage" | "whiteboard" | "car" | "pos" | "bot";
48+
export type WhichBrowserDeviceSubType = "feature" | "smart" | "console" | "portable";
49+
export interface WhichBrowserDevice {
50+
type: WhichBrowserDeviceType;
51+
subtype: WhichBrowserDeviceSubType;
52+
identified: boolean;
53+
manufacturer: string;
54+
model: string;
55+
getManufacturer(): string;
56+
getModel(): string;
57+
toString(): string;
58+
}
59+
60+
export interface WhichBrowserOptions {
61+
detectBots?: boolean;
62+
cache?: any;
63+
cacheExpires?: number;
64+
cacheCheckInterval?: number;
65+
}
66+
67+
export default class WhichBrowser {
68+
constructor(userAgentString: string | any, options?: WhichBrowserOptions);
69+
70+
browser: WhichBrowserBrowser;
71+
engine: WhichBrowserDetails;
72+
os: WhichBrowserOS;
73+
device: WhichBrowserDevice;
74+
75+
toString(): string;
76+
isType(...args: string[]): boolean;
77+
isBrowser(name: string, comparison?: string, version?: string | number): boolean;
78+
isOs(name: string, comparison?: string, version?: string | number): boolean;
79+
isEngine(name: string, comparison?: string, version?: string | number): boolean;
80+
getType(): string;
81+
isMobile(): boolean;
82+
isDetected(): boolean;
83+
}
84+
}

0 commit comments

Comments
 (0)