UNPKG

1.79 kBJavaScriptView Raw
1/**
2 * require and specify a prefix for all filter names
3 *
4 * All your filters should have a name starting with the parameter you can define in your config object.
5 * The second parameter can be a Regexp wrapped in quotes.
6 * ("filter-name": [2, "ng"])
7 *
8 * @version 0.1.0
9 * @category naming
10 * @sinceAngularVersion 1.x
11 */
12'use strict';
13
14var utils = require('./utils/utils');
15
16module.exports = {
17 meta: {
18 schema: [{
19 type: ['string', 'object']
20 }]
21 },
22 create: function(context) {
23 return {
24
25 CallExpression: function(node) {
26 var prefix = context.options[0];
27 var convertedPrefix; // convert string from JSON .eslintrc to regex;
28 if (prefix === undefined) {
29 return;
30 }
31
32 convertedPrefix = utils.convertPrefixToRegex(prefix);
33
34 if (utils.isAngularFilterDeclaration(node)) {
35 var name = node.arguments[0].value;
36
37 if (name !== undefined && !convertedPrefix.test(name)) {
38 if (typeof prefix === 'string' && !utils.isStringRegexp(prefix)) {
39 context.report(node, 'The {{filter}} filter should be prefixed by {{prefix}}', {
40 filter: name,
41 prefix: prefix
42 });
43 } else {
44 context.report(node, 'The {{filter}} filter should follow this pattern: {{prefix}}', {
45 filter: name,
46 prefix: prefix.toString()
47 });
48 }
49 }
50 }
51 }
52 };
53 }
54};
55