aboutsummaryrefslogtreecommitdiff
path: root/node_modules/tslint/lib/rules/noInvalidTemplateStringsRule.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/tslint/lib/rules/noInvalidTemplateStringsRule.js')
-rw-r--r--node_modules/tslint/lib/rules/noInvalidTemplateStringsRule.js18
1 files changed, 13 insertions, 5 deletions
diff --git a/node_modules/tslint/lib/rules/noInvalidTemplateStringsRule.js b/node_modules/tslint/lib/rules/noInvalidTemplateStringsRule.js
index d3ee747f2..3fe553081 100644
--- a/node_modules/tslint/lib/rules/noInvalidTemplateStringsRule.js
+++ b/node_modules/tslint/lib/rules/noInvalidTemplateStringsRule.js
@@ -20,7 +20,7 @@ var tslib_1 = require("tslib");
var utils = require("tsutils");
var ts = require("typescript");
var Lint = require("../index");
-var Rule = (function (_super) {
+var Rule = /** @class */ (function (_super) {
tslib_1.__extends(Rule, _super);
function Rule() {
return _super !== null && _super.apply(this, arguments) || this;
@@ -52,10 +52,18 @@ function walk(ctx) {
return ts.forEachChild(node, cb);
});
function check(node) {
- var idx = node.text.search(/\$\{/);
- if (idx !== -1) {
- var textStart = node.getStart() + 1;
- ctx.addFailureAt(textStart + idx, 2, Rule.FAILURE_STRING);
+ var text = node.getText(ctx.sourceFile);
+ var findTemplateStrings = /\\*\$\{/g;
+ var instance = findTemplateStrings.exec(text);
+ while (instance !== null) {
+ var matchLength = instance[0].length;
+ var backslashCount = matchLength - 2;
+ var instanceIsEscaped = backslashCount % 2 === 1;
+ if (!instanceIsEscaped) {
+ var start = node.getStart() + (instance.index + backslashCount);
+ ctx.addFailureAt(start, 2, Rule.FAILURE_STRING);
+ }
+ instance = findTemplateStrings.exec(text);
}
}
}