diff options
Diffstat (limited to 'node_modules/cssnano-preset-default/src/index.js')
| -rw-r--r-- | node_modules/cssnano-preset-default/src/index.js | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/node_modules/cssnano-preset-default/src/index.js b/node_modules/cssnano-preset-default/src/index.js new file mode 100644 index 00000000..94338d51 --- /dev/null +++ b/node_modules/cssnano-preset-default/src/index.js @@ -0,0 +1,131 @@ +'use strict'; +/** + * @author Ben Briggs + * @license MIT + * @module cssnano:preset:default + * @overview + * + * This default preset for cssnano only includes transforms that make no + * assumptions about your CSS other than what is passed in. In previous + * iterations of cssnano, assumptions were made about your CSS which caused + * output to look different in certain use cases, but not others. These + * transforms have been moved from the defaults to other presets, to make + * this preset require only minimal configuration. + */ + +const cssDeclarationSorter = require('css-declaration-sorter'); +const postcssDiscardComments = require('postcss-discard-comments'); +const postcssReduceInitial = require('postcss-reduce-initial'); +const postcssMinifyGradients = require('postcss-minify-gradients'); +const postcssSvgo = require('postcss-svgo'); +const postcssReduceTransforms = require('postcss-reduce-transforms'); +const postcssConvertValues = require('postcss-convert-values'); +const postcssCalc = require('postcss-calc'); +const postcssColormin = require('postcss-colormin'); +const postcssOrderedValues = require('postcss-ordered-values'); +const postcssMinifySelectors = require('postcss-minify-selectors'); +const postcssMinifyParams = require('postcss-minify-params'); +const postcssNormalizeCharset = require('postcss-normalize-charset'); +const postcssMinifyFontValues = require('postcss-minify-font-values'); +const postcssNormalizeUrl = require('postcss-normalize-url'); +const postcssMergeLonghand = require('postcss-merge-longhand'); +const postcssDiscardDuplicates = require('postcss-discard-duplicates'); +const postcssDiscardOverridden = require('postcss-discard-overridden'); +const postcssNormalizeRepeatStyle = require('postcss-normalize-repeat-style'); +const postcssMergeRules = require('postcss-merge-rules'); +const postcssDiscardEmpty = require('postcss-discard-empty'); +const postcssUniqueSelectors = require('postcss-unique-selectors'); +const postcssNormalizeString = require('postcss-normalize-string'); +const postcssNormalizePositions = require('postcss-normalize-positions'); +const postcssNormalizeWhitespace = require('postcss-normalize-whitespace'); +const postcssNormalizeUnicode = require('postcss-normalize-unicode'); +const postcssNormalizeDisplayValues = require('postcss-normalize-display-values'); +const postcssNormalizeTimingFunctions = require('postcss-normalize-timing-functions'); +const { rawCache } = require('cssnano-utils'); + +/** @typedef {{ +discardComments?: false | import('postcss-discard-comments').Options & { exclude?: true}, +reduceInitial?: false | { exclude?: true} +minifyGradients?: false | { exclude?: true} +svgo?: false | import('postcss-svgo').Options & { exclude?: true}, +reduceTransforms?: false | { exclude?: true} +convertValues?: false | import('postcss-convert-values').Options & { exclude?: true}, +calc?: false | import('postcss-calc').PostCssCalcOptions & { exclude?: true}, +colormin?: false | Record<string, any> & { exclude?: true}, +orderedValues?: false | { exclude?: true}, +minifySelectors?: false | { exclude?: true}, +minifyParams?: false | { exclude?: true}, +normalizeCharset?: false | import('postcss-normalize-charset').Options & { exclude?: true}, +minifyFontValues?: false | import('postcss-minify-font-values').Options & { exclude?: true}, +normalizeUrl?: false | { exclude?: true}, +mergeLonghand?: false | { exclude?: true}, +discardDuplicates?: false | { exclude?: true}, +discardOverridden?: false | { exclude?: true}, +normalizeRepeatStyle?: false | { exclude?: true}, +mergeRules?: false | { exclude?: true}, +discardEmpty?: false | { exclude?: true}, +uniqueSelectors?: false | { exclude?: true}, +normalizeString?: false | import('postcss-normalize-string').Options & { exclude?: true}, +normalizePositions?: false | { exclude?: true}, +normalizeWhitespace?: false| { exclude?: true}, +normalizeUnicode?: false | { exclude?: true}, +normalizeDisplayValues?: false | { exclude?: true}, +normalizeTimingFunctions?: false | { exclude?: true}, +rawCache?: false | { exclude?: true}}} Options */ + +const defaultOpts = { + convertValues: { + length: false, + }, + normalizeCharset: { + add: false, + }, + cssDeclarationSorter: { + keepOverrides: true, + }, +}; + +/** + * @param {Options} opts + * @return {{plugins: [import('postcss').PluginCreator<any>, boolean | Record<string, any> | undefined][]}} + */ +function defaultPreset(opts = {}) { + const options = Object.assign({}, defaultOpts, opts); + + /** @type {[import('postcss').PluginCreator<any>, boolean | Record<string, any> | undefined][]} **/ + const plugins = [ + [postcssDiscardComments, options.discardComments], + [postcssMinifyGradients, options.minifyGradients], + [postcssReduceInitial, options.reduceInitial], + [postcssSvgo, options.svgo], + [postcssNormalizeDisplayValues, options.normalizeDisplayValues], + [postcssReduceTransforms, options.reduceTransforms], + [postcssColormin, options.colormin], + [postcssNormalizeTimingFunctions, options.normalizeTimingFunctions], + [postcssCalc, options.calc], + [postcssConvertValues, options.convertValues], + [postcssOrderedValues, options.orderedValues], + [postcssMinifySelectors, options.minifySelectors], + [postcssMinifyParams, options.minifyParams], + [postcssNormalizeCharset, options.normalizeCharset], + [postcssDiscardOverridden, options.discardOverridden], + [postcssNormalizeString, options.normalizeString], + [postcssNormalizeUnicode, options.normalizeUnicode], + [postcssMinifyFontValues, options.minifyFontValues], + [postcssNormalizeUrl, options.normalizeUrl], + [postcssNormalizeRepeatStyle, options.normalizeRepeatStyle], + [postcssNormalizePositions, options.normalizePositions], + [postcssNormalizeWhitespace, options.normalizeWhitespace], + [postcssMergeLonghand, options.mergeLonghand], + [postcssDiscardDuplicates, options.discardDuplicates], + [postcssMergeRules, options.mergeRules], + [postcssDiscardEmpty, options.discardEmpty], + [postcssUniqueSelectors, options.uniqueSelectors], + [cssDeclarationSorter, options.cssDeclarationSorter], + [rawCache, options.rawCache], + ]; + + return { plugins }; +} + +module.exports = defaultPreset; |
