This repository has been archived on 2020-11-02. You can view files and clone it, but cannot push or open issues or pull requests.
2020-11-01 22:46:04 +00:00

35 lines
998 B
JavaScript

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