eslint-plugin-headers
Advanced tools
Comparing version
@@ -64,11 +64,4 @@ /** | ||
.map((line) => { | ||
const lineRegex = line.replace(/\((\w+)\)/g, (match, patternName) => { | ||
if (this.patterns && this.patterns[patternName]) { | ||
this.patternOrder.push(patternName); | ||
return `(${this.patterns[patternName].pattern})`; | ||
} else { | ||
return escapeRegex(match); | ||
} | ||
}); | ||
return `${escapedLinePrefix}${lineRegex}`.trimEnd(); | ||
const escapedLine = this.processAndEscapeString(line); | ||
return `${escapedLinePrefix}${escapedLine}`.trimEnd(); | ||
}) | ||
@@ -84,2 +77,41 @@ .join("\n"); | ||
/** | ||
* Registers patterns and escapes regex in {@link str}. | ||
* | ||
* @param {string} str | ||
*/ | ||
processAndEscapeString(str) { | ||
if (!this.patterns) { | ||
return escapeRegex(str); | ||
} | ||
const patternPattern = /\((\w+)\)/g; | ||
let patternPatternMatch = patternPattern.exec(str); | ||
if (!patternPatternMatch) { | ||
return escapeRegex(str); | ||
} | ||
let startingIndex = 0; | ||
const segments = []; | ||
while (patternPatternMatch) { | ||
const patternName = patternPatternMatch[1]; | ||
const nextStartingIndex = | ||
patternPatternMatch.index + patternPatternMatch[0].length; | ||
if (!this.patterns[patternName]) { | ||
segments.push(escapeRegex(str.slice(startingIndex, nextStartingIndex))); | ||
} else { | ||
this.patternOrder.push(patternName); | ||
segments.push( | ||
escapeRegex(str.slice(startingIndex, patternPatternMatch.index)), | ||
); | ||
segments.push(`(${this.patterns[patternName].pattern})`); | ||
} | ||
startingIndex = nextStartingIndex; | ||
patternPatternMatch = patternPattern.exec(str); | ||
} | ||
return segments.join(""); | ||
} | ||
/** | ||
* Verifies {@link comments} matches the configuration. | ||
@@ -86,0 +118,0 @@ * |
{ | ||
"name": "eslint-plugin-headers", | ||
"version": "1.3.1", | ||
"version": "1.3.2", | ||
"description": "A flexible and `--fix`able rule for checking, inserting, and formatting file headers.", | ||
@@ -5,0 +5,0 @@ "repository": { |
41720
2.04%824
3.39%