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.
|
|
'use strict'; const transform = require('./lib/transform.js');
/** * @typedef {{precision?: number | false, * preserve?: boolean, * warnWhenCannotResolve?: boolean, * mediaQueries?: boolean, * selectors?: boolean}} PostCssCalcOptions */ /** * @type {import('postcss').PluginCreator<PostCssCalcOptions>} * @param {PostCssCalcOptions} opts * @return {import('postcss').Plugin} */ function pluginCreator(opts) { const options = Object.assign( { precision: 5, preserve: false, warnWhenCannotResolve: false, mediaQueries: false, selectors: false, }, opts );
return { postcssPlugin: 'postcss-calc', OnceExit(css, { result }) { css.walk((node) => { const { type } = node; if (type === 'decl') { transform(node, 'value', options, result); }
if (type === 'atrule' && options.mediaQueries) { transform(node, 'params', options, result); }
if (type === 'rule' && options.selectors) { transform(node, 'selector', options, result); } }); }, }; }
pluginCreator.postcss = true;
module.exports = pluginCreator;
|