Actualizacion maquina principal
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / stylelint / lib / utils / isAutoprefixable.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/stylelint/lib/utils/isAutoprefixable.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/stylelint/lib/utils/isAutoprefixable.js
new file mode 100644 (file)
index 0000000..5d53459
--- /dev/null
@@ -0,0 +1,58 @@
+/* @flow */
+"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 = {
+  atRuleName(identifier /*: string*/) /*: boolean*/ {
+    return prefixes.remove[`@${identifier.toLowerCase()}`];
+  },
+
+  selector(identifier /*: string*/) /*: boolean*/ {
+    return prefixes.remove.selectors.some(selectorObj => {
+      return identifier.toLowerCase() === selectorObj.prefixed;
+    });
+  },
+
+  mediaFeatureName(identifier /*: string*/) /*: boolean*/ {
+    return identifier.toLowerCase().indexOf("device-pixel-ratio") !== -1;
+  },
+
+  property(identifier /*: string*/) /*: boolean*/ {
+    return autoprefixer.data.prefixes[
+      prefixes.unprefixed(identifier.toLowerCase())
+    ];
+  },
+
+  propertyValue(prop /*: string*/, value /*: string*/) /*: boolean*/ {
+    const possiblePrefixableValues =
+      prefixes.remove[prop.toLowerCase()] &&
+      prefixes.remove[prop.toLowerCase()].values;
+    return (
+      possiblePrefixableValues &&
+      possiblePrefixableValues.some(valueObj => {
+        return value.toLowerCase() === valueObj.prefixed;
+      })
+    );
+  }
+};