1 | 'use strict';
|
2 |
|
3 |
|
4 | const fs = require('fs');
|
5 | const path = require('path');
|
6 | const { default: ignore } = require('ignore');
|
7 |
|
8 | const DEFAULT_IGNORE_FILENAME = '.stylelintignore';
|
9 | const FILE_NOT_FOUND_ERROR_CODE = 'ENOENT';
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 | module.exports = function (options) {
|
18 | const ignoreFilePath = options.ignorePath || DEFAULT_IGNORE_FILENAME;
|
19 | const absoluteIgnoreFilePath = path.isAbsolute(ignoreFilePath)
|
20 | ? ignoreFilePath
|
21 | : path.resolve(process.cwd(), ignoreFilePath);
|
22 | let ignoreText = '';
|
23 |
|
24 | try {
|
25 | ignoreText = fs.readFileSync(absoluteIgnoreFilePath, 'utf8');
|
26 | } catch (readError) {
|
27 | if (readError.code !== FILE_NOT_FOUND_ERROR_CODE) throw readError;
|
28 | }
|
29 |
|
30 | const ignorePattern = options.ignorePattern || [];
|
31 | const ignorer = ignore().add(ignoreText).add(ignorePattern);
|
32 |
|
33 | return ignorer;
|
34 | };
|