UNPKG

user-agents

Version:

A JavaScript library for generating random user agents.

45 lines (43 loc) 1.63 kB
type NestedValueOf<T> = T extends object ? T[keyof T] | NestedValueOf<T[keyof T]> : T; type Filter<T extends UserAgentData | NestedValueOf<UserAgentData> = UserAgentData> = ((parentObject: T) => boolean) | RegExp | Array<Filter<T>> | { [key: string]: Filter<T>; } | string; interface UserAgentData { appName: 'Netscape'; connection: { downlink: number; effectiveType: '3g' | '4g'; rtt: number; downlinkMax?: number | null; type?: 'cellular' | 'wifi'; }; language?: string | null; oscpu?: string | null; platform: 'iPad' | 'iPhone' | 'Linux aarch64' | 'Linux armv81' | 'Linux armv8l' | 'Linux x86_64' | 'MacIntel' | 'Win32'; pluginsLength: number; screenHeight: number; screenWidth: number; userAgent: string; vendor: 'Apple Computer, Inc.' | 'Google Inc.' | ''; weight: number; } declare module './user-agent' { interface UserAgent extends Readonly<UserAgentData> { readonly cumulativeWeightIndexPairs: Array<[number, number]>; readonly data: UserAgentData; (): UserAgent; } } declare class UserAgent { static [Symbol.hasInstance](instance: unknown): boolean; static random: (filters: Filter) => UserAgent | null; static top: (count?: number, filters?: Filter) => UserAgentData[]; readonly data: UserAgentData; constructor(filters?: Filter); [Symbol.toPrimitive]: () => string; toString: () => string; random: () => UserAgent; top: (count?: number) => UserAgentData[]; randomize: () => void; } export { type Filter, type UserAgentData, UserAgent as default };