Sha256: 02bbbe075933482dc108e2523eec7a779cc97f47699868ac38cb268ab724fea9

Contents?: true

Size: 1.9 KB

Versions: 24

Compression:

Stored size: 1.9 KB

Contents

'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;
		}));
};

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
trusty-cms-6.3.1 node_modules/stylelint/lib/getConfigForFile.js
trusty-cms-5.0.7 node_modules/stylelint/lib/getConfigForFile.js
trusty-cms-5.0.6 node_modules/stylelint/lib/getConfigForFile.js
trusty-cms-5.0.5 node_modules/stylelint/lib/getConfigForFile.js
trusty-cms-5.0.4 node_modules/stylelint/lib/getConfigForFile.js
trusty-cms-5.0.3 node_modules/stylelint/lib/getConfigForFile.js
trusty-cms-5.0.2 node_modules/stylelint/lib/getConfigForFile.js
trusty-cms-5.0.1 node_modules/stylelint/lib/getConfigForFile.js
trusty-cms-4.3.5 node_modules/stylelint/lib/getConfigForFile.js
trusty-cms-5.0.0 node_modules/stylelint/lib/getConfigForFile.js
trusty-cms-4.3.4 node_modules/stylelint/lib/getConfigForFile.js
trusty-cms-4.3.3 node_modules/stylelint/lib/getConfigForFile.js
trusty-cms-4.3.2 node_modules/stylelint/lib/getConfigForFile.js
trusty-cms-4.3.1 node_modules/stylelint/lib/getConfigForFile.js
trusty-cms-4.3 node_modules/stylelint/lib/getConfigForFile.js
trusty-cms-4.2.3 node_modules/stylelint/lib/getConfigForFile.js
trusty-cms-4.2.2 node_modules/stylelint/lib/getConfigForFile.js
trusty-cms-4.2.1 node_modules/stylelint/lib/getConfigForFile.js
trusty-cms-4.2 node_modules/stylelint/lib/getConfigForFile.js
trusty-cms-4.1.9 node_modules/stylelint/lib/getConfigForFile.js