Blazing fast and accurate glob matcher written in JavaScript, with no dependencies and full support for standard and extended Bash glob features, including braces, extglobs, POSIX brackets, and regular expressions.
83
{
"context": "This criteria evaluates how effectively the engineer uses picomatch to implement cross-platform path matching functionality. The focus is on proper usage of picomatch's platform-specific options, path handling capabilities, and matching functions to support both Windows and POSIX path formats.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Windows option usage",
"description": "Uses picomatch's `windows` option to enable Windows path support in the createMatcher function, allowing both forward slashes and backslashes as path separators",
"max_score": 25
},
{
"name": "Platform-specific matching",
"description": "Correctly implements platform-specific behavior by passing appropriate options (windows: true for Windows platform, windows: false or omitted for POSIX) to picomatch functions",
"max_score": 20
},
{
"name": "Case sensitivity handling",
"description": "Uses picomatch's `nocase` option for Windows platform to implement case-insensitive matching, while maintaining case-sensitive matching for POSIX",
"max_score": 15
},
{
"name": "Matcher function creation",
"description": "Uses picomatch() to create reusable matcher functions that can be called repeatedly with different paths, rather than using isMatch() for every test",
"max_score": 15
},
{
"name": "Batch matching implementation",
"description": "Implements batch path matching using picomatch.isMatch() or a picomatch() matcher function to filter arrays of paths against patterns",
"max_score": 15
},
{
"name": "Path normalization",
"description": "Implements path normalization by converting between forward slashes and backslashes based on target platform (replacing '\\\\' with '/' for POSIX, '/' with '\\\\' for Windows)",
"max_score": 10
}
]
}Install with Tessl CLI
npx tessl i tessl/npm-picomatchevals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10