All files / src/rules no-deprecated-attr.ts

100% Statements 10/10
100% Branches 6/6
100% Functions 2/2
100% Lines 10/10
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      1x           8x 6x 6x 6x     6x 2x     4x 4x 2x        
import { Rule, RuleReport, RuleParserProxy } from '../rule';
import { AttributeEvent } from '../event';
 
export = {
	name: 'no-deprecated-attr',
	init,
} as Rule;
 
function init(parser: RuleParserProxy){
	parser.on('attr', (event: AttributeEvent, report: RuleReport) => {
		const node = event.target;
		const meta = node.meta;
		const attr = event.key.toLowerCase();
 
		/* cannot validate if meta isn't known */
		if (meta === null){
			return;
		}
 
		const deprecated = meta.deprecatedAttributes || [];
		if (deprecated.indexOf(attr) >= 0){
			report(node, `Attribute "${event.key}" is deprecated on <${node.tagName}> element`);
		}
	});
}