docs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10
Build a file filtering system that processes lists of file paths using glob patterns with support for multiple patterns, including both inclusion and exclusion rules.
Your system should implement a function that filters arrays of file paths based on multiple glob patterns. The function should:
* and **['src/app.js', 'src/test.js', 'dist/app.js', 'README.md'] and patterns ['**/*.js'], returns all JavaScript files @test['src/app.js', 'src/test.js', 'src/utils.js'] and patterns ['**/*.js', '!**/*test.js'], returns only non-test JavaScript files @test['a.js', 'b.css', 'c.html', 'd.js'] and patterns ['*.js', '*.css'], returns files matching either pattern @test['src/foo.js', 'test/foo.js', 'src/bar.js'] and patterns ['src/**/*.js'], returns only source JavaScript files @test/**
* Filters an array of file paths using multiple glob patterns.
* Patterns starting with '!' are treated as exclusion patterns.
*
* @param {string[]} paths - Array of file paths to filter
* @param {string[]} patterns - Array of glob patterns (supports negation with '!')
* @returns {string[]} Array of paths that match the patterns
*/
function filterPaths(paths, patterns) {
// Implementation here
}
module.exports = { filterPaths };Provides glob pattern matching capabilities for filtering file paths.