| import { fileURLToPath } from 'node:url'; | |
| import browserslist from 'browserslist'; | |
| import nodepath from 'node:path'; | |
| const { dirname } = nodepath; | |
| /** @typedef {{overrideBrowserslist?: string | string[] | undefined, stats?: browserslist.Options["stats"], path?: browserslist.Options["path"], env?: browserslist.Options["env"]}} OurOptions | |
| /** | |
| * @param {string | null} [query] | |
| * @param {OurOptions} [options] | |
| * @param {browserslist.Options["stats"]} [stats] | |
| * @param {string|undefined} [from] | |
| * @param {string} [file] | |
| * @param {browserslist.Options["env"]} [env] | |
| * @returns {string[]} | |
| */ | |
| function computeBrowsersToSupport(query, options, stats, from, file, env) { | |
| if (!query) { | |
| return browserslist( | |
| /** @type {OurOptions} */ (options).overrideBrowserslist, | |
| { | |
| stats: /** @type {OurOptions} */ (options).stats || stats, | |
| path: | |
| /** @type {OurOptions} */ (options).path || | |
| dirname(from || file || fileURLToPath(import.meta.url)), | |
| env: /** @type {OurOptions} */ (options).env || env, | |
| } | |
| ); | |
| } | |
| return browserslist(query); | |
| } | |
| export default computeBrowsersToSupport; |