Files
DefinitelyTyped/types/ua-parser-js/index.d.ts
Pablo Rodríguez 74d10a8260 Add 'undefined' to ua-parser-js return values
The type definitions for ua-parser-js are missing undefined on
its return values. UAParser will return undefined if given an
invalid user agent string, and will also return undefined on
values that can't be figured out based on a valid string.

For instance:

const UAParser = require("ua-parser-js")
const ua = new UAParser("Fake ua")

console.log(ua.getBrowser().name) // undefined
2017-08-15 14:12:05 +02:00

198 lines
5.5 KiB
TypeScript

// Type definitions for ua-parser-js v0.7.10
// Project: https://github.com/faisalman/ua-parser-js
// Definitions by: Viktor Miroshnikov <https://github.com/superduper>, Lucas Woo <https://github.com/legendecas>, Pablo Rodríguez <https://github.com/MeLlamoPablo>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
declare namespace IUAParser {
export interface IBrowser {
/**
* Possible values :
* Amaya, Android Browser, Arora, Avant, Baidu, Blazer, Bolt, Camino, Chimera, Chrome,
* Chromium, Comodo Dragon, Conkeror, Dillo, Dolphin, Doris, Edge, Epiphany, Fennec,
* Firebird, Firefox, Flock, GoBrowser, iCab, ICE Browser, IceApe, IceCat, IceDragon,
* Iceweasel, IE [Mobile], Iron, Jasmine, K-Meleon, Konqueror, Kindle, Links,
* Lunascape, Lynx, Maemo, Maxthon, Midori, Minimo, MIUI Browser, [Mobile] Safari,
* Mosaic, Mozilla, Netfront, Netscape, NetSurf, Nokia, OmniWeb, Opera [Mini/Mobi/Tablet],
* Phoenix, Polaris, QQBrowser, RockMelt, Silk, Skyfire, SeaMonkey, SlimBrowser, Swiftfox,
* Tizen, UCBrowser, Vivaldi, w3m, Yandex
*
*/
name: string | undefined;
/**
* Determined dynamically
*/
version: string | undefined;
/**
* Determined dynamically
* @deprecated
*/
major: string | undefined;
}
export interface IDevice {
/**
* Determined dynamically
*/
model: string | undefined;
/**
* Possible type:
* console, mobile, tablet, smarttv, wearable, embedded
*/
type: string | undefined;
/**
* Possible vendor:
* Acer, Alcatel, Amazon, Apple, Archos, Asus, BenQ, BlackBerry, Dell, GeeksPhone,
* Google, HP, HTC, Huawei, Jolla, Lenovo, LG, Meizu, Microsoft, Motorola, Nexian,
* Nintendo, Nokia, Nvidia, Ouya, Palm, Panasonic, Polytron, RIM, Samsung, Sharp,
* Siemens, Sony-Ericsson, Sprint, Xbox, ZTE
*/
vendor: string | undefined;
}
export interface IEngine {
/**
* Possible name:
* Amaya, EdgeHTML, Gecko, iCab, KHTML, Links, Lynx, NetFront, NetSurf, Presto,
* Tasman, Trident, w3m, WebKit
*/
name: string | undefined;
/**
* Determined dynamically
*/
version: string | undefined;
}
export interface IOS {
/**
* Possible 'os.name'
* AIX, Amiga OS, Android, Arch, Bada, BeOS, BlackBerry, CentOS, Chromium OS, Contiki,
* Fedora, Firefox OS, FreeBSD, Debian, DragonFly, Gentoo, GNU, Haiku, Hurd, iOS,
* Joli, Linpus, Linux, Mac OS, Mageia, Mandriva, MeeGo, Minix, Mint, Morph OS, NetBSD,
* Nintendo, OpenBSD, OpenVMS, OS/2, Palm, PCLinuxOS, Plan9, Playstation, QNX, RedHat,
* RIM Tablet OS, RISC OS, Sailfish, Series40, Slackware, Solaris, SUSE, Symbian, Tizen,
* Ubuntu, UNIX, VectorLinux, WebOS, Windows [Phone/Mobile], Zenwalk
*/
name: string | undefined;
/**
* Determined dynamically
*/
version: string | undefined;
}
export interface ICPU {
/**
* Possible architecture:
* 68k, amd64, arm, arm64, avr, ia32, ia64, irix, irix64, mips, mips64, pa-risc,
* ppc, sparc, sparc64
*/
architecture: string | undefined;
}
export interface IResult {
ua: string;
browser: IBrowser;
device: IDevice;
engine: IEngine;
os: IOS;
cpu: ICPU;
}
export interface BROWSER {
NAME: string;
/**
* @deprecated
*/
MAJOR: string;
VERSION: string;
}
export interface CPU {
ARCHITECTURE: string;
}
export interface DEVICE {
MODEL: string;
VENDOR: string;
TYPE: string;
CONSOLE: string;
MOBILE: string;
SMARTTV: string;
TABLET: string;
WEARABLE: string;
EMBEDDED: string;
}
export interface ENGINE {
NAME: string;
VERSION: string;
}
export interface OS {
NAME: string;
VERSION: string;
}
}
declare module "ua-parser-js" {
class UAParser {
static VERSION: string;
static BROWSER: IUAParser.BROWSER;
static CPU: IUAParser.CPU;
static DEVICE: IUAParser.DEVICE;
static ENGINE: IUAParser.ENGINE;
static OS: IUAParser.OS;
/**
* Create a new parser with UA prepopulated and extensions extended
*/
constructor(uastring?: string, extensions?: any);
/**
* Returns browser information
*/
getBrowser(): IUAParser.IBrowser;
/**
* Returns OS information
*/
getOS(): IUAParser.IOS;
/**
* Returns browsers engine information
*/
getEngine(): IUAParser.IEngine;
/**
* Returns device information
*/
getDevice(): IUAParser.IDevice;
/**
* Returns parsed CPU information
*/
getCPU(): IUAParser.ICPU;
/**
* Returns UA string of current instance
*/
getUA(): string;
/**
* Set & parse UA string
*/
setUA(uastring: string): UAParser;
/**
* Returns parse result
*/
getResult(): IUAParser.IResult;
}
const exported: typeof UAParser & { UAParser: typeof UAParser };
export = exported
}