Skip to content

Latest commit

 

History

History
100 lines (80 loc) · 2.01 KB

require-meta-fixable.md

File metadata and controls

100 lines (80 loc) · 2.01 KB

Require rules to implement a meta.fixable property (require-meta-fixable)

✔️ The "extends": "plugin:eslint-plugin/recommended" property in a configuration file enables this rule.

A fixable ESLint rule must have a valid meta.fixable property. A rule reports a problem with a fix() function but does not export a meta.fixable property is likely to cause an unexpected error.

Rule Details

This rule aims to require ESLint rules to have a meta.fixable property if necessary.

Examples of incorrect code for this rule:

/* eslint eslint-plugin/require-meta-fixable: "error" */

module.exports = {
  meta: {},
  create (context) {
    context.report({
      node,
      message: 'foo',
      fix (fixer) {
        return fixer.remove(node);
      },
    });
  },
};
/* eslint eslint-plugin/require-meta-fixable: "error" */

module.exports = {
  meta: { fixable: 'not a valid meta.fixable value' },
  create (context) {
    context.report({
      node,
      message: 'foo',
      fix (fixer) {
        return fixer.remove(node);
      },
    });
  },
};
/* eslint eslint-plugin/require-meta-fixable: "error" */

module.exports = { create (context) {
  context.report({
    node,
    message: 'foo',
    fix (fixer) {
      return fixer.remove(node);
    },
  });
} };

Examples of correct code for this rule:

/* eslint eslint-plugin/require-meta-fixable: "error" */

module.exports = {
  meta: { fixable: 'code' },
  create (context) {
    context.report({
      node,
      message: 'foo',
      fix (fixer) {
        return fixer.remove(node);
      },
    });
  },
};
/* eslint eslint-plugin/require-meta-fixable: "error" */

module.exports = {
  meta: {},
  create (context) {
    context.report({
      node,
      message: 'foo',
    });
  },
};

When Not To Use It

If you do not plan to implement autofixable rules, you can turn off this rule.

Further Reading