You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
998 B
34 lines
998 B
'use strict'; |
|
// Try to get file ignorer from '.stylelintignore' |
|
|
|
const fs = require('fs'); |
|
const path = require('path'); |
|
const { default: ignore } = require('ignore'); |
|
|
|
const DEFAULT_IGNORE_FILENAME = '.stylelintignore'; |
|
const FILE_NOT_FOUND_ERROR_CODE = 'ENOENT'; |
|
|
|
/** @typedef {import('stylelint').StylelintStandaloneOptions} StylelintOptions */ |
|
|
|
/** |
|
* @param {StylelintOptions} options |
|
* @return {import('ignore').Ignore} |
|
*/ |
|
module.exports = function (options) { |
|
const ignoreFilePath = options.ignorePath || DEFAULT_IGNORE_FILENAME; |
|
const absoluteIgnoreFilePath = path.isAbsolute(ignoreFilePath) |
|
? ignoreFilePath |
|
: path.resolve(process.cwd(), ignoreFilePath); |
|
let ignoreText = ''; |
|
|
|
try { |
|
ignoreText = fs.readFileSync(absoluteIgnoreFilePath, 'utf8'); |
|
} catch (readError) { |
|
if (readError.code !== FILE_NOT_FOUND_ERROR_CODE) throw readError; |
|
} |
|
|
|
const ignorePattern = options.ignorePattern || []; |
|
const ignorer = ignore().add(ignoreText).add(ignorePattern); |
|
|
|
return ignorer; |
|
};
|
|
|