Files
react-native-devtools-frontend/node_modules/stylelint/lib/getConfigForFile.js
T
Mathias Bynens 79e2cf0633 Add stylelint dependency
This also adds CC-BY-4.0 to the list of accepted licenses.

DISABLE_THIRD_PARTY_CHECK=update dependencies

Bug: chromium:1083142
Change-Id: I8612de2fba52dae32eeb71af79d5aacfde52142b
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2220097
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
Commit-Queue: Mathias Bynens <mathias@chromium.org>
2020-06-11 06:20:04 +00:00

62 lines
1.9 KiB
JavaScript

'use strict';
const augmentConfigFull = require('./augmentConfig').augmentConfigFull;
const configurationError = require('./utils/configurationError');
const path = require('path');
/** @typedef {import('stylelint').StylelintConfig} StylelintConfig */
/** @typedef {import('stylelint').CosmiconfigResult} CosmiconfigResult */
/** @typedef {Promise<CosmiconfigResult | null>} ConfigPromise */
/**
* @param {import('stylelint').StylelintInternalApi} stylelint
* @param {string} [searchPath]
* @returns {ConfigPromise}
*/
module.exports = function (stylelint, searchPath = process.cwd()) {
const optionsConfig = stylelint._options.config;
if (optionsConfig !== undefined) {
const cached = /** @type {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 /** @type {ConfigPromise} */ (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;
}));
};