| 'use strict'; |
| |
| var path = require('path'); |
| |
| function containsPath(fp, segment) { |
| if (typeof fp !== 'string' || typeof segment !== 'string') { |
| throw new TypeError('contains-path expects file paths to be a string.'); |
| } |
| |
| var prefix = '(^|\\/)'; |
| if (segment.indexOf('./') === 0 || segment.charAt(0) === '/') { |
| prefix = '^'; |
| } |
| |
| var re = new RegExp(prefix + normalize(segment).join('\\/') + '($|\\/)'); |
| fp = normalize(fp).join('/'); |
| return re.test(fp); |
| } |
| |
| /** |
| * Normalize slashes |
| */ |
| |
| function normalize(str) { |
| str = path.normalize(str); |
| return str.split(/[\\\/]+/); |
| } |
| |
| /** |
| * Expose `containsPath` |
| */ |
| |
| module.exports = containsPath; |