Sha256: f27d7d89ba922c916f165c099b95435d59cdf02d688362dfa6af75d3dc8475df

Contents?: true

Size: 867 Bytes

Versions: 43

Compression:

Stored size: 867 Bytes

Contents

'use strict'

const PROMISE_STATICS = require('./lib/promise-statics')
const getDocsUrl = require('./lib/get-docs-url')

module.exports = {
  meta: {
    docs: {
      url: getDocsUrl('no-new-statics')
    },
    fixable: 'code'
  },
  create(context) {
    return {
      NewExpression(node) {
        if (
          node.callee.type === 'MemberExpression' &&
          node.callee.object.name === 'Promise' &&
          PROMISE_STATICS[node.callee.property.name]
        ) {
          context.report({
            node,
            message: "Avoid calling 'new' on 'Promise.{{ name }}()'",
            data: { name: node.callee.property.name },
            fix(fixer) {
              return fixer.replaceTextRange(
                [node.start, node.start + 'new '.length],
                ''
              )
            }
          })
        }
      }
    }
  }
}

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
govuk_publishing_components-16.19.0 node_modules/eslint-plugin-promise/rules/no-new-statics.js
govuk_publishing_components-16.18.0 node_modules/eslint-plugin-promise/rules/no-new-statics.js
govuk_publishing_components-16.17.0 node_modules/eslint-plugin-promise/rules/no-new-statics.js