HEX
Server: Apache
System: Linux webd004.cluster130.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User: frenchy (106757)
PHP: 7.4.33
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/frenchy/www/french-american.org/current/node_modules/stylelint/lib/getConfigForFile.js
/* @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;
  }

  const searchForConfig = stylelint._options.configFile
    ? stylelint._fullExplorer.load(stylelint._options.configFile)
    : stylelint._fullExplorer.search(searchPath);

  return searchForConfig
    .then(config => {
      // If no config was found, try looking from process.cwd
      if (!config) return stylelint._fullExplorer.search(process.cwd());

      return config;
    })
    .then(config => {
      if (!config) {
        const ending = searchPath ? ` for ${searchPath}` : "";

        throw configurationError(`No configuration provided${ending}`);
      }

      return config;
    });
};