eslint-plugin-unicorn
Version:
Various awesome ESLint rules
31 lines (26 loc) • 768 B
JavaScript
// AST Types:
// https://github.com/eslint/espree/blob/master/lib/ast-node-types.js#L18
// Only types possible to be `callee` or `argument` are listed
const impossibleNodeTypes = [
'ArrayExpression',
'ArrowFunctionExpression',
'ClassExpression',
'FunctionExpression',
'Literal',
'ObjectExpression',
'TemplateLiteral'
];
// We might need this later
/* istanbul ignore next */
const isNotDomNode = node =>
impossibleNodeTypes.includes(node.type) ||
(node.type === 'Identifier' && node.name === 'undefined');
const notDomNodeSelector = node => [
...impossibleNodeTypes.map(type => `[${node}.type!="${type}"]`),
`:not([${node}.type="Identifier"][${node}.name="undefined"])`
].join('');
module.exports = {
isNotDomNode,
notDomNodeSelector
};
;