Parse a .gitignore or .npmignore file into an array of patterns. TypeScript version.
> A TypeScript library for parsing .gitignore or .npmignore files into an array of patterns.
parse-gitignore-ts is a TypeScript version of parse-gitignore, providing complete type definitions and support for modern module formats. This library helps you parse .gitignore or .npmignore files and offers various useful features.
- Complete TypeScript type support
- Support for both ESM and CommonJS module formats
- Parse .gitignore files into pattern arrays
- Support for deduplication and formatting
- Convert gitignore patterns to glob patterns
- Zero dependencies
Install with npm:
``sh`
npm install --save parse-gitignore-ts
Or with yarn:
`sh`
$ yarn add parse-gitignore-ts
Or with pnpm:
`sh`
pnpm add parse-gitignore-ts
`ts
import { readFileSync } from 'fs';
import parseGitignore from 'parse-gitignore-ts';
// Pass the contents of a .gitignore file as a string or buffer
console.log(parseGitignore(readFileSync('foo/bar/.gitignore')));
//=> ['*.DS_Store', 'node_modules', ...];
`
ESM:
`ts`
import parseGitignore from 'parse-gitignore-ts';
CommonJS:
`js`
const parseGitignore = require('parse-gitignore-ts');
Parse the contents of a .gitignore file, like the following:
`shLogs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
Into an array:
`ts
[
'logs',
'*.log',
'npm-debug.log*',
'yarn-debug.log*',
'yarn-error.log*',
'pids',
'*.pid',
'*.seed',
'*.pid.lock',
];
`API
$3
Parse a
.gitignore file content into an array of patterns.Parameters
-
input: String, Buffer, or already parsed object
- options: Optional configuration object
- path: File path
- dedupe: Whether to deduplicate
- unique: Whether to deduplicate (same as dedupe)
- ignore: Additional patterns to ignore
- unignore: Patterns to unignore
- formatSection: Custom section formatting functionReturn Value
Returns an object with the following properties:
-
sections: Array of sections, each with name, comment, and patterns properties
- patterns: Array of all patterns
- path: File path
- input: Input Buffer
- format: Formatting function
- dedupe: Deduplication function
- globs: Function to convert to glob patterns$3
Parse a
.gitignore file at the specified path.`ts
import parseGitignore from 'parse-gitignore-ts';const parsed = parseGitignore.file('.gitignore');
console.log(parsed.patterns);
`$3
Remove duplicate sections and patterns.
`ts
import parseGitignore from 'parse-gitignore-ts';const deduped = parseGitignore.dedupe(gitignoreContent);
console.log(deduped.patterns);
`$3
Format
.gitignore file content.`ts
import parseGitignore from 'parse-gitignore-ts';const formatted = parseGitignore.format(gitignoreContent);
console.log(formatted);
`$3
Convert
.gitignore patterns to glob patterns.`ts
import parseGitignore from 'parse-gitignore-ts';const globs = parseGitignore.globs(gitignoreContent);
console.log(globs);
`$3
Extract patterns array from input.
`ts
import parseGitignore from 'parse-gitignore-ts';const patterns = parseGitignore.patterns(gitignoreContent);
console.log(patterns);
`Advanced Usage
$3
`ts
import parseGitignore from 'parse-gitignore-ts';const customFormat = parseGitignore.format(gitignoreContent, {
formatSection: (section) => {
if (!section.name) return '';
const header =
## ${section.name.toUpperCase()} ##;
const border = '#'.repeat(header.length); return [border, header, border, '', ...(section.patterns || []), ''].join('\n');
},
});
`$3
`ts
import parseGitignore from 'parse-gitignore-ts';const gitignore1 = '*.log\nnode_modules/';
const gitignore2 = 'dist/\n.DS_Store';
const merged = parseGitignore.dedupe(
[...parseGitignore(gitignore1).patterns, ...parseGitignore(gitignore2).patterns].join('\n')
);
``MIT