Files
NapCatQQ/.pnpm-store/v3/files/c2/9a44d6f3a9d6833bfa8ff8b1ecc53c4463a47714884bc038c0327fcc825a22a47e4489556bc8ea972606da1db8c733967722f580b8bbfed6deeb9693e8e8fe
T
TanTan e311ca3275
Build NapCat Artifacts / Type Check & Test (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

62 lines
1.4 KiB
Plaintext

'use strict'
const { readFileSync } = require('node:fs')
const path = require('node:path')
// @ts-ignore - There's no types for the cjs file of this package
const { gitignoreToMinimatch } = require('@humanwhocodes/gitignore-to-minimatch')
const findUp = require('find-up')
const FLAT_CONFIG_FILENAMES = [
'eslint.config.js',
'eslint.config.mjs',
'eslint.config.cjs',
'eslint.config.ts',
'eslint.config.mts',
'eslint.config.cts',
]
/**
* Searches from the current working directory up until finding the
* given flat config filename.
*
* @see {@link https://github.com/eslint/eslint/blob/38c159e7dda812ce6dfdbf8c5b78db7cdd676c62/lib/eslint/eslint.js#L260-L271}
*
* @returns {string|undefined} The filename if found or `undefined` if not.
*/
function findFlatConfigFileSync () {
return findUp.sync(FLAT_CONFIG_FILENAMES)
}
/**
* @returns {string[]}
*/
function resolveIgnoresFromGitignore () {
const configFile = findFlatConfigFileSync()
if (!configFile) {
return []
}
/** @type {string[]} */
const result = []
try {
const content = readFileSync(path.join(path.dirname(configFile), '.gitignore'), 'utf8')
for (let line of content.split('\n')) {
line = line.trim()
if (line && !line.startsWith('#')) {
result.push(gitignoreToMinimatch(line))
}
}
} catch {}
return result
}
module.exports = {
resolveIgnoresFromGitignore,
}