首页 > 其他 > 详细

[AST Eslint] No Console allowed

时间:2020-01-23 21:09:59      阅读:138      评论:0      收藏:0      [点我收藏+]
// eslint exercise 1 (no-console)
// When you‘re finished with this exercise, run
//   "npm start exercise.eslint.2"
//   to move on to the next exercise

module.exports = {
  create(context) {
    return {
      CallExpression(node) {
        if (hasIdentifierObjectAsConsole(node) && hasPropertyWithInvalidMethods(node)) {
          context.report({
            node,
            message: ‘Using console is not allowed‘,
          })
        }
      },
    }
  },
}

function hasPropertyWithInvalidMethods (node) {
    return (
      node.callee.property && 
      [‘warn‘, ‘log‘, ‘info‘].includes(node.callee.property.name)
  )
}

function hasIdentifierObjectAsConsole(node) {
  return node.callee.object && 
    node.callee.object.type === "Identifier" && 
    node.callee.object.name === "console";
}

 

// eslint exercise 1 (no-console)
// When you‘re finished with this exercise, run
//   "npm start exercise.eslint.2"
//   to move on to the next exercise

const {RuleTester} = require(‘eslint‘)
const rule = require(‘./no-console‘)

const ruleTester = new RuleTester()
ruleTester.run(‘no-console‘, rule, {
  valid: [‘info()‘, ‘console‘, ‘console.log‘, ‘console.baz()‘],
  invalid: [
    invalid(‘console.log()‘),
    invalid(‘console.info()‘),
    invalid(‘console.warn()‘),
  ],
})

function invalid(code) {
  return {
    code,
    errors: [{message: ‘Using console is not allowed‘}],
  }
}

[AST Eslint] No Console allowed

原文:https://www.cnblogs.com/Answer1215/p/12231325.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!