Eslint: 'while' 조건 뒤에 { 가 필요합니다

Formatting toolbar 포크를 해서 매우 커스텀한 포맷팅 기능을 추가했습니다.

제 코드는 다음과 같습니다:

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

하지만 eslint가 다음과 같이 경고합니다:

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

그 while과 그 뒤에 있는 코드를 한 줄로 옮기려고 해봤습니다(여기서 보이는 포맷팅은 vscode가 적용한 것이며, 제가 관리하는 다른 플러그인에서는 보통 잘 작동합니다) 하지만 그것도 도움이 되지 않았습니다.

누군가 힌트를 줄 수 있을까요?

수정: 결국 그 함수가 실제로 필요하지 않은 것으로 밝혀졌지만, 그래도 문제의 원인이 무엇인지 알고 싶습니다.

eslint 경고가 발생한 이유는 return text를 중괄호로 감싸야 하기 때문입니다.

즉, 다음과 같이 작성해야 합니다:

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

JavaScript에서는 중괄호를 생략할 수 있지만, ESLint는 일관된 중괄호 스타일을 강제합니다.

curly 규칙에 대한 자세한 내용은 다음 링크에서 확인하실 수 있습니다: