Files
react-native-devtools-frontend/node_modules/stylelint/lib/utils/getFileIgnorer.mjs
T
Nikolay Vitkov 2a1b3b34b1 Update StyleLint to v16
Stylelint v16 deprecated CJS so I moved our lint script to ESM,
and fixed all the deprecation warning.
The only place I needed to silence them were tests,
as we import CJS there.

Bug: none
Change-Id: Iae4d2df76c855a9738b774a2d035f22509770215
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6138610
Commit-Queue: Nikolay Vitkov <nvitkov@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
2025-01-03 02:57:06 -08:00

42 lines
1.1 KiB
JavaScript

import { existsSync, readFileSync } from 'node:fs';
import { isAbsolute, resolve } from 'node:path';
import ignore from 'ignore';
import { DEFAULT_IGNORE_FILENAME } from '../constants.mjs';
/**
* @typedef {import('stylelint').LinterOptions} LinterOptions
*
* @param {Pick<LinterOptions, 'ignorePath' | 'ignorePattern'> & { cwd: string }} options
* @returns {import('ignore').Ignore}
*/
export default function getFileIgnorer({ ignorePath, ignorePattern, cwd }) {
const ignorer = ignore.default();
const ignorePaths = [ignorePath || []].flat();
if (ignorePaths.length === 0) {
ignorePaths.push(DEFAULT_IGNORE_FILENAME);
}
for (const ignoreFilePath of ignorePaths) {
const absoluteIgnoreFilePath = isAbsolute(ignoreFilePath)
? ignoreFilePath
: resolve(cwd, ignoreFilePath);
if (!existsSync(absoluteIgnoreFilePath)) continue;
const ignoreText = 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;
}