You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
198 lines
4.3 KiB
198 lines
4.3 KiB
/** |
|
* Return array of browsers by selection queries. |
|
* |
|
* ```js |
|
* browserslist('IE >= 10, IE 8') //=> ['ie 11', 'ie 10', 'ie 8'] |
|
* ``` |
|
* |
|
* @param queries Browser queries. |
|
* @param opts Options. |
|
* @returns Array with browser names in Can I Use. |
|
*/ |
|
declare function browserslist( |
|
queries?: string | readonly string[] | null, |
|
opts?: browserslist.Options |
|
): string[] |
|
|
|
declare namespace browserslist { |
|
interface Query { |
|
compose: 'or' | 'and' |
|
type: string |
|
query: string |
|
not?: true |
|
} |
|
|
|
interface Options { |
|
/** |
|
* Path to processed file. It will be used to find config files. |
|
*/ |
|
path?: string | false |
|
/** |
|
* Processing environment. It will be used to take right queries |
|
* from config file. |
|
*/ |
|
env?: string |
|
/** |
|
* Custom browser usage statistics for "> 1% in my stats" query. |
|
*/ |
|
stats?: Stats | string |
|
/** |
|
* Path to config file with queries. |
|
*/ |
|
config?: string |
|
/** |
|
* Do not throw on unknown version in direct query. |
|
*/ |
|
ignoreUnknownVersions?: boolean |
|
/** |
|
* Throw a error if env is not found. |
|
*/ |
|
throwOnMissing?: boolean |
|
/** |
|
* Disable security checks for extend query. |
|
*/ |
|
dangerousExtend?: boolean |
|
/** |
|
* Alias mobile browsers to the desktop version when Can I Use |
|
* doesn’t have data about the specified version. |
|
*/ |
|
mobileToDesktop?: boolean |
|
} |
|
|
|
type Config = { |
|
defaults: string[] |
|
[section: string]: string[] | undefined |
|
} |
|
|
|
interface Stats { |
|
[browser: string]: { |
|
[version: string]: number |
|
} |
|
} |
|
|
|
/** |
|
* Browser names aliases. |
|
*/ |
|
let aliases: { |
|
[alias: string]: string | undefined |
|
} |
|
|
|
/** |
|
* Aliases to work with joined versions like `ios_saf 7.0-7.1`. |
|
*/ |
|
let versionAliases: { |
|
[browser: string]: |
|
| { |
|
[version: string]: string | undefined |
|
} |
|
| undefined |
|
} |
|
|
|
/** |
|
* Can I Use only provides a few versions for some browsers (e.g. `and_chr`). |
|
* |
|
* Fallback to a similar browser for unknown versions. |
|
*/ |
|
let desktopNames: { |
|
[browser: string]: string | undefined |
|
} |
|
|
|
let data: { |
|
[browser: string]: |
|
| { |
|
name: string |
|
versions: string[] |
|
released: string[] |
|
releaseDate: { |
|
[version: string]: number | undefined | null |
|
} |
|
} |
|
| undefined |
|
} |
|
|
|
let nodeVersions: string[] |
|
|
|
interface Usage { |
|
[version: string]: number |
|
} |
|
|
|
let usage: { |
|
global?: Usage |
|
custom?: Usage | null |
|
[country: string]: Usage | undefined | null |
|
} |
|
|
|
let cache: { |
|
[feature: string]: { |
|
[name: string]: 'y' | 'n' |
|
} |
|
} |
|
|
|
/** |
|
* Default browsers query |
|
*/ |
|
let defaults: readonly string[] |
|
|
|
/** |
|
* Which statistics should be used. Country code or custom statistics. |
|
* Pass `"my stats"` to load statistics from `Browserslist` files. |
|
*/ |
|
type StatsOptions = string | 'my stats' | Stats | { dataByBrowser: Stats } |
|
|
|
/** |
|
* Return browsers market coverage. |
|
* |
|
* ```js |
|
* browserslist.coverage(browserslist('> 1% in US'), 'US') //=> 83.1 |
|
* ``` |
|
* |
|
* @param browsers Browsers names in Can I Use. |
|
* @param stats Which statistics should be used. |
|
* @returns Total market coverage for all selected browsers. |
|
*/ |
|
function coverage(browsers: readonly string[], stats?: StatsOptions): number |
|
|
|
/** |
|
* Get queries AST to analyze the config content. |
|
* |
|
* @param queries Browser queries. |
|
* @param opts Options. |
|
* @returns An array of the data of each query in the config. |
|
*/ |
|
function parse( |
|
queries?: string | readonly string[] | null, |
|
opts?: browserslist.Options |
|
): Query[] |
|
|
|
function clearCaches(): void |
|
|
|
function parseConfig(string: string): Config |
|
|
|
function readConfig(file: string): Config |
|
|
|
function findConfig(...pathSegments: string[]): Config | undefined |
|
|
|
interface LoadConfigOptions { |
|
config?: string |
|
path?: string |
|
env?: string |
|
} |
|
|
|
function loadConfig(options: LoadConfigOptions): string[] | undefined |
|
} |
|
|
|
declare global { |
|
namespace NodeJS { |
|
interface ProcessEnv { |
|
BROWSERSLIST?: string |
|
BROWSERSLIST_CONFIG?: string |
|
BROWSERSLIST_DANGEROUS_EXTEND?: string |
|
BROWSERSLIST_DISABLE_CACHE?: string |
|
BROWSERSLIST_ENV?: string |
|
BROWSERSLIST_IGNORE_OLD_DATA?: string |
|
BROWSERSLIST_STATS?: string |
|
} |
|
} |
|
} |
|
|
|
export = browserslist
|
|
|