'use strict'; // Try to get file ignorer from '.stylelintignore' const fs = require('fs'); const path = require('path'); const { default: ignore } = require('ignore'); const isPathNotFoundError = require('./isPathNotFoundError'); const DEFAULT_IGNORE_FILENAME = '.stylelintignore'; /** * @param {{ cwd: string, ignorePath?: string, ignorePattern?: string[] }} options * @return {import('ignore').Ignore} */ module.exports = function getFileIgnorer(options) { const ignoreFilePath = options.ignorePath || DEFAULT_IGNORE_FILENAME; const absoluteIgnoreFilePath = path.isAbsolute(ignoreFilePath) ? ignoreFilePath : path.resolve(options.cwd, ignoreFilePath); let ignoreText = ''; try { ignoreText = fs.readFileSync(absoluteIgnoreFilePath, 'utf8'); } catch (readError) { if (!isPathNotFoundError(readError)) { throw readError; } } return ignore() .add(ignoreText) .add(options.ignorePattern || []); };