Search code examples
javascripteslintcode-formattingprettier

Enforce curly braces for JS switch-cases with ESLint or Prettier


I'd like to enforce curly braces for switch-cases in JS, possibly with ESLint or Prettier. Do you know of any related config, or if not that, then any other linting or formatting tool?

I tried the ESLint rule curly set to "all", but it didn't compain about my curly-less switch-cases.

There is a switch-case ESLint plugin, but I haven't found such a rule in its doc, neither in its source code.

Example

Wrong:

switch (foo) {
  case "bar":
    return 1;
  case "baz":
    return 2;
  default:
    return 0;
}

Correct:

switch (foo) {
  case "bar": {
    return 1;
  }
  case "baz": {
    return 2;
  }
  default: {
    return 0;
  }
}

Solution

  • The switch-braces rule in the following eslint custom rules repo seems to be the one you are looking for: https://github.com/justinanastos/eslint-plugin-justinanastos/blob/master/docs/rules/switch-braces.md

    You can give it a try.