.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / stylelint / lib / getConfigForFile.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/stylelint/lib/getConfigForFile.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/stylelint/lib/getConfigForFile.js
new file mode 100644 (file)
index 0000000..bea4b2a
--- /dev/null
@@ -0,0 +1,50 @@
+/* @flow */
+"use strict";
+const augmentConfigFull = require("./augmentConfig").augmentConfigFull;
+const configurationError = require("./utils/configurationError");
+const path = require("path");
+
+/*:: type configPromise = Promise<?{ config: stylelint$config, filepath: string }>*/
+
+module.exports = function(
+  stylelint /*: stylelint$internalApi*/,
+  searchPath /*:: ?: string*/
+) /*: configPromise*/ {
+  searchPath = searchPath || process.cwd();
+
+  const optionsConfig = stylelint._options.config;
+
+  if (optionsConfig !== undefined) {
+    const cached /*: configPromise*/ = stylelint._specifiedConfigCache.get(
+      optionsConfig
+    );
+    if (cached) return cached;
+
+    // stylelint._fullExplorer (cosmiconfig) is already configured to
+    // run augmentConfigFull; but since we're making up the result here,
+    // we need to manually run the transform
+    const augmentedResult = augmentConfigFull(stylelint, {
+      config: optionsConfig,
+      // Add the extra path part so that we can get the directory without being
+      // confused
+      filepath: path.join(process.cwd(), "argument-config")
+    });
+    stylelint._specifiedConfigCache.set(optionsConfig, augmentedResult);
+    return augmentedResult;
+  }
+
+  return stylelint._fullExplorer
+    .load(searchPath, stylelint._options.configFile)
+    .then(config => {
+      // If no config was found, try looking from process.cwd
+      if (!config) return stylelint._fullExplorer.load(process.cwd());
+      return config;
+    })
+    .then(config => {
+      if (!config) {
+        const ending = searchPath ? ` for ${searchPath}` : "";
+        throw configurationError(`No configuration provided${ending}`);
+      }
+      return config;
+    });
+};