Eslint: Previsto { dopo la condizione 'while'

Il motivo dell’avviso di eslint è che sono necessarie le parentesi graffe attorno al tuo return text;

Cioè, dovrebbe apparire così:

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

Sebbene JavaScript consenta l’omissione delle parentesi graffe, ESLint impone uno stile coerente delle parentesi graffe.

Maggiori dettagli sulla regola curly qui: