173 lines
3.8 KiB
TypeScript
173 lines
3.8 KiB
TypeScript
|
/**
|
|||
|
* Return array of browsers by selection queries.
|
|||
|
*
|
|||
|
* ```js
|
|||
|
* browserslist('IE >= 10, IE 8') //=> ['ie 11', 'ie 10', 'ie 8']
|
|||
|
* ```
|
|||
|
*
|
|||
|
* @param queries Browser queries.
|
|||
|
* @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 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
|
|||
|
/**
|
|||
|
* 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
|
|||
|
}
|
|||
|
|
|||
|
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
|
|||
|
|
|||
|
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
|