1234567891011121314151617181920212223242526272829303132333435 |
- 'use strict';
- const { cosmiconfig } = 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;
- /** @typedef {import('stylelint').InternalApi} StylelintInternalApi */
- /**
- * The stylelint "internal API" is passed among functions
- * so that methods on a stylelint instance can invoke
- * each other while sharing options and caches.
- *
- * @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),
- stopDir: STOP_DIR,
- }),
- _specifiedConfigCache: new Map(),
- _postcssResultCache: new Map(),
- _fileCache: new FileCache(options.cacheLocation, options.cacheStrategy, cwd),
- };
- };
|