epiphany/node_modules/stylelint/lib/createStylelint.js
2023-12-09 22:48:07 -08:00

35 lines
1,000 B
JavaScript

'use strict';
const { cosmiconfig, defaultLoadersSync } = require('cosmiconfig');
const augmentConfig = require('./augmentConfig');
const FileCache = require('./utils/FileCache');
const IS_TEST = process.env.NODE_ENV === 'test';
const STOP_DIR = IS_TEST ? process.cwd() : undefined;
/**
* @type {import('stylelint')['_createLinter']}
*/
module.exports = function createStylelint(options = {}) {
const cwd = options.cwd || process.cwd();
return {
_options: { ...options, cwd },
_extendExplorer: cosmiconfig('', {
transform: augmentConfig.augmentConfigExtended(cwd),
loaders: {
'.cjs': (cjsPath, cjsContent) =>
Promise.resolve(defaultLoadersSync['.cjs'](cjsPath, cjsContent)),
'.js': (jsPath, cjsContent) =>
Promise.resolve(defaultLoadersSync['.js'](jsPath, cjsContent)),
},
stopDir: STOP_DIR,
}),
_specifiedConfigCache: new Map(),
_postcssResultCache: new Map(),
_fileCache: new FileCache(options.cacheLocation, options.cacheStrategy, cwd),
};
};