Eslint: Se esperaba { después de la condición 'while'

Hice un fork de Formatting toolbar para añadir algunas cosas de formato muy personalizadas.

Tiene discourse-formatting-toolbar/assets/javascripts/lib/discourse-markdown/formatting_bbcode.js at master · MonDiscourse/discourse-formatting-toolbar · GitHub

Mi código se ve así:

function replaceTitle(text) {
  while (
    text !==
    (text = text.replace(/\[title\](.+?)\[\/title\]/gi, function (match, p) {
      return `<div class="job-title">${p}</div>`;
    }))
  );
  return text;
}

Pero eslint se queja:

    9:3  error  Se esperaba { después de la condición 'while'  curly

Intenté mover ese while y lo que sigue a una sola línea (el formato aquí lo aplican vscode y generalmente funciona con los otros plugins que administro), pero eso tampoco ayudó.

¿Alguien puede darme una pista?

EDIT: Bueno, resulta que en realidad no necesito esa función, pero aún así me gustaría saber cuál es el problema.

1 me gusta

La razón de la advertencia de eslint es que necesitas llaves rodeando tu return text;

Es decir, debería verse así:

  while (
    text !==
    (text = text.replace(/\[title\](.+?)\[\/title\]/gi, function (match, p) {
      return `<div class="job-title">${p}</div>`;
    }))
  ) {
    return text;
  }

Aunque JavaScript permite omitir las llaves, ESLint exige un estilo de llaves consistente.

Más detalles sobre la regla curly aquí:

3 Me gusta