Actualizacion maquina principal
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / stylelint / lib / utils / getSchemeFromUrl.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/stylelint/lib/utils/getSchemeFromUrl.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/stylelint/lib/utils/getSchemeFromUrl.js
new file mode 100644 (file)
index 0000000..0d8ecb6
--- /dev/null
@@ -0,0 +1,32 @@
+/* @flow */
+"use strict";
+
+const parse = require("url").parse;
+
+/**
+ * Get unit from value node
+ *
+ * Returns `null` if the unit is not found.
+ */
+module.exports = function(urlString /*: string*/) /*: ?string*/ {
+  const url = parse(urlString);
+  const protocol = url.protocol;
+  if (protocol === null || typeof protocol === "undefined") {
+    return null;
+  }
+
+  const scheme = protocol.slice(0, -1); // strip trailing `:`
+
+  // The URL spec does not require a scheme to be followed by `//`, but checking
+  // for it allows this rule to differentiate <scheme>:<hostname> urls from
+  // <hostname>:<port> urls. `data:` scheme urls are an exception to this rule.
+  const slashIndex = protocol.length;
+  const expectedSlashes = urlString.slice(slashIndex, slashIndex + 2);
+  const isSchemeLessUrl = expectedSlashes !== "//" && scheme !== "data";
+
+  if (isSchemeLessUrl) {
+    return null;
+  }
+
+  return scheme;
+};