glob-escape
Version:
Escape glob patterns
30 lines (26 loc) • 687 B
JavaScript
var util = require('util');
function escapeGlobStringOrArray(escapeFn) {
return function(glob) {
if (typeof glob === 'string') {
return escapeFn(glob);
}
if (Array.isArray(glob)) {
return glob.map(escapeFn);
}
throw new Error('glob pattern needs to be a string or array');
};
}
function escapeGlob(glob) {
return glob
.replace(/\\/g, '\\\\')
.replace(/\*/g, '\\*')
.replace(/\?/g, '\\?')
.replace(/\[/g, '\\[')
.replace(/\]/g, '\\]')
.replace(/\{/g, '\\{')
.replace(/\}/g, '\\}')
.replace(/\)/g, '\\)')
.replace(/\(/g, '\\(')
.replace(/\!/g, '\\!');
}
module.exports = escapeGlobStringOrArray(escapeGlob);