mirror of
https://github.com/OliveTin/OliveTin
synced 2025-12-18 03:55:32 +00:00
47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
// NOTICE: This file is generated by Rollup. To modify it,
|
|
// please instead edit the ESM counterpart and rebuild with Rollup (npm run build).
|
|
'use strict';
|
|
|
|
const node_fs = require('node:fs');
|
|
const node_path = require('node:path');
|
|
const ignore = require('ignore');
|
|
const constants = require('../constants.cjs');
|
|
|
|
/**
|
|
* @typedef {import('stylelint').LinterOptions} LinterOptions
|
|
*
|
|
* @param {Pick<LinterOptions, 'ignorePath' | 'ignorePattern'> & { cwd: string }} options
|
|
* @returns {import('ignore').Ignore}
|
|
*/
|
|
function getFileIgnorer({ ignorePath, ignorePattern, cwd }) {
|
|
const ignorer = ignore();
|
|
const ignorePaths = [ignorePath || []].flat();
|
|
|
|
if (ignorePaths.length === 0) {
|
|
ignorePaths.push(constants.DEFAULT_IGNORE_FILENAME);
|
|
}
|
|
|
|
for (const ignoreFilePath of ignorePaths) {
|
|
const absoluteIgnoreFilePath = node_path.isAbsolute(ignoreFilePath)
|
|
? ignoreFilePath
|
|
: node_path.resolve(cwd, ignoreFilePath);
|
|
|
|
if (!node_fs.existsSync(absoluteIgnoreFilePath)) continue;
|
|
|
|
const ignoreText = node_fs.readFileSync(absoluteIgnoreFilePath, {
|
|
// utf must remain lowercased to hit the fast path
|
|
// see nodejs/node#49888
|
|
encoding: 'utf8',
|
|
flag: 'r',
|
|
});
|
|
|
|
ignorer.add(ignoreText);
|
|
}
|
|
|
|
if (ignorePattern) ignorer.add(ignorePattern);
|
|
|
|
return ignorer;
|
|
}
|
|
|
|
module.exports = getFileIgnorer;
|