mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-05 11:31:31 +08:00
This also upgrades PostCSS to 8.3.11. DISABLE_THIRD_PARTY_CHECK=Updating Stylelint configuration R=szuend@chromium.org Bug: none Change-Id: I606540b03509d7c6e73f3d490327cd4174e03d31 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3259541 Reviewed-by: Simon Zünd <szuend@chromium.org> Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
66 lines
2.1 KiB
JavaScript
66 lines
2.1 KiB
JavaScript
'use strict';
|
|
|
|
const configurationError = require('./utils/configurationError');
|
|
const path = require('path');
|
|
const { augmentConfigFull } = require('./augmentConfig');
|
|
const { cosmiconfig } = require('cosmiconfig');
|
|
|
|
const IS_TEST = process.env.NODE_ENV === 'test';
|
|
const STOP_DIR = IS_TEST ? process.cwd() : undefined;
|
|
|
|
/** @typedef {import('stylelint').InternalApi} StylelintInternalApi */
|
|
/** @typedef {import('stylelint').Config} StylelintConfig */
|
|
/** @typedef {import('stylelint').CosmiconfigResult} StylelintCosmiconfigResult */
|
|
|
|
/**
|
|
* @param {StylelintInternalApi} stylelint
|
|
* @param {string} [searchPath]
|
|
* @param {string} [filePath]
|
|
* @returns {Promise<StylelintCosmiconfigResult>}
|
|
*/
|
|
module.exports = async function getConfigForFile(stylelint, searchPath = process.cwd(), filePath) {
|
|
const optionsConfig = stylelint._options.config;
|
|
|
|
if (optionsConfig !== undefined) {
|
|
const cached = stylelint._specifiedConfigCache.get(optionsConfig);
|
|
|
|
// If config has overrides the resulting config might be different for some files.
|
|
// Cache results only if resulted config is the same for all linted files.
|
|
if (cached && !optionsConfig.overrides) {
|
|
return cached;
|
|
}
|
|
|
|
const augmentedResult = augmentConfigFull(stylelint, filePath, {
|
|
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 configExplorer = cosmiconfig('stylelint', {
|
|
transform: (cosmiconfigResult) => augmentConfigFull(stylelint, filePath, cosmiconfigResult),
|
|
stopDir: STOP_DIR,
|
|
});
|
|
|
|
let config = stylelint._options.configFile
|
|
? await configExplorer.load(stylelint._options.configFile)
|
|
: await configExplorer.search(searchPath);
|
|
|
|
if (!config) {
|
|
config = await configExplorer.search(process.cwd());
|
|
}
|
|
|
|
if (!config) {
|
|
return Promise.reject(
|
|
configurationError(`No configuration provided${searchPath ? ` for ${searchPath}` : ''}`),
|
|
);
|
|
}
|
|
|
|
return config;
|
|
};
|