mirror of
https://github.com/thangisme/notes.git
synced 2024-11-01 02:27:20 -04:00
44 lines
1.5 KiB
JavaScript
44 lines
1.5 KiB
JavaScript
|
/* @flow */
|
||
|
"use strict"
|
||
|
const augmentConfigFull = require("./augmentConfig").augmentConfigFull
|
||
|
const configurationError = require("./utils/configurationError")
|
||
|
const path = require("path")
|
||
|
|
||
|
module.exports = function (
|
||
|
stylelint/*: stylelint$internalApi*/,
|
||
|
searchPath/*:: ?: string*/
|
||
|
)/*: Promise<?{ config: stylelint$config, filepath: string }>*/ {
|
||
|
searchPath = searchPath || process.cwd()
|
||
|
|
||
|
const optionsConfig = stylelint._options.config
|
||
|
|
||
|
if (optionsConfig !== undefined) {
|
||
|
const cached = 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
|
||
|
})
|
||
|
}
|