eslint-plugin-codelyzer
Version:
39 lines (38 loc) • 1.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var create_eslint_rule_1 = require("../util/create-eslint-rule");
var utils_1 = require("../../util/utils");
var utils_2 = require("../util/utils");
exports.RULE_NAME = 'use-pipe-decorator';
var PIPE_TRANSFORM = 'PipeTransform';
exports.default = create_eslint_rule_1.createESLintRule({
name: exports.RULE_NAME,
meta: {
type: 'suggestion',
docs: {
description: "Ensures that classes implementing " + PIPE_TRANSFORM + " interface use @" + utils_1.AngularClassDecorators.Pipe + " decorator",
category: 'Best Practices',
recommended: false
},
schema: [],
messages: {
usePipeDecorator: "Classes that implement the " + PIPE_TRANSFORM + " interface should be decorated with @" + utils_1.AngularClassDecorators.Pipe
}
},
defaultOptions: [],
create: function (context) {
var _a;
return _a = {},
_a['ClassDeclaration > TSClassImplements:matches([expression.name="PipeTransform"], [expression.property.name="PipeTransform"])'] = function (node) {
var classParent = node.parent;
if (utils_2.getPipeDecorator(classParent)) {
return;
}
context.report({
node: classParent,
messageId: 'usePipeDecorator'
});
},
_a;
}
});