All files / src/rules close-attr.ts

87.5% Statements 7/8
83.33% Branches 5/6
100% Functions 2/2
87.5% Lines 7/8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28      1x           7x         10x         10x 3x     7x 3x      
import { Rule, RuleReport, RuleParserProxy } from '../rule';
import { TagCloseEvent } from '../event';
 
export = {
	name: 'close-attr',
	init,
} as Rule;
 
function init(parser: RuleParserProxy){
	parser.on('tag:close', validate);
}
 
function validate(event: TagCloseEvent, report: RuleReport){
	/* handle unclosed tags */
	Iif (typeof event.target === 'undefined'){
		return;
	}
 
	/* ignore self-closed and void */
	if (event.previous === event.target){
		return;
	}
 
	if (Object.keys(event.target.attr).length > 0){
		report(event.target, "Close tags cannot have attributes");
	}
}