diff --git a/types/browserslist-useragent/browserslist-useragent-tests.ts b/types/browserslist-useragent/browserslist-useragent-tests.ts new file mode 100644 index 0000000000..83103178e5 --- /dev/null +++ b/types/browserslist-useragent/browserslist-useragent-tests.ts @@ -0,0 +1,30 @@ +import { + matchesUA, + resolveUserAgent, + normalizeQuery +} from 'browserslist-useragent'; + +// $ExpectType boolean +matchesUA( + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36' +); + +// $ExpectType boolean +matchesUA( + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36', + { + browsers: ['defaults'], + env: 'production', + ignorePath: true, + ignoreMinor: false, + allowHigherVersions: false + } +); + +// $ExpectType ResolvedUserAgent +resolveUserAgent( + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36' +); + +// $ExpectType string +normalizeQuery('defaults'); diff --git a/types/browserslist-useragent/index.d.ts b/types/browserslist-useragent/index.d.ts new file mode 100644 index 0000000000..4c7e548a4a --- /dev/null +++ b/types/browserslist-useragent/index.d.ts @@ -0,0 +1,24 @@ +// Type definitions for browserslist-useragent 3.0 +// Project: https://github.com/browserslist/browserslist-useragent (Does not have to be to GitHub, but prefer linking to a source code repository rather than to a project website.) +// Definitions by: nju33 +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export interface ResolvedUserAgent { + family: string; + version: string; +} + +export interface BrowserslistUseragentOptions { + browsers?: string[]; + env?: string; + ignorePath?: boolean; + ignoreMinor?: boolean; + allowHigherVersions?: boolean; +} + +export function matchesUA( + uaString: string, + opts?: BrowserslistUseragentOptions +): boolean; +export function resolveUserAgent(uaString: string): ResolvedUserAgent; +export function normalizeQuery(query: string): string; diff --git a/types/browserslist-useragent/tsconfig.json b/types/browserslist-useragent/tsconfig.json new file mode 100644 index 0000000000..849531b901 --- /dev/null +++ b/types/browserslist-useragent/tsconfig.json @@ -0,0 +1,17 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": ["es6"], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": ["../"], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true, + "esModuleInterop": true + }, + "files": ["index.d.ts", "browserslist-useragent-tests.ts"] +} diff --git a/types/browserslist-useragent/tslint.json b/types/browserslist-useragent/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/browserslist-useragent/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }