- ESLint 공식문서 : https://eslint.org/docs/latest/extend/plugins
파서를 통해 나온 구문을 보고, 구체적인 상황을 판단하여 명령을 수행할 수 있다.
ex) 문자열인지 코드인지 구분하여, 코드에 대해서만 필터링 코드 적용
ESLint
는 Abstract Syntax Tree(AST)
를 이용해서 규칙을 정의하고 적용함.ESLint
는 Espree
라고 하는 파서를 통해 소스코드를 파싱함.⇒
Espree AST
를 읽을 수 있다면 ESLint 규칙도 쉽게 만들 수 있다.소스코드 내의 HTTP 문자열이 있을 시 에러 띄우기 예시
{ "type": "Literal", "value": "http://toss.im", "raw": "\"http://toss.im\"" }
module.exports = { meta: { /* ... */ }, create: function (context) { return { Literal: function (node) { if (typeof node.value !== "string") { return; } if (node.value.indexOf("http://") >= 0) { context.report({ node, messageId: "isHttpBanned" }); } }, }; }, };
