0.0.6 • Published 2 years ago
glob-monster v0.0.6
glob-monster
File globber that understands globs or regex.
See tests for more details.
Install
npm install glob-monsterUsage
const { find, getFilePaths } = require('glob-monster')
const opts = {}
const files = await find(['**.md'], opts)
console.log(files)
/* [
'README.md',
'node_modules/dequal/readme.md',
] */
const opts = {}
const filesViaRegex = await find([/\.md$/], {})
console.log(filesViaRegex)
/* files [
'README.md',
'node_modules/dequal/readme.md',
] */
const mdxAndTestFiles = await getFilePaths(ROOT_DIR, {
patterns: [
/(.*)\.mdx?$/,
/\.test\.js$/,
],
ignore: [
/node_modules/,
],
excludeGitIgnore: true,
excludeHidden: true,
})About
I wanted a easy way to use glob patterns or regular expressions to locate files. Thus, this package was born.
String globs match via micromatch and is-glob.
Basic syntax
- An asterisk (
*) — matches everything except slashes (path separators), hidden files (names starting with.). - A double star or globstar (
**) — matches zero or more directories. - Question mark (
?) – matches any single character except slashes (path separators). - Sequence (
[seq]) — matches any character in sequence.
:book: A few additional words about the basic matching behavior.
Some examples:
src/**/*.js— matches all files in thesrcdirectory (any level of nesting) that have the.jsextension.src/*.??— matches all files in thesrcdirectory (only first level of nesting) that have a two-character extension.file-[01].js— matches files:file-0.js,file-1.js.
Advanced syntax
- Escapes characters (
\\) — matching special characters ($^*+?()[]) as literals. - POSIX character classes (
[[:digit:]]). - Extended globs (
?(pattern-list)). - Bash style brace expansions (
{}). - Regexp character classes (
[1-5]). - Regex groups (
(a|b)).
:book: A few additional words about the advanced matching behavior.
Some examples:
src/**/*.{css,scss}— matches all files in thesrcdirectory (any level of nesting) that have the.cssor.scssextension.file-[[:digit:]].js— matches files:file-0.js,file-1.js, …,file-9.js.file-{1..3}.js— matches files:file-1.js,file-2.js,file-3.js.file-(1|2)— matches files:file-1.js,file-2.js.