Blame view

node_modules/eslint-plugin-promise/rules/param-names.js 1006 Bytes
ce4c83ff   wxy   初始提交
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
  'use strict'
  
  const getDocsUrl = require('./lib/get-docs-url')
  
  module.exports = {
    meta: {
      docs: {
        url: getDocsUrl('param-names')
      },
      fixable: 'code'
    },
    create(context) {
      return {
        NewExpression(node) {
          if (node.callee.name === 'Promise' && node.arguments.length === 1) {
            const params = node.arguments[0].params
  
            if (!params || !params.length) {
              return
            }
  
            if (
              params[0].name !== 'resolve' ||
              (params[1] && params[1].name !== 'reject')
            ) {
              context.report({
                node,
                message:
                  'Promise constructor parameters must be named resolve, reject',
                fix(fixer) {
                  return [
                    fixer.replaceText(params[0], 'resolve'),
                    params[1] && fixer.replaceText(params[1], 'reject')
                  ].filter(Boolean)
                }
              })
            }
          }
        }
      }
    }
  }