Eslint : attendu { après la condition 'while'

J’ai forké Formatting toolbar pour ajouter des éléments de formatage très personnalisés.

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

Mon code ressemble à ceci :

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

Mais eslint se plaint :

    9:3  error  Expected { after 'while' condition  curly

J’ai essayé de déplacer ce while et le reste sur une seule ligne (le formatage ici est appliqué par vscode et fonctionne généralement avec les autres plugins que je gère), mais cela n’a pas aidé non plus.

Quelqu’un peut-il me donner un indice ?

EDIT : Eh bien, il s’avère que je n’ai pas vraiment besoin de cette fonction, mais j’aimerais toujours savoir quel est le problème.

1 « J'aime »

La raison de l’avertissement ESLint est que vous avez besoin d’accolades autour de votre return text ;

C’est-à-dire qu’il devrait ressembler à ceci :

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

Bien que JavaScript permette l’omission des accolades, ESLint impose un style cohérent d’accolades.

Plus de détails sur la règle curly ici :

3 « J'aime »