diff options
Diffstat (limited to 'node_modules/postcss-merge-rules/src')
| -rw-r--r-- | node_modules/postcss-merge-rules/src/index.js | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/node_modules/postcss-merge-rules/src/index.js b/node_modules/postcss-merge-rules/src/index.js index fcabadd5..686f880d 100644 --- a/node_modules/postcss-merge-rules/src/index.js +++ b/node_modules/postcss-merge-rules/src/index.js @@ -1,4 +1,5 @@ 'use strict'; +const { dirname } = require('path'); const browserslist = require('browserslist'); const { sameParent } = require('cssnano-utils'); const { @@ -406,21 +407,31 @@ function selectorMerger(browsers, compatibilityCache) { cache = partialMerge(cache, rule); }; } + +/** + * @typedef {{ overrideBrowserslist?: string | string[] }} AutoprefixerOptions + * @typedef {Pick<browserslist.Options, 'stats' | 'path' | 'env'>} BrowserslistOptions + * @typedef {AutoprefixerOptions & BrowserslistOptions} Options + */ + /** - * @type {import('postcss').PluginCreator<void>} + * @type {import('postcss').PluginCreator<Options>} + * @param {Options} opts * @return {import('postcss').Plugin} */ -function pluginCreator() { +function pluginCreator(opts = {}) { return { postcssPlugin: 'postcss-merge-rules', + /** + * @param {import('postcss').Result & {opts: BrowserslistOptions & {file?: string}}} result + */ prepare(result) { - /** @type {typeof result.opts & browserslist.Options} */ - const resultOpts = result.opts || {}; - const browsers = browserslist(null, { - stats: resultOpts.stats, - path: __dirname, - env: resultOpts.env, + const { stats, env, from, file } = result.opts || {}; + const browsers = browserslist(opts.overrideBrowserslist, { + stats: opts.stats || stats, + path: opts.path || dirname(from || file || __filename), + env: opts.env || env, }); const compatibilityCache = new Map(); |
