diff --git a/lib/rules/at-rule-allowed-list/index.js b/lib/rules/at-rule-allowed-list/index.js index 65f950d34c..6f0ec3a717 100644 --- a/lib/rules/at-rule-allowed-list/index.js +++ b/lib/rules/at-rule-allowed-list/index.js @@ -4,10 +4,10 @@ const _ = require('lodash'); const isStandardSyntaxAtRule = require('../../utils/isStandardSyntaxAtRule'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'at-rule-allowed-list'; @@ -36,7 +36,7 @@ function rule(listInput) { return; } - if (list.includes(postcss.vendor.unprefixed(name).toLowerCase())) { + if (list.includes(vendor.unprefixed(name).toLowerCase())) { return; } diff --git a/lib/rules/at-rule-blacklist/index.js b/lib/rules/at-rule-blacklist/index.js index 5f942de3ef..ee90505aeb 100644 --- a/lib/rules/at-rule-blacklist/index.js +++ b/lib/rules/at-rule-blacklist/index.js @@ -4,10 +4,10 @@ const _ = require('lodash'); const isStandardSyntaxAtRule = require('../../utils/isStandardSyntaxAtRule'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'at-rule-blacklist'; @@ -41,7 +41,7 @@ function rule(listInput) { return; } - if (!list.includes(postcss.vendor.unprefixed(name).toLowerCase())) { + if (!list.includes(vendor.unprefixed(name).toLowerCase())) { return; } diff --git a/lib/rules/at-rule-disallowed-list/index.js b/lib/rules/at-rule-disallowed-list/index.js index f593ecdb29..48da6ebecf 100644 --- a/lib/rules/at-rule-disallowed-list/index.js +++ b/lib/rules/at-rule-disallowed-list/index.js @@ -4,10 +4,10 @@ const _ = require('lodash'); const isStandardSyntaxAtRule = require('../../utils/isStandardSyntaxAtRule'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'at-rule-disallowed-list'; @@ -36,7 +36,7 @@ function rule(listInput) { return; } - if (!list.includes(postcss.vendor.unprefixed(name).toLowerCase())) { + if (!list.includes(vendor.unprefixed(name).toLowerCase())) { return; } diff --git a/lib/rules/at-rule-no-unknown/index.js b/lib/rules/at-rule-no-unknown/index.js index 6abe49baf2..b0dee3d3b2 100644 --- a/lib/rules/at-rule-no-unknown/index.js +++ b/lib/rules/at-rule-no-unknown/index.js @@ -6,10 +6,10 @@ const _ = require('lodash'); const isStandardSyntaxAtRule = require('../../utils/isStandardSyntaxAtRule'); const keywordSets = require('../../reference/keywordSets'); const optionsMatches = require('../../utils/optionsMatches'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'at-rule-no-unknown'; @@ -48,7 +48,7 @@ function rule(actual, options) { return; } - if (postcss.vendor.prefix(name) || keywordSets.atRules.has(name.toLowerCase())) { + if (vendor.prefix(name) || keywordSets.atRules.has(name.toLowerCase())) { return; } diff --git a/lib/rules/at-rule-whitelist/index.js b/lib/rules/at-rule-whitelist/index.js index ae28687154..afba56047c 100644 --- a/lib/rules/at-rule-whitelist/index.js +++ b/lib/rules/at-rule-whitelist/index.js @@ -4,10 +4,10 @@ const _ = require('lodash'); const isStandardSyntaxAtRule = require('../../utils/isStandardSyntaxAtRule'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'at-rule-whitelist'; @@ -41,7 +41,7 @@ function rule(listInput) { return; } - if (list.includes(postcss.vendor.unprefixed(name).toLowerCase())) { + if (list.includes(vendor.unprefixed(name).toLowerCase())) { return; } diff --git a/lib/rules/declaration-block-no-redundant-longhand-properties/index.js b/lib/rules/declaration-block-no-redundant-longhand-properties/index.js index c8911d2e57..2e2f5ad818 100644 --- a/lib/rules/declaration-block-no-redundant-longhand-properties/index.js +++ b/lib/rules/declaration-block-no-redundant-longhand-properties/index.js @@ -5,11 +5,11 @@ const _ = require('lodash'); const eachDeclarationBlock = require('../../utils/eachDeclarationBlock'); const optionsMatches = require('../../utils/optionsMatches'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const shorthandData = require('../../reference/shorthandData'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'declaration-block-no-redundant-longhand-properties'; @@ -51,8 +51,8 @@ function rule(actual, options) { eachDecl((decl) => { const prop = decl.prop.toLowerCase(); - const unprefixedProp = postcss.vendor.unprefixed(prop); - const prefix = postcss.vendor.prefix(prop); + const unprefixedProp = vendor.unprefixed(prop); + const prefix = vendor.prefix(prop); const shorthandProperties = longhandProperties[unprefixedProp]; diff --git a/lib/rules/declaration-block-no-shorthand-property-overrides/index.js b/lib/rules/declaration-block-no-shorthand-property-overrides/index.js index 5fb62fd694..a40e26b3bb 100644 --- a/lib/rules/declaration-block-no-shorthand-property-overrides/index.js +++ b/lib/rules/declaration-block-no-shorthand-property-overrides/index.js @@ -3,11 +3,11 @@ 'use strict'; const eachDeclarationBlock = require('../../utils/eachDeclarationBlock'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const shorthandData = require('../../reference/shorthandData'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'declaration-block-no-shorthand-property-overrides'; @@ -28,8 +28,8 @@ function rule(actual) { eachDecl((decl) => { const prop = decl.prop; - const unprefixedProp = postcss.vendor.unprefixed(prop); - const prefix = postcss.vendor.prefix(prop).toLowerCase(); + const unprefixedProp = vendor.unprefixed(prop); + const prefix = vendor.prefix(prop).toLowerCase(); const overrideables = shorthandData[unprefixedProp.toLowerCase()]; diff --git a/lib/rules/declaration-property-unit-allowed-list/index.js b/lib/rules/declaration-property-unit-allowed-list/index.js index f57ad17b66..9cec92b445 100644 --- a/lib/rules/declaration-property-unit-allowed-list/index.js +++ b/lib/rules/declaration-property-unit-allowed-list/index.js @@ -6,11 +6,11 @@ const _ = require('lodash'); const declarationValueIndex = require('../../utils/declarationValueIndex'); const getUnitFromValueNode = require('../../utils/getUnitFromValueNode'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); const valueParser = require('postcss-value-parser'); +const vendor = require('../../utils/vendor'); const ruleName = 'declaration-property-unit-allowed-list'; @@ -33,7 +33,7 @@ function rule(list) { const prop = decl.prop; const value = decl.value; - const unprefixedProp = postcss.vendor.unprefixed(prop); + const unprefixedProp = vendor.unprefixed(prop); const propList = _.find(list, (units, propIdentifier) => matchesStringOrRegExp(unprefixedProp, propIdentifier), diff --git a/lib/rules/declaration-property-unit-blacklist/index.js b/lib/rules/declaration-property-unit-blacklist/index.js index 6f0d883f5c..15eaf928c5 100644 --- a/lib/rules/declaration-property-unit-blacklist/index.js +++ b/lib/rules/declaration-property-unit-blacklist/index.js @@ -6,11 +6,11 @@ const _ = require('lodash'); const declarationValueIndex = require('../../utils/declarationValueIndex'); const getUnitFromValueNode = require('../../utils/getUnitFromValueNode'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); const valueParser = require('postcss-value-parser'); +const vendor = require('../../utils/vendor'); const ruleName = 'declaration-property-unit-blacklist'; @@ -41,7 +41,7 @@ function rule(list) { const prop = decl.prop; const value = decl.value; - const unprefixedProp = postcss.vendor.unprefixed(prop); + const unprefixedProp = vendor.unprefixed(prop); const propList = _.find(list, (units, propIdentifier) => matchesStringOrRegExp(unprefixedProp, propIdentifier), diff --git a/lib/rules/declaration-property-unit-disallowed-list/index.js b/lib/rules/declaration-property-unit-disallowed-list/index.js index e4924d7be5..2f0f37cf12 100644 --- a/lib/rules/declaration-property-unit-disallowed-list/index.js +++ b/lib/rules/declaration-property-unit-disallowed-list/index.js @@ -6,11 +6,11 @@ const _ = require('lodash'); const declarationValueIndex = require('../../utils/declarationValueIndex'); const getUnitFromValueNode = require('../../utils/getUnitFromValueNode'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); const valueParser = require('postcss-value-parser'); +const vendor = require('../../utils/vendor'); const ruleName = 'declaration-property-unit-disallowed-list'; @@ -33,7 +33,7 @@ function rule(list) { const prop = decl.prop; const value = decl.value; - const unprefixedProp = postcss.vendor.unprefixed(prop); + const unprefixedProp = vendor.unprefixed(prop); const propList = _.find(list, (units, propIdentifier) => matchesStringOrRegExp(unprefixedProp, propIdentifier), diff --git a/lib/rules/declaration-property-unit-whitelist/index.js b/lib/rules/declaration-property-unit-whitelist/index.js index 002e595000..a70bcfd512 100644 --- a/lib/rules/declaration-property-unit-whitelist/index.js +++ b/lib/rules/declaration-property-unit-whitelist/index.js @@ -6,11 +6,11 @@ const _ = require('lodash'); const declarationValueIndex = require('../../utils/declarationValueIndex'); const getUnitFromValueNode = require('../../utils/getUnitFromValueNode'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); const valueParser = require('postcss-value-parser'); +const vendor = require('../../utils/vendor'); const ruleName = 'declaration-property-unit-whitelist'; @@ -41,7 +41,7 @@ function rule(list) { const prop = decl.prop; const value = decl.value; - const unprefixedProp = postcss.vendor.unprefixed(prop); + const unprefixedProp = vendor.unprefixed(prop); const propList = _.find(list, (units, propIdentifier) => matchesStringOrRegExp(unprefixedProp, propIdentifier), diff --git a/lib/rules/declaration-property-value-allowed-list/index.js b/lib/rules/declaration-property-value-allowed-list/index.js index 227bad0f83..4985a2aaa3 100644 --- a/lib/rules/declaration-property-value-allowed-list/index.js +++ b/lib/rules/declaration-property-value-allowed-list/index.js @@ -4,10 +4,10 @@ const _ = require('lodash'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'declaration-property-value-allowed-list'; @@ -30,7 +30,7 @@ function rule(list) { const prop = decl.prop; const value = decl.value; - const unprefixedProp = postcss.vendor.unprefixed(prop); + const unprefixedProp = vendor.unprefixed(prop); const propList = _.find(list, (values, propIdentifier) => matchesStringOrRegExp(unprefixedProp, propIdentifier), ); diff --git a/lib/rules/declaration-property-value-blacklist/index.js b/lib/rules/declaration-property-value-blacklist/index.js index 7c7313632f..ced1e21978 100644 --- a/lib/rules/declaration-property-value-blacklist/index.js +++ b/lib/rules/declaration-property-value-blacklist/index.js @@ -4,10 +4,10 @@ const _ = require('lodash'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'declaration-property-value-blacklist'; @@ -38,7 +38,7 @@ function rule(list) { const prop = decl.prop; const value = decl.value; - const unprefixedProp = postcss.vendor.unprefixed(prop); + const unprefixedProp = vendor.unprefixed(prop); const propList = _.find(list, (values, propIdentifier) => matchesStringOrRegExp(unprefixedProp, propIdentifier), ); diff --git a/lib/rules/declaration-property-value-disallowed-list/index.js b/lib/rules/declaration-property-value-disallowed-list/index.js index 21f3b7f0c9..ad7e4de385 100644 --- a/lib/rules/declaration-property-value-disallowed-list/index.js +++ b/lib/rules/declaration-property-value-disallowed-list/index.js @@ -4,10 +4,10 @@ const _ = require('lodash'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'declaration-property-value-disallowed-list'; @@ -30,7 +30,7 @@ function rule(list) { const prop = decl.prop; const value = decl.value; - const unprefixedProp = postcss.vendor.unprefixed(prop); + const unprefixedProp = vendor.unprefixed(prop); const propList = _.find(list, (values, propIdentifier) => matchesStringOrRegExp(unprefixedProp, propIdentifier), ); diff --git a/lib/rules/declaration-property-value-whitelist/index.js b/lib/rules/declaration-property-value-whitelist/index.js index 076ac04a69..e6d95577e2 100644 --- a/lib/rules/declaration-property-value-whitelist/index.js +++ b/lib/rules/declaration-property-value-whitelist/index.js @@ -4,10 +4,10 @@ const _ = require('lodash'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'declaration-property-value-whitelist'; @@ -38,7 +38,7 @@ function rule(list) { const prop = decl.prop; const value = decl.value; - const unprefixedProp = postcss.vendor.unprefixed(prop); + const unprefixedProp = vendor.unprefixed(prop); const propList = _.find(list, (values, propIdentifier) => matchesStringOrRegExp(unprefixedProp, propIdentifier), ); diff --git a/lib/rules/function-allowed-list/index.js b/lib/rules/function-allowed-list/index.js index d162557a56..4ff2a0c067 100644 --- a/lib/rules/function-allowed-list/index.js +++ b/lib/rules/function-allowed-list/index.js @@ -6,11 +6,11 @@ const _ = require('lodash'); const declarationValueIndex = require('../../utils/declarationValueIndex'); const isStandardSyntaxFunction = require('../../utils/isStandardSyntaxFunction'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); const valueParser = require('postcss-value-parser'); +const vendor = require('../../utils/vendor'); const ruleName = 'function-allowed-list'; @@ -43,7 +43,7 @@ function rule(listInput) { return; } - if (matchesStringOrRegExp(postcss.vendor.unprefixed(node.value), list)) { + if (matchesStringOrRegExp(vendor.unprefixed(node.value), list)) { return; } diff --git a/lib/rules/function-blacklist/index.js b/lib/rules/function-blacklist/index.js index f3e59af866..1c1e09cdc9 100644 --- a/lib/rules/function-blacklist/index.js +++ b/lib/rules/function-blacklist/index.js @@ -6,11 +6,11 @@ const _ = require('lodash'); const declarationValueIndex = require('../../utils/declarationValueIndex'); const isStandardSyntaxFunction = require('../../utils/isStandardSyntaxFunction'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); const valueParser = require('postcss-value-parser'); +const vendor = require('../../utils/vendor'); const ruleName = 'function-blacklist'; @@ -46,7 +46,7 @@ function rule(list) { return; } - if (!matchesStringOrRegExp(postcss.vendor.unprefixed(node.value), list)) { + if (!matchesStringOrRegExp(vendor.unprefixed(node.value), list)) { return; } diff --git a/lib/rules/function-disallowed-list/index.js b/lib/rules/function-disallowed-list/index.js index 5f30bb862a..5b7cdea5d2 100644 --- a/lib/rules/function-disallowed-list/index.js +++ b/lib/rules/function-disallowed-list/index.js @@ -6,11 +6,11 @@ const _ = require('lodash'); const declarationValueIndex = require('../../utils/declarationValueIndex'); const isStandardSyntaxFunction = require('../../utils/isStandardSyntaxFunction'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); const valueParser = require('postcss-value-parser'); +const vendor = require('../../utils/vendor'); const ruleName = 'function-disallowed-list'; @@ -41,7 +41,7 @@ function rule(list) { return; } - if (!matchesStringOrRegExp(postcss.vendor.unprefixed(node.value), list)) { + if (!matchesStringOrRegExp(vendor.unprefixed(node.value), list)) { return; } diff --git a/lib/rules/function-linear-gradient-no-nonstandard-direction/index.js b/lib/rules/function-linear-gradient-no-nonstandard-direction/index.js index 6476dde8ee..319b3b9c41 100644 --- a/lib/rules/function-linear-gradient-no-nonstandard-direction/index.js +++ b/lib/rules/function-linear-gradient-no-nonstandard-direction/index.js @@ -5,11 +5,11 @@ const declarationValueIndex = require('../../utils/declarationValueIndex'); const functionArgumentsSearch = require('../../utils/functionArgumentsSearch'); const isStandardSyntaxValue = require('../../utils/isStandardSyntaxValue'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); const valueParser = require('postcss-value-parser'); +const vendor = require('../../utils/vendor'); const ruleName = 'function-linear-gradient-no-nonstandard-direction'; @@ -83,7 +83,7 @@ function rule(actual) { return; } - const withToPrefix = !postcss.vendor.prefix(valueNode.value); + const withToPrefix = !vendor.prefix(valueNode.value); if (!isStandardDirection(firstArg, withToPrefix)) { complain(); diff --git a/lib/rules/function-whitelist/index.js b/lib/rules/function-whitelist/index.js index 7a72358f1d..d64abb84df 100644 --- a/lib/rules/function-whitelist/index.js +++ b/lib/rules/function-whitelist/index.js @@ -6,11 +6,11 @@ const _ = require('lodash'); const declarationValueIndex = require('../../utils/declarationValueIndex'); const isStandardSyntaxFunction = require('../../utils/isStandardSyntaxFunction'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); const valueParser = require('postcss-value-parser'); +const vendor = require('../../utils/vendor'); const ruleName = 'function-whitelist'; @@ -48,7 +48,7 @@ function rule(listInput) { return; } - if (matchesStringOrRegExp(postcss.vendor.unprefixed(node.value), list)) { + if (matchesStringOrRegExp(vendor.unprefixed(node.value), list)) { return; } diff --git a/lib/rules/media-feature-name-no-unknown/index.js b/lib/rules/media-feature-name-no-unknown/index.js index 38b27b29e9..491542d9ad 100644 --- a/lib/rules/media-feature-name-no-unknown/index.js +++ b/lib/rules/media-feature-name-no-unknown/index.js @@ -10,11 +10,11 @@ const isStandardSyntaxMediaFeatureName = require('../../utils/isStandardSyntaxMe const keywordSets = require('../../reference/keywordSets'); const mediaParser = require('postcss-media-query-parser').default; const optionsMatches = require('../../utils/optionsMatches'); -const postcss = require('postcss'); const rangeContextNodeParser = require('../rangeContextNodeParser'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'media-feature-name-no-unknown'; @@ -67,10 +67,7 @@ function rule(actual, options) { return; } - if ( - postcss.vendor.prefix(value) || - keywordSets.mediaFeatureNames.has(value.toLowerCase()) - ) { + if (vendor.prefix(value) || keywordSets.mediaFeatureNames.has(value.toLowerCase())) { return; } diff --git a/lib/rules/media-feature-name-value-allowed-list/index.js b/lib/rules/media-feature-name-value-allowed-list/index.js index 60272c91af..801551a29a 100644 --- a/lib/rules/media-feature-name-value-allowed-list/index.js +++ b/lib/rules/media-feature-name-value-allowed-list/index.js @@ -7,11 +7,11 @@ const atRuleParamIndex = require('../../utils/atRuleParamIndex'); const isRangeContextMediaFeature = require('../../utils/isRangeContextMediaFeature'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); const mediaParser = require('postcss-media-query-parser').default; -const postcss = require('postcss'); const rangeContextNodeParser = require('../rangeContextNodeParser'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'media-feature-name-value-allowed-list'; @@ -57,7 +57,7 @@ function rule(list) { for (let i = 0; i < values.length; i++) { const valueNode = values[i]; const value = valueNode.value; - const unprefixedMediaFeatureName = postcss.vendor.unprefixed(mediaFeatureName); + const unprefixedMediaFeatureName = vendor.unprefixed(mediaFeatureName); const allowedValues = _.find(list, (v, featureName) => matchesStringOrRegExp(unprefixedMediaFeatureName, featureName), diff --git a/lib/rules/media-feature-name-value-whitelist/index.js b/lib/rules/media-feature-name-value-whitelist/index.js index c730fe6601..c410017924 100644 --- a/lib/rules/media-feature-name-value-whitelist/index.js +++ b/lib/rules/media-feature-name-value-whitelist/index.js @@ -7,11 +7,11 @@ const atRuleParamIndex = require('../../utils/atRuleParamIndex'); const isRangeContextMediaFeature = require('../../utils/isRangeContextMediaFeature'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); const mediaParser = require('postcss-media-query-parser').default; -const postcss = require('postcss'); const rangeContextNodeParser = require('../rangeContextNodeParser'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'media-feature-name-value-whitelist'; @@ -65,7 +65,7 @@ function rule(list) { for (let i = 0; i < values.length; i++) { const valueNode = values[i]; const value = valueNode.value; - const unprefixedMediaFeatureName = postcss.vendor.unprefixed(mediaFeatureName); + const unprefixedMediaFeatureName = vendor.unprefixed(mediaFeatureName); const allowedValues = _.find(list, (v, featureName) => matchesStringOrRegExp(unprefixedMediaFeatureName, featureName), diff --git a/lib/rules/property-allowed-list/index.js b/lib/rules/property-allowed-list/index.js index 28f9df5be8..e94029db71 100644 --- a/lib/rules/property-allowed-list/index.js +++ b/lib/rules/property-allowed-list/index.js @@ -6,10 +6,10 @@ const _ = require('lodash'); const isCustomProperty = require('../../utils/isCustomProperty'); const isStandardSyntaxProperty = require('../../utils/isStandardSyntaxProperty'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'property-allowed-list'; @@ -39,7 +39,7 @@ function rule(list) { return; } - if (matchesStringOrRegExp(postcss.vendor.unprefixed(prop), list)) { + if (matchesStringOrRegExp(vendor.unprefixed(prop), list)) { return; } diff --git a/lib/rules/property-blacklist/index.js b/lib/rules/property-blacklist/index.js index 88653adf85..f1584acf86 100644 --- a/lib/rules/property-blacklist/index.js +++ b/lib/rules/property-blacklist/index.js @@ -6,10 +6,10 @@ const _ = require('lodash'); const isCustomProperty = require('../../utils/isCustomProperty'); const isStandardSyntaxProperty = require('../../utils/isStandardSyntaxProperty'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'property-blacklist'; @@ -44,7 +44,7 @@ function rule(list) { return; } - if (!matchesStringOrRegExp(postcss.vendor.unprefixed(prop), list)) { + if (!matchesStringOrRegExp(vendor.unprefixed(prop), list)) { return; } diff --git a/lib/rules/property-disallowed-list/index.js b/lib/rules/property-disallowed-list/index.js index 21aff9a130..ca4bf45ab2 100644 --- a/lib/rules/property-disallowed-list/index.js +++ b/lib/rules/property-disallowed-list/index.js @@ -6,10 +6,10 @@ const _ = require('lodash'); const isCustomProperty = require('../../utils/isCustomProperty'); const isStandardSyntaxProperty = require('../../utils/isStandardSyntaxProperty'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'property-disallowed-list'; @@ -39,7 +39,7 @@ function rule(list) { return; } - if (!matchesStringOrRegExp(postcss.vendor.unprefixed(prop), list)) { + if (!matchesStringOrRegExp(vendor.unprefixed(prop), list)) { return; } diff --git a/lib/rules/property-no-unknown/index.js b/lib/rules/property-no-unknown/index.js index ec9045042c..1b368cd7f7 100644 --- a/lib/rules/property-no-unknown/index.js +++ b/lib/rules/property-no-unknown/index.js @@ -7,11 +7,11 @@ const isCustomProperty = require('../../utils/isCustomProperty'); const isStandardSyntaxDeclaration = require('../../utils/isStandardSyntaxDeclaration'); const isStandardSyntaxProperty = require('../../utils/isStandardSyntaxProperty'); const optionsMatches = require('../../utils/optionsMatches'); -const postcss = require('postcss'); const properties = require('known-css-properties').all; const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'property-no-unknown'; @@ -59,7 +59,7 @@ function rule(actual, options) { return; } - if (!shouldCheckPrefixed && postcss.vendor.prefix(prop)) { + if (!shouldCheckPrefixed && vendor.prefix(prop)) { return; } diff --git a/lib/rules/property-no-vendor-prefix/index.js b/lib/rules/property-no-vendor-prefix/index.js index d5fbcc0969..8dcfc3c565 100644 --- a/lib/rules/property-no-vendor-prefix/index.js +++ b/lib/rules/property-no-vendor-prefix/index.js @@ -5,10 +5,10 @@ const _ = require('lodash'); const isAutoprefixable = require('../../utils/isAutoprefixable'); const optionsMatches = require('../../utils/optionsMatches'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'property-no-vendor-prefix'; @@ -37,7 +37,7 @@ function rule(actual, options, context) { root.walkDecls((decl) => { const prop = decl.prop; - const unprefixedProp = postcss.vendor.unprefixed(prop); + const unprefixedProp = vendor.unprefixed(prop); //return early if property is to be ignored if (optionsMatches(options, 'ignoreProperties', unprefixedProp)) { diff --git a/lib/rules/property-whitelist/index.js b/lib/rules/property-whitelist/index.js index ed423d3f93..65904a4664 100644 --- a/lib/rules/property-whitelist/index.js +++ b/lib/rules/property-whitelist/index.js @@ -6,10 +6,10 @@ const _ = require('lodash'); const isCustomProperty = require('../../utils/isCustomProperty'); const isStandardSyntaxProperty = require('../../utils/isStandardSyntaxProperty'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'property-whitelist'; @@ -44,7 +44,7 @@ function rule(list) { return; } - if (matchesStringOrRegExp(postcss.vendor.unprefixed(prop), list)) { + if (matchesStringOrRegExp(vendor.unprefixed(prop), list)) { return; } diff --git a/lib/rules/selector-pseudo-class-allowed-list/index.js b/lib/rules/selector-pseudo-class-allowed-list/index.js index 55f3da6f6b..a1dc06ac98 100644 --- a/lib/rules/selector-pseudo-class-allowed-list/index.js +++ b/lib/rules/selector-pseudo-class-allowed-list/index.js @@ -6,10 +6,10 @@ const _ = require('lodash'); const isStandardSyntaxRule = require('../../utils/isStandardSyntaxRule'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); const parseSelector = require('../../utils/parseSelector'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'selector-pseudo-class-allowed-list'; @@ -50,7 +50,7 @@ function rule(list) { const name = value.slice(1); - if (matchesStringOrRegExp(postcss.vendor.unprefixed(name), list)) { + if (matchesStringOrRegExp(vendor.unprefixed(name), list)) { return; } diff --git a/lib/rules/selector-pseudo-class-blacklist/index.js b/lib/rules/selector-pseudo-class-blacklist/index.js index f9c1032854..991c913383 100644 --- a/lib/rules/selector-pseudo-class-blacklist/index.js +++ b/lib/rules/selector-pseudo-class-blacklist/index.js @@ -6,10 +6,10 @@ const _ = require('lodash'); const isStandardSyntaxRule = require('../../utils/isStandardSyntaxRule'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); const parseSelector = require('../../utils/parseSelector'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'selector-pseudo-class-blacklist'; @@ -59,7 +59,7 @@ function rule(list) { const name = value.slice(1); - if (!matchesStringOrRegExp(postcss.vendor.unprefixed(name), list)) { + if (!matchesStringOrRegExp(vendor.unprefixed(name), list)) { return; } diff --git a/lib/rules/selector-pseudo-class-disallowed-list/index.js b/lib/rules/selector-pseudo-class-disallowed-list/index.js index ff36ae15ce..3bf8ebe198 100644 --- a/lib/rules/selector-pseudo-class-disallowed-list/index.js +++ b/lib/rules/selector-pseudo-class-disallowed-list/index.js @@ -6,10 +6,10 @@ const _ = require('lodash'); const isStandardSyntaxRule = require('../../utils/isStandardSyntaxRule'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); const parseSelector = require('../../utils/parseSelector'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'selector-pseudo-class-disallowed-list'; @@ -51,7 +51,7 @@ function rule(list) { const name = value.slice(1); - if (!matchesStringOrRegExp(postcss.vendor.unprefixed(name), list)) { + if (!matchesStringOrRegExp(vendor.unprefixed(name), list)) { return; } diff --git a/lib/rules/selector-pseudo-class-no-unknown/index.js b/lib/rules/selector-pseudo-class-no-unknown/index.js index c00c0b7fdc..6278988f5e 100644 --- a/lib/rules/selector-pseudo-class-no-unknown/index.js +++ b/lib/rules/selector-pseudo-class-no-unknown/index.js @@ -11,10 +11,10 @@ const isStandardSyntaxSelector = require('../../utils/isStandardSyntaxSelector') const keywordSets = require('../../reference/keywordSets'); const optionsMatches = require('../../utils/optionsMatches'); const parseSelector = require('../../utils/parseSelector'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'selector-pseudo-class-no-unknown'; @@ -74,7 +74,7 @@ function rule(actual, options) { index = atRuleParamIndex(node) + pseudoNode.sourceIndex; } else { if ( - postcss.vendor.prefix(name) || + vendor.prefix(name) || keywordSets.pseudoClasses.has(name) || keywordSets.pseudoElements.has(name) ) { @@ -92,7 +92,7 @@ function rule(actual, options) { } while (prevPseudoElement); if (prevPseudoElement) { - const prevPseudoElementValue = postcss.vendor.unprefixed( + const prevPseudoElementValue = vendor.unprefixed( prevPseudoElement.value.toLowerCase().slice(2), ); diff --git a/lib/rules/selector-pseudo-class-whitelist/index.js b/lib/rules/selector-pseudo-class-whitelist/index.js index cd602b05ed..0c8a82d937 100644 --- a/lib/rules/selector-pseudo-class-whitelist/index.js +++ b/lib/rules/selector-pseudo-class-whitelist/index.js @@ -6,10 +6,10 @@ const _ = require('lodash'); const isStandardSyntaxRule = require('../../utils/isStandardSyntaxRule'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); const parseSelector = require('../../utils/parseSelector'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'selector-pseudo-class-whitelist'; @@ -58,7 +58,7 @@ function rule(list) { const name = value.slice(1); - if (matchesStringOrRegExp(postcss.vendor.unprefixed(name), list)) { + if (matchesStringOrRegExp(vendor.unprefixed(name), list)) { return; } diff --git a/lib/rules/selector-pseudo-element-allowed-list/index.js b/lib/rules/selector-pseudo-element-allowed-list/index.js index 3c39bf2e9d..8663aff392 100644 --- a/lib/rules/selector-pseudo-element-allowed-list/index.js +++ b/lib/rules/selector-pseudo-element-allowed-list/index.js @@ -6,10 +6,10 @@ const _ = require('lodash'); const isStandardSyntaxRule = require('../../utils/isStandardSyntaxRule'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); const parseSelector = require('../../utils/parseSelector'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'selector-pseudo-element-allowed-list'; @@ -50,7 +50,7 @@ function rule(list) { const name = value.slice(2); - if (matchesStringOrRegExp(postcss.vendor.unprefixed(name), list)) { + if (matchesStringOrRegExp(vendor.unprefixed(name), list)) { return; } diff --git a/lib/rules/selector-pseudo-element-blacklist/index.js b/lib/rules/selector-pseudo-element-blacklist/index.js index 41975389a4..4ae53a1d85 100644 --- a/lib/rules/selector-pseudo-element-blacklist/index.js +++ b/lib/rules/selector-pseudo-element-blacklist/index.js @@ -6,10 +6,10 @@ const _ = require('lodash'); const isStandardSyntaxRule = require('../../utils/isStandardSyntaxRule'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); const parseSelector = require('../../utils/parseSelector'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'selector-pseudo-element-blacklist'; @@ -58,7 +58,7 @@ function rule(list) { const name = value.slice(2); - if (!matchesStringOrRegExp(postcss.vendor.unprefixed(name), list)) { + if (!matchesStringOrRegExp(vendor.unprefixed(name), list)) { return; } diff --git a/lib/rules/selector-pseudo-element-disallowed-list/index.js b/lib/rules/selector-pseudo-element-disallowed-list/index.js index 0c9552b39b..a0349904c4 100644 --- a/lib/rules/selector-pseudo-element-disallowed-list/index.js +++ b/lib/rules/selector-pseudo-element-disallowed-list/index.js @@ -6,10 +6,10 @@ const _ = require('lodash'); const isStandardSyntaxRule = require('../../utils/isStandardSyntaxRule'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); const parseSelector = require('../../utils/parseSelector'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'selector-pseudo-element-disallowed-list'; @@ -50,7 +50,7 @@ function rule(list) { const name = value.slice(2); - if (!matchesStringOrRegExp(postcss.vendor.unprefixed(name), list)) { + if (!matchesStringOrRegExp(vendor.unprefixed(name), list)) { return; } diff --git a/lib/rules/selector-pseudo-element-no-unknown/index.js b/lib/rules/selector-pseudo-element-no-unknown/index.js index 54d2ecb570..970b60c720 100644 --- a/lib/rules/selector-pseudo-element-no-unknown/index.js +++ b/lib/rules/selector-pseudo-element-no-unknown/index.js @@ -8,10 +8,10 @@ const isStandardSyntaxSelector = require('../../utils/isStandardSyntaxSelector') const keywordSets = require('../../reference/keywordSets'); const optionsMatches = require('../../utils/optionsMatches'); const parseSelector = require('../../utils/parseSelector'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'selector-pseudo-element-no-unknown'; @@ -70,7 +70,7 @@ function rule(actual, options) { const name = value.slice(2); - if (postcss.vendor.prefix(name) || keywordSets.pseudoElements.has(name.toLowerCase())) { + if (vendor.prefix(name) || keywordSets.pseudoElements.has(name.toLowerCase())) { return; } diff --git a/lib/rules/selector-pseudo-element-whitelist/index.js b/lib/rules/selector-pseudo-element-whitelist/index.js index 679b76a715..cd6a8d7c89 100644 --- a/lib/rules/selector-pseudo-element-whitelist/index.js +++ b/lib/rules/selector-pseudo-element-whitelist/index.js @@ -6,10 +6,10 @@ const _ = require('lodash'); const isStandardSyntaxRule = require('../../utils/isStandardSyntaxRule'); const matchesStringOrRegExp = require('../../utils/matchesStringOrRegExp'); const parseSelector = require('../../utils/parseSelector'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'selector-pseudo-element-whitelist'; @@ -58,7 +58,7 @@ function rule(list) { const name = value.slice(2); - if (matchesStringOrRegExp(postcss.vendor.unprefixed(name), list)) { + if (matchesStringOrRegExp(vendor.unprefixed(name), list)) { return; } diff --git a/lib/rules/shorthand-property-no-redundant-values/index.js b/lib/rules/shorthand-property-no-redundant-values/index.js index aea549e688..a4fe764c7d 100644 --- a/lib/rules/shorthand-property-no-redundant-values/index.js +++ b/lib/rules/shorthand-property-no-redundant-values/index.js @@ -4,11 +4,11 @@ const isStandardSyntaxDeclaration = require('../../utils/isStandardSyntaxDeclaration'); const isStandardSyntaxProperty = require('../../utils/isStandardSyntaxProperty'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); const valueParser = require('postcss-value-parser'); +const vendor = require('../../utils/vendor'); const ruleName = 'shorthand-property-no-redundant-values'; @@ -90,7 +90,7 @@ function rule(actual, secondary, context) { const prop = decl.prop; const value = decl.value; - const normalizedProp = postcss.vendor.unprefixed(prop.toLowerCase()); + const normalizedProp = vendor.unprefixed(prop.toLowerCase()); if (hasIgnoredCharacters(value) || !isShorthandProperty(normalizedProp)) { return; diff --git a/lib/rules/time-min-milliseconds/index.js b/lib/rules/time-min-milliseconds/index.js index 7971a757b1..0e36002d66 100644 --- a/lib/rules/time-min-milliseconds/index.js +++ b/lib/rules/time-min-milliseconds/index.js @@ -11,6 +11,7 @@ const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); const valueParser = require('postcss-value-parser'); +const vendor = require('../../utils/vendor'); const ruleName = 'time-min-milliseconds'; @@ -43,7 +44,7 @@ function rule(minimum, options) { } root.walkDecls((decl) => { - const propertyName = postcss.vendor.unprefixed(decl.prop.toLowerCase()); + const propertyName = vendor.unprefixed(decl.prop.toLowerCase()); if ( keywordSets.longhandTimeProperties.has(propertyName) && diff --git a/lib/rules/unit-no-unknown/index.js b/lib/rules/unit-no-unknown/index.js index a7378b3605..090a6dce3e 100644 --- a/lib/rules/unit-no-unknown/index.js +++ b/lib/rules/unit-no-unknown/index.js @@ -10,11 +10,11 @@ const isMap = require('../../utils/isMap'); const keywordSets = require('../../reference/keywordSets'); const mediaParser = require('postcss-media-query-parser').default; const optionsMatches = require('../../utils/optionsMatches'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const validateOptions = require('../../utils/validateOptions'); const valueParser = require('postcss-value-parser'); +const vendor = require('../../utils/vendor'); const ruleName = 'unit-no-unknown'; @@ -121,7 +121,7 @@ function rule(actual, options) { if (/^(?:-webkit-)?image-set[\s(]/i.test(value)) { const imageSet = parsedValue.nodes.find( - (node) => postcss.vendor.unprefixed(node.value) === 'image-set', + (node) => vendor.unprefixed(node.value) === 'image-set', ); const imageSetValueLastIndex = _.last(imageSet.nodes).sourceIndex; diff --git a/lib/rules/value-no-vendor-prefix/index.js b/lib/rules/value-no-vendor-prefix/index.js index ba4b3609c3..416b28c0f0 100644 --- a/lib/rules/value-no-vendor-prefix/index.js +++ b/lib/rules/value-no-vendor-prefix/index.js @@ -7,11 +7,11 @@ const isAutoprefixable = require('../../utils/isAutoprefixable'); const isStandardSyntaxDeclaration = require('../../utils/isStandardSyntaxDeclaration'); const isStandardSyntaxProperty = require('../../utils/isStandardSyntaxProperty'); const optionsMatches = require('../../utils/optionsMatches'); -const postcss = require('postcss'); const report = require('../../utils/report'); const ruleMessages = require('../../utils/ruleMessages'); const styleSearch = require('style-search'); const validateOptions = require('../../utils/validateOptions'); +const vendor = require('../../utils/vendor'); const ruleName = 'value-no-vendor-prefix'; @@ -51,7 +51,7 @@ function rule(actual, options, context) { const prop = decl.prop; const value = decl.value; - const unprefixedValue = postcss.vendor.unprefixed(value); + const unprefixedValue = vendor.unprefixed(value); //return early if value is to be ignored if (optionsMatches(options, 'ignoreValues', unprefixedValue)) { diff --git a/lib/utils/__tests__/vendor.test.js b/lib/utils/__tests__/vendor.test.js new file mode 100644 index 0000000000..27e95f7bd7 --- /dev/null +++ b/lib/utils/__tests__/vendor.test.js @@ -0,0 +1,17 @@ +'use strict'; + +const vendor = require('../vendor'); + +const VALUE = '-1px -1px 1px rgba(0, 0, 0, 0.2) inset'; + +it('returns prefix', () => { + expect(vendor.prefix('-moz-color')).toEqual('-moz-'); + expect(vendor.prefix('color')).toEqual(''); + expect(vendor.prefix(VALUE)).toEqual(''); +}); + +it('returns unprefixed version', () => { + expect(vendor.unprefixed('-moz-color')).toEqual('color'); + expect(vendor.unprefixed('color')).toEqual('color'); + expect(vendor.unprefixed(VALUE)).toEqual(VALUE); +}); diff --git a/lib/utils/vendor.js b/lib/utils/vendor.js new file mode 100644 index 0000000000..b56b180c0d --- /dev/null +++ b/lib/utils/vendor.js @@ -0,0 +1,45 @@ +'use strict'; + +/** + * Contains helpers for working with vendor prefixes. + * + * Copied from https://github.com/postcss/postcss/commit/777c55b5d2a10605313a4972888f4f32005f5ac2 + * + * @namespace vendor + */ +module.exports = { + /** + * Returns the vendor prefix extracted from an input string. + * + * @param {string} prop String with or without vendor prefix. + * + * @return {string} vendor prefix or empty string + * + * @example + * vendor.prefix('-moz-tab-size') //=> '-moz-' + * vendor.prefix('tab-size') //=> '' + */ + prefix(prop) { + let match = prop.match(/^(-\w+-)/); + + if (match) { + return match[0]; + } + + return ''; + }, + + /** + * Returns the input string stripped of its vendor prefix. + * + * @param {string} prop String with or without vendor prefix. + * + * @return {string} String name without vendor prefixes. + * + * @example + * vendor.unprefixed('-moz-tab-size') //=> 'tab-size' + */ + unprefixed(prop) { + return prop.replace(/^-\w+-/, ''); + }, +};