eslint-plugin-codelyzer
Version:
39 lines (38 loc) • 1.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var create_eslint_rule_1 = require("../util/create-eslint-rule");
var selectors_1 = require("../util/selectors");
var utils_1 = require("../util/utils");
exports.RULE_NAME = 'use-pipe-transform-interface';
var PIPE_TRANSFORM = 'PipeTransform';
exports.default = create_eslint_rule_1.createESLintRule({
name: exports.RULE_NAME,
meta: {
type: 'suggestion',
docs: {
description: "Ensures tht classes decorated with @" + utils_1.AngularClassDecorators.Pipe + " implement " + PIPE_TRANSFORM + " interface",
category: 'Best Practices',
recommended: false
},
schema: [],
messages: {
usePipeTransformInterface: "Classes decorated with @" + utils_1.AngularClassDecorators.Pipe + " decorator should implement " + PIPE_TRANSFORM + " interface"
}
},
defaultOptions: [],
create: function (context) {
var _a;
return _a = {},
_a[selectors_1.PIPE_CLASS_DECORATOR] = function (node) {
var classParent = node.parent;
if (utils_1.getDeclaredInterfaceName(classParent, PIPE_TRANSFORM)) {
return;
}
context.report({
node: classParent,
messageId: 'usePipeTransformInterface'
});
},
_a;
}
});