Sha256: 9615fcdb5dd6d3673a66a968821a43e3c9a6c525703019db6c44448da51e730a

Contents?: true

Size: 1.88 KB

Versions: 23

Compression:

Stored size: 1.88 KB

Contents

'use strict';

const autoprefixer = require('autoprefixer');
const Browsers = require('autoprefixer/lib/browsers');
const Prefixes = require('autoprefixer/lib/prefixes');

/**
 * Use Autoprefixer's secret powers to determine whether or
 * not a certain CSS identifier contains a vendor prefix that
 * Autoprefixer, given the standardized identifier, could add itself.
 *
 * Used by `*-no-vendor-prefix-*` rules to find superfluous
 * vendor prefixes.
 */

const prefixes = new Prefixes(
	autoprefixer.data.prefixes,
	new Browsers(autoprefixer.data.browsers, []),
);

/**
 * Most identifier types have to be looked up in a unique way,
 * so we're exposing special functions for each.
 */
module.exports = {
	/**
	 * @param {string} identifier
	 * @returns {boolean}
	 */
	atRuleName(identifier) {
		return Boolean(prefixes.remove[`@${identifier.toLowerCase()}`]);
	},

	/**
	 * @param {string} identifier
	 * @returns {boolean}
	 */
	selector(identifier) {
		return prefixes.remove.selectors.some((/** @type {{ prefixed: string}} */ selectorObj) => {
			return identifier.toLowerCase() === selectorObj.prefixed;
		});
	},

	/**
	 * @param {string} identifier
	 * @returns {boolean}
	 */
	mediaFeatureName(identifier) {
		return identifier.toLowerCase().includes('device-pixel-ratio');
	},

	/**
	 * @param {string} identifier
	 * @returns {boolean}
	 */
	property(identifier) {
		return Boolean(autoprefixer.data.prefixes[prefixes.unprefixed(identifier.toLowerCase())]);
	},

	/**
	 *
	 * @param {string} prop
	 * @param {string} value
	 * @returns {boolean}
	 */
	propertyValue(prop, value) {
		const possiblePrefixableValues =
			(prefixes.remove[prop.toLowerCase()] && prefixes.remove[prop.toLowerCase()].values) || false;

		return (
			possiblePrefixableValues &&
			possiblePrefixableValues.some((/** @type {{ prefixed: string}} */ valueObj) => {
				return value.toLowerCase() === valueObj.prefixed;
			})
		);
	},
};

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
trusty-cms-5.0.7 node_modules/stylelint/lib/utils/isAutoprefixable.js
trusty-cms-5.0.6 node_modules/stylelint/lib/utils/isAutoprefixable.js
trusty-cms-5.0.5 node_modules/stylelint/lib/utils/isAutoprefixable.js
trusty-cms-5.0.4 node_modules/stylelint/lib/utils/isAutoprefixable.js
trusty-cms-5.0.3 node_modules/stylelint/lib/utils/isAutoprefixable.js
trusty-cms-5.0.2 node_modules/stylelint/lib/utils/isAutoprefixable.js
trusty-cms-5.0.1 node_modules/stylelint/lib/utils/isAutoprefixable.js
trusty-cms-4.3.5 node_modules/stylelint/lib/utils/isAutoprefixable.js
trusty-cms-5.0.0 node_modules/stylelint/lib/utils/isAutoprefixable.js
trusty-cms-4.3.4 node_modules/stylelint/lib/utils/isAutoprefixable.js
trusty-cms-4.3.3 node_modules/stylelint/lib/utils/isAutoprefixable.js
trusty-cms-4.3.2 node_modules/stylelint/lib/utils/isAutoprefixable.js
trusty-cms-4.3.1 node_modules/stylelint/lib/utils/isAutoprefixable.js
trusty-cms-4.3 node_modules/stylelint/lib/utils/isAutoprefixable.js
trusty-cms-4.2.3 node_modules/stylelint/lib/utils/isAutoprefixable.js
trusty-cms-4.2.2 node_modules/stylelint/lib/utils/isAutoprefixable.js
trusty-cms-4.2.1 node_modules/stylelint/lib/utils/isAutoprefixable.js
trusty-cms-4.2 node_modules/stylelint/lib/utils/isAutoprefixable.js
trusty-cms-4.1.9 node_modules/stylelint/lib/utils/isAutoprefixable.js
trusty-cms-4.1.8 node_modules/stylelint/lib/utils/isAutoprefixable.js