UNPKG

960 BJavaScriptView Raw
1'use strict';
2
3const utils = require('./utils.js')
4
5module.exports = function(context) {
6 const forbidden = /:animated|:button|:checkbox|:eq|:even|:file|:first([^-]|$)|:gt|:has|:header|:hidden|:image|:input|:last([^-]|$)|:lt|:odd|:parent|:password|:radio|:reset|:selected|:submit|:text|:visible/
7 const traversals = ['children', 'closest', 'filter', 'find', 'has', 'is', 'next', 'nextAll', 'nextUntil', 'not', 'parent', 'parents', 'parentsUntil', 'prev', 'prevAll', 'prevUntil', 'siblings']
8
9 return {
10 CallExpression: function(node) {
11 if (!node.arguments[0]) return
12 if (!utils.isjQuery(node)) return
13 if (node.callee.type === 'MemberExpression' &&
14 traversals.indexOf(node.callee.property.name) === -1) return
15
16 if (forbidden.test(node.arguments[0].value)) {
17 context.report({
18 node: node,
19 message: 'Selector extensions are not allowed'
20 })
21 }
22 }
23 }
24}
25
26module.exports.schema = []