summaryrefslogtreecommitdiff
path: root/node_modules/globby/ignore.js
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2026-05-18 23:10:59 +0800
committerlittleblack111 <littleblack11111@gmail.com>2026-05-18 23:41:44 +0800
commitfc87c009806dcc98867f6b58efe29b042aa01dee (patch)
tree8f59b3f4a5b66e9dfef2d40c8d318e258a521228 /node_modules/globby/ignore.js
parent3336b2356ee6152d9c6ae59bd9b87ccbc0958407 (diff)
node: updatemain
Diffstat (limited to 'node_modules/globby/ignore.js')
-rw-r--r--node_modules/globby/ignore.js94
1 files changed, 0 insertions, 94 deletions
diff --git a/node_modules/globby/ignore.js b/node_modules/globby/ignore.js
deleted file mode 100644
index 3d8e1a8e..00000000
--- a/node_modules/globby/ignore.js
+++ /dev/null
@@ -1,94 +0,0 @@
-import process from 'node:process';
-import fs from 'node:fs';
-import path from 'node:path';
-import fastGlob from 'fast-glob';
-import gitIgnore from 'ignore';
-import slash from 'slash';
-import {toPath, isNegativePattern} from './utilities.js';
-
-const ignoreFilesGlobOptions = {
- ignore: [
- '**/node_modules',
- '**/flow-typed',
- '**/coverage',
- '**/.git',
- ],
- absolute: true,
- dot: true,
-};
-
-export const GITIGNORE_FILES_PATTERN = '**/.gitignore';
-
-const applyBaseToPattern = (pattern, base) => isNegativePattern(pattern)
- ? '!' + path.posix.join(base, pattern.slice(1))
- : path.posix.join(base, pattern);
-
-const parseIgnoreFile = (file, cwd) => {
- const base = slash(path.relative(cwd, path.dirname(file.filePath)));
-
- return file.content
- .split(/\r?\n/)
- .filter(line => line && !line.startsWith('#'))
- .map(pattern => applyBaseToPattern(pattern, base));
-};
-
-const toRelativePath = (fileOrDirectory, cwd) => {
- cwd = slash(cwd);
- if (path.isAbsolute(fileOrDirectory)) {
- if (slash(fileOrDirectory).startsWith(cwd)) {
- return path.relative(cwd, fileOrDirectory);
- }
-
- throw new Error(`Path ${fileOrDirectory} is not in cwd ${cwd}`);
- }
-
- return fileOrDirectory;
-};
-
-const getIsIgnoredPredicate = (files, cwd) => {
- const patterns = files.flatMap(file => parseIgnoreFile(file, cwd));
- const ignores = gitIgnore().add(patterns);
-
- return fileOrDirectory => {
- fileOrDirectory = toPath(fileOrDirectory);
- fileOrDirectory = toRelativePath(fileOrDirectory, cwd);
- return fileOrDirectory ? ignores.ignores(slash(fileOrDirectory)) : false;
- };
-};
-
-const normalizeOptions = (options = {}) => ({
- cwd: toPath(options.cwd) || process.cwd(),
- suppressErrors: Boolean(options.suppressErrors),
- deep: typeof options.deep === 'number' ? options.deep : Number.POSITIVE_INFINITY,
-});
-
-export const isIgnoredByIgnoreFiles = async (patterns, options) => {
- const {cwd, suppressErrors, deep} = normalizeOptions(options);
-
- const paths = await fastGlob(patterns, {cwd, suppressErrors, deep, ...ignoreFilesGlobOptions});
-
- const files = await Promise.all(
- paths.map(async filePath => ({
- filePath,
- content: await fs.promises.readFile(filePath, 'utf8'),
- })),
- );
-
- return getIsIgnoredPredicate(files, cwd);
-};
-
-export const isIgnoredByIgnoreFilesSync = (patterns, options) => {
- const {cwd, suppressErrors, deep} = normalizeOptions(options);
-
- const paths = fastGlob.sync(patterns, {cwd, suppressErrors, deep, ...ignoreFilesGlobOptions});
-
- const files = paths.map(filePath => ({
- filePath,
- content: fs.readFileSync(filePath, 'utf8'),
- }));
-
- return getIsIgnoredPredicate(files, cwd);
-};
-
-export const isGitIgnored = options => isIgnoredByIgnoreFiles(GITIGNORE_FILES_PATTERN, options);
-export const isGitIgnoredSync = options => isIgnoredByIgnoreFilesSync(GITIGNORE_FILES_PATTERN, options);