ember-template-lint
Version:
Linter for Ember or Handlebars templates.
45 lines (38 loc) • 1.06 kB
JavaScript
const AstNodeInfo = require('../helpers/ast-node-info');
const createErrorMessage = require('../helpers/create-error-message');
const Rule = require('./base');
module.exports = class NoHtmlComments extends Rule {
parseConfig(config) {
let configType = typeof config;
switch (configType) {
case 'boolean':
return config;
case 'undefined':
return false;
}
let errorMessage = createErrorMessage(
this.ruleName,
[' * boolean - `true` to enable / `false` to disable'],
config
);
throw new Error(errorMessage);
}
visitor() {
return {
CommentStatement(node) {
if (AstNodeInfo.isNonConfigurationHtmlComment(node)) {
this.log({
message: 'HTML comment detected',
line: node.loc && node.loc.start.line,
column: node.loc && node.loc.start.column,
source: `<!--${node.value}-->`,
fix: {
text: `{{!${node.value}}}`,
},
});
}
},
};
}
};
;