drizzle-orm
drizzle-orm copied to clipboard
[BUG]: eslint-plugin-drizzle incorrect warning
What version of drizzle-orm
are you using?
0.29.4
What version of drizzle-kit
are you using?
0.20.14
Describe the Bug
Hi Drizzle team, I am working on a project based on nextjs using the t3 stack and I am getting
eslint(drizzle/enforce-delete-with-where)
message while using a simple javascript Map (typescript).
I also tried to restart esllint/vscode but the warning persists. Let me know if there's anything other useful information I can provide.
.eslintrc.cjs
/** @type {import("eslint").Linter.Config} */
const config = {
"parser": "@typescript-eslint/parser",
"parserOptions": {
"project": true
},
"plugins": [
"@typescript-eslint",
"drizzle"
],
"extends": [
"next/core-web-vitals",
"plugin:@typescript-eslint/recommended-type-checked",
"plugin:@typescript-eslint/stylistic-type-checked"
],
"rules": {
"@typescript-eslint/array-type": "off",
"@typescript-eslint/consistent-type-definitions": "off",
"@typescript-eslint/consistent-type-imports": [
"warn",
{
"prefer": "type-imports",
"fixStyle": "inline-type-imports"
}
],
"@typescript-eslint/no-unused-vars": [
"warn",
{
"argsIgnorePattern": "^_"
}
],
"@typescript-eslint/require-await": "off",
"@typescript-eslint/no-misused-promises": [
"error",
{
"checksVoidReturn": {
"attributes": false
}
}
],
"drizzle/enforce-delete-with-where": "error",
"drizzle/enforce-update-with-where": "error"
}
}
module.exports = config;
Expected behavior
Do not show warning when not related to drizzle orm.
Environment & setup
Windows 11
package.json
{
"dependencies": {
"@auth/drizzle-adapter": "^0.7.0",
"@ducanh2912/next-pwa": "^10.2.5",
"@radix-ui/react-avatar": "^1.0.4",
"@radix-ui/react-scroll-area": "^1.0.5",
"@radix-ui/react-slot": "^1.0.2",
"@t3-oss/env-nextjs": "^0.9.2",
"@tanstack/react-query": "^5.25.0",
"@trpc/client": "next",
"@trpc/next": "next",
"@trpc/react-query": "next",
"@trpc/server": "next",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.0",
"drizzle-orm": "^0.29.4",
"lucide-react": "^0.364.0",
"next": "^14.1.3",
"next-auth": "^4.24.6",
"postgres": "^3.4.3",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-icons": "^5.0.1",
"superjson": "^2.2.1",
"tailwind-merge": "^2.2.2",
"tailwindcss-animate": "^1.0.7",
"zod": "^3.22.4"
},
"devDependencies": {
"@types/eslint": "^8.56.2",
"@types/node": "^20.11.20",
"@types/react": "^18.2.57",
"@types/react-dom": "^18.2.19",
"@typescript-eslint/eslint-plugin": "^7.1.1",
"@typescript-eslint/parser": "^7.1.1",
"drizzle-kit": "^0.20.14",
"eslint": "^8.57.0",
"eslint-config-next": "^14.1.3",
"eslint-plugin-drizzle": "^0.2.3",
"pg": "^8.11.3",
"postcss": "^8.4.34",
"prettier": "^3.2.5",
"prettier-plugin-tailwindcss": "^0.5.11",
"tailwindcss": "^3.4.1",
"typescript": "^5.4.2"
},
"ct3aMetadata": {
"initVersion": "7.30.0"
},
"packageManager": "[email protected]"
}
Getting this issue too but with when using a tRPC procedure. Looks like it looks for a method called "delete" and ensures that the subsequently chained method is called "where"
Bumping because I get the same issue as OP, also when using a vanilla JS Map instance.
The same. With Express.js:
import express from 'express'
const adminRouter = express.Router()
adminRouter.delete('/channel', channelDelete) // drizzle/enforce-delete-with-where
With @elastic/elasticsearch:
async function deleteIndex(indexName) {
await (await client).indices.delete({ index: indexName }) // drizzle/enforce-delete-with-where
}
"drizzle-orm": "^0.30.1" "drizzle-kit": "^0.20.14" "eslint-plugin-drizzle": "^0.2.3"