Retrieve list of files ignored/included by Git, NPM, Yarn, JSR, VSCE or other tools.
- Node.js 18 or later for production
- Node.js 20 or later for production type definitions
- Node.js 22 or later for development type definitions
- Reader. Get a list of included files using configuration file readers, not command-line wrappers.
- Plugins. Built-in targets for popular tools. Use custom
targets by implementing the
Targetinterface. - TypeScript. Written in TypeScript with type definitions included.
- Lightweight. Minimal dependencies for fast performance and small bundle size.
- Easy-to-modify. Well-written and MIT-licensed.
- Broswer. Can be bundled for browser use. See
ScanOptions.fsp.
Note
Despite the name of the package being "view-ignored",
the primary purpose is to get the list of
included files, i.e., files that are not ignored.
You can invert the results if you need the ignored files
by setting the invert option to true.
import * as vign from "view-ignored";
import { Git as target } from "view-ignored/targets";
const results = await vign.scan({ target });
results.paths.has(".git/HEAD");import * as vign from "view-ignored";
import {
type SourceExtractor,
type SignedPattern,
extractGitignore,
signedPatternIgnores
} from "view-ignored/patterns";
import type { Target } from "view-ignored/targets";
const gitSources = [".gitignore"];
const gitSourceMap = new Map<string, SourceExtractor>([[".gitignore", extractGitignore]]);
const gitPattern: SignedPattern = {
exclude: [".git", ".DS_Store"],
include: [],
};
export const Git: Target = {
async ignores(cwd, entry, ctx) {
return await signedPatternIgnores(gitPattern, cwd, entry, gitSources, gitSourceMap, ctx);
},
};vign.scan({ target: Git });Note
Each scanner expects minimal configurations, but the actual tool can have more/less complex rules. Refer to the documentation of each tool for details.
The following built-in scanners are available:
- Git
- Reads
.gitignorefiles but does not consider global settings. - Check this scanner by running
git ls-tree -r HEAD --name-only. - See the implementation of Git target for details.
- Reads
- NPM (compatible with Bun, PNPM, and others)
- Reads
.npmignoreandpackage.jsonfilesfield. - No additional checks for
name,versionorpublishConfig. - Check this scanner by running
npm pack --dry-run. - See the implementation of NPM target for details.
- Reads
- Yarn
- Same behavior as
npm, but also reads.yarnignore. - See the implementation of Yarn target for details.
- Same behavior as
- VSCE
- Reads
.vscodeignoreandpackage.jsonfilesfield. - Check this scanner by running
vsce ls. - See the implementation of VSCE target for details.
- Reads
- JSR (compatible with Deno)
- Reads
jsr.json(c)anddeno.json(c)includeandexcludefields. - See the implementation of JSR target for details.
- Reads
- https://jsr.io/@m234/path - Utility to sort paths.
MIT License. See LICENSE.txt for details.