특정 시나리오에서 타입 검사를 수행할 수 없거나, 가능하더라도 오류 메시지를 이해하기 어려운 경우를 대비해 ESLint 패키지를 만들었습니다. 이 패키지는 개발 과정에서 중요한 시나리오를 다루는 데 도움을 주기 위해 권장 규칙을 제공합니다.
설치
npm
yarn
pnpm
bun
위 패키지들을 설치하려면 다음 명령어를 사용하세요:
이 명령어는 eslint-plugin-drizzle와 함께 TypeScript 관련 ESLint 플러그인도 함께 설치합니다. --save-dev 옵션을 사용하면 개발 의존성으로 설치됩니다.
사용 방법
.eslintrc.yml 예제
전체 설정
이 플러그인은 모든 규칙(더 이상 사용되지 않는 규칙 제외)을 사용하는 all 설정을 제공합니다.
권장 설정
현재 all 설정은 recommended 설정과 동일합니다.
Rules
enforce-delete-with-where
.delete() 문에서 .where() 절과 함께 delete를 사용하도록 강제합니다. 대부분의 경우, 테이블의 모든 행을 삭제할 필요는 없으며, WHERE 조건이 필요합니다.
선택적으로, 플러그인 옵션에서 drizzleObjectName을 정의할 수 있습니다. 이 옵션은 string 또는 string[]을 받습니다. 이는 Drizzle이 아닌 다른 객체나 클래스에 delete 메서드가 있을 때 유용합니다. 이러한 delete 메서드는 ESLint 규칙을 트리거할 수 있습니다. 이를 방지하기 위해, 코드베이스에서 사용하는 Drizzle 객체의 이름(예: db)을 정의할 수 있습니다. 이렇게 하면 해당 객체에서 delete 메서드가 호출될 때만 규칙이 트리거됩니다.
예제 1:
예제 2:
enforce-update-with-where:
.update() 문에서 .where() 절과 함께 update를 사용하도록 강제합니다.
대부분의 경우, 테이블의 모든 행을 업데이트할 필요는 없으며, 어떤 형태의 WHERE 문이 필요합니다.
선택적으로, 플러그인 옵션에서 drizzleObjectName을 정의할 수 있습니다. 이는 string 또는 string[]을 받습니다. 이 옵션은 Drizzle이 아닌 다른 객체나 클래스에 update 메서드가 있을 때 유용합니다. 예를 들어, Drizzle이 아닌 객체의 update 메서드가 ESLint 규칙을 트리거하지 않도록 하기 위해, 코드베이스에서 사용하는 Drizzle 객체의 이름(예: db)을 정의할 수 있습니다. 이렇게 하면 해당 객체의 update 메서드에서만 규칙이 트리거됩니다.