UNPKG

@shayanthenerd/eslint-config

Version:

A modern, flexible ESLint configuration for enforcing best practices and maintaining a consistent coding style

26 lines (24 loc) 1.29 kB
import path from "node:path"; import { includeIgnoreFile } from "@eslint/compat"; import fs from "node:fs"; import { styleText } from "node:util"; //#region src/utils/ignores/resolveGitignorePatterns.ts const warningMessage = styleText("yellow", "⚠ Warning:"); const gitignoreDisableFlag = styleText("bgBlack", " gitignore: false "); const fallbackMessage = `Falling back to default ignore patterns. You can suppress this warning by setting ${gitignoreDisableFlag} in the config.`; function resolveGitignorePatterns(gitignorePath) { const gitignoreAbsolutePath = path.resolve(process.cwd(), gitignorePath); const styledGitignorePath = styleText("blue", gitignoreAbsolutePath); const gitignoreExists = fs.existsSync(gitignoreAbsolutePath); const gitignorePatterns = []; if (!gitignoreExists) { console.warn(warningMessage, `No .gitignore file found at "${styledGitignorePath}".`, fallbackMessage); return gitignorePatterns; } const ignorePatterns = includeIgnoreFile(gitignoreAbsolutePath).ignores ?? []; if (ignorePatterns.length > 0) gitignorePatterns.push(...ignorePatterns); else console.warn(warningMessage, `No patterns found in .gitignore file at "${styledGitignorePath}".`, fallbackMessage); return gitignorePatterns; } //#endregion export { resolveGitignorePatterns };