Retrieve list of files ignored/included by Git, NPM, Yarn, JSR, VSCE or other tools.
npm install view-ignored



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
- Native. 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 Target interface.
- 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.
> [!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.
``ts
import * as vign from "view-ignored";
import { Git } from "view-ignored/targets";
const results = await vign.scan({ target: Git });
results.paths.has(".git/HEAD");
`
`ts
import * as vign from "view-ignored";
import {
type SourceExtractor,
type SignedPattern,
extractGitignore
findAndExtract,
signedPatternIgnores,
} from "view-ignored/patterns";
import type { Target } from "view-ignored/targets";
const gitSources = ['.gitignore'];
const gitSourceMap = new Map
['.gitignore', extractGitignore]
]);
const gitPattern: SignedPattern = {
exclude: [
'.git',
'.DS_Store',
],
include: []
};
export const Git: Target = {
async matcher(entry, isDir, ctx) {
if (isDir) {
await findAndExtract(entry, gitSources, gitSourceMap, ctx);
return true;
}
return await signedPatternIgnores(gitPattern, entry, gitSources, gitSourceMap, ctx);
}
};
`
`ts`
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 .gitignore files but does not consider global settings.git ls-tree -r HEAD --name-only
- Check this scanner by running ..npmignore
- See the implementation of Git target for details.
- NPM (compatible with Bun, PNPM, and others)
- Reads and package.json files field.name
- No additional checks for , version or publishConfig.npm pack --dry-run
- Check this scanner by running .npm
- See the implementation of NPM target for details.
- Yarn
- Same behavior as , but also reads .yarnignore..vscodeignore
- See the implementation of Yarn target for details.
- VSCE
- Reads and package.json files field.vsce ls
- Check this scanner by running .jsr.json(c)
- See the implementation of VSCE target for details.
- JSR (compatible with Deno)
- Reads and deno.json(c) include and exclude` fields.
- See the implementation of JSR target for details.
MIT License. See LICENSE.txt for details.