UNPKG

eslint-plugin-codelyzer

Version:

42 lines (41 loc) 1.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var create_eslint_rule_1 = require("../util/create-eslint-rule"); var utils_1 = require("../util/utils"); exports.RULE_NAME = 'no-output-on-prefix'; exports.default = create_eslint_rule_1.createESLintRule({ name: exports.RULE_NAME, meta: { type: 'suggestion', docs: { description: "Name events without the prefix on. See more at https://angular.io/guide/styleguide#dont-prefix-output-properties.", category: 'Best Practices', recommended: false }, schema: [], messages: { noOutputOnPrefix: 'In the class "{{className}}", the output property "{{memberName}}" should not be prefixed with on' } }, defaultOptions: [], create: function (context) { return { 'ClassProperty > Decorator[expression.callee.name="Output"]': function (node) { var property = node.parent; var className = utils_1.getClassName(node); var memberName = utils_1.getClassPropertyName(property); if (!memberName || !/^on((?![a-z])|(?=$))/.test(memberName)) { return; } context.report({ node: property, messageId: 'noOutputOnPrefix', data: { className: className, memberName: memberName } }); } }; } });