diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 68e14b6..859ad18 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -34,6 +34,7 @@ jobs: - name: Cache turbo build uses: dtinth/setup-github-actions-caching-for-turbo@v1 + - run: pnpm lint - run: pnpm build - run: pnpm test:unit - run: pnpm test:e2e diff --git a/.vscode/settings.json b/.vscode/settings.json index 9fecfe4..2182c22 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -25,6 +25,7 @@ "noto", "nuxt", "nuxtjs", + "oxlint", "pkgs", "pnpm", "pompy", diff --git a/apps/blog/package.json b/apps/blog/package.json index 6df3afb..163369d 100644 --- a/apps/blog/package.json +++ b/apps/blog/package.json @@ -5,9 +5,9 @@ "scripts": { "dev": "open-cli http://localhost:3000 && pnpm dev:headless", "dev:headless": "next dev", + "lint": "oxlint && next lint", "build": "next build", "postbuild": "next-sitemap && cp ../../packages/content/dist/rss.xml public/rss.xml", - "lint": "next lint", "test:e2e": "playwright test", "i_am_sure_i_want_to_nuke_gitignored_files": "rm -rf .next .turbo build node_modules test-results" }, @@ -33,7 +33,6 @@ "@typescript-eslint/eslint-plugin": "^6.15.0", "@typescript-eslint/parser": "^6.15.0", "autoprefixer": "^10.4.16", - "eslint": "^8.56.0", "eslint-config-next": "^14.2.3", "eslint-plugin-prettier": "^5.1.3", "highlight.js": "^11.9.0", diff --git a/apps/rank/package.json b/apps/rank/package.json index a2d70a2..24397e8 100644 --- a/apps/rank/package.json +++ b/apps/rank/package.json @@ -5,6 +5,7 @@ "scripts": { "build": "nuxt build", "dev": "nuxt dev", + "lint": "oxlint && eslint .", "generate": "nuxt generate", "preview": "nuxt preview", "postinstall": "nuxt prepare" diff --git a/apps/www/package.json b/apps/www/package.json index 794c0d1..044c3ad 100644 --- a/apps/www/package.json +++ b/apps/www/package.json @@ -6,11 +6,11 @@ "scripts": { "dev": "vite dev", "dev:headless": "vite dev --no-open", + "lint": "oxlint && eslint .", "build": "vite build", "test:unit": "TZ=UTC jest", "test:e2e": "playwright test", - "i_am_sure_i_want_to_nuke_gitignored_files": "rm -rf .turbo .svelte-kit test-results build node_modules vite.config.ts.timestamp-*", - "lint": "eslint ." + "i_am_sure_i_want_to_nuke_gitignored_files": "rm -rf .turbo .svelte-kit test-results build node_modules vite.config.ts.timestamp-*" }, "devDependencies": { "@pompydev/eslint-config": "workspace:*", @@ -28,7 +28,6 @@ "@typescript-eslint/parser": "^6.15.0", "autoprefixer": "^10.4.16", "dayjs": "^1.11.10", - "eslint": "^8.56.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-simple-import-sort": "^10.0.0", "eslint-plugin-svelte": "^2.38.0", diff --git a/package.json b/package.json index bb5a058..5487a39 100644 --- a/package.json +++ b/package.json @@ -2,17 +2,13 @@ "private": true, "scripts": { "dev": "turbo run dev --parallel --continue", + "lint": "turbo run lint", "build": "turbo run build", "test:unit": "turbo run test:unit --parallel --continue", "test:e2e": "turbo run test:e2e --parallel --continue", - "lint": "turbo run lint", "i_am_sure_i_want_to_nuke_gitignored_files": "turbo run i_am_sure_i_want_to_nuke_gitignored_files && rm -rf node_modules .turbo .devenv .direnv .devenv.flake.nix" }, "devDependencies": { - "@pompydev/eslint-config": "workspace:*", - "@pompydev/prettier-config": "workspace:*", - "eslint": "^8.56.0", - "eslint-plugin-turbo": "^1.11.2", "prettier": "3.5.3", "turbo": "^1.13.3" }, diff --git a/packages/content/package.json b/packages/content/package.json index d1a9f9d..20d359d 100644 --- a/packages/content/package.json +++ b/packages/content/package.json @@ -4,8 +4,8 @@ "type": "module", "scripts": { "dev": "nodemon -e md --watch markdown --exec pnpm build", + "lint": "oxlint && eslint .", "build": "rm -rf dist build && tsup && node build/index.js", - "lint": "eslint .", "i_am_sure_i_want_to_nuke_gitignored_files": "rm -rf .turbo build dist node_modules" }, "dependencies": { @@ -21,7 +21,6 @@ "@types/rss": "^0.0.32", "@types/tinycolor2": "^1.4.6", "elasticlunr": "^0.9.5", - "eslint": "^8.56.0", "gray-matter": "^4.0.3", "jsdom": "^24.0.0", "markdown-toc": "^1.2.0", diff --git a/packages/eslint-config/.eslintrc.cjs b/packages/eslint-config/.eslintrc.cjs index d23dbee..ba8b680 100644 --- a/packages/eslint-config/.eslintrc.cjs +++ b/packages/eslint-config/.eslintrc.cjs @@ -7,6 +7,7 @@ module.exports = { extends: [ "eslint:recommended", "plugin:@typescript-eslint/recommended", + "plugin:oxlint/recommended", "turbo", ], ignorePatterns: ["dist/", "build/"], diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index e23f961..a91f2b7 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -4,20 +4,22 @@ "type": "module", "main": ".eslintrc.cjs", "scripts": { - "lint": "eslint .eslintrc.cjs", + "lint": "oxlint && eslint .eslintrc.cjs", "i_am_sure_i_want_to_nuke_gitignored_files": "rm -rf .turbo node_modules" }, "devDependencies": { "@pompydev/prettier-config": "workspace:*", "@typescript-eslint/eslint-plugin": "^6.15.0", "@typescript-eslint/parser": "^6.15.0", - "eslint": "^8.56.0", + "eslint": "8.56.0", "eslint-config-prettier": "^9.1.0", "eslint-config-turbo": "^1.13.3", "eslint-plugin-json": "^3.1.0", + "eslint-plugin-oxlint": "0.16.0", "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-simple-import-sort": "^10.0.0", "eslint-plugin-turbo": "^1.13.3", + "oxlint": "0.16.0", "typescript": "^5.3.3" } } diff --git a/packages/playwright-config/package.json b/packages/playwright-config/package.json index fd51805..13de86b 100644 --- a/packages/playwright-config/package.json +++ b/packages/playwright-config/package.json @@ -3,6 +3,9 @@ "version": "0.0.0", "type": "module", "main": "index.ts", + "scripts": { + "lint": "oxlint && eslint ." + }, "devDependencies": { "@playwright/test": "1.50.1" } diff --git a/packages/tailwind-config/.eslintrc.js b/packages/tailwind-config/.eslintrc.js deleted file mode 100644 index 3b7476c..0000000 --- a/packages/tailwind-config/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - root: true, - extends: ["@pompydev/eslint-config"], -} diff --git a/packages/tailwind-config/package.json b/packages/tailwind-config/package.json index 842b3a5..a5a8a79 100644 --- a/packages/tailwind-config/package.json +++ b/packages/tailwind-config/package.json @@ -8,13 +8,12 @@ "tailwind.config.js" ], "scripts": { - "lint": "eslint .", + "lint": "oxlint && eslint .", "i_am_sure_i_want_to_nuke_gitignored_files": "rm -rf .turbo node_modules" }, "devDependencies": { "@pompydev/eslint-config": "workspace:*", "@pompydev/prettier-config": "workspace:*", - "eslint": "^8.56.0", "tailwindcss": "^3.4.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 72a9681..730a7f0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,18 +8,6 @@ importers: .: devDependencies: - '@pompydev/eslint-config': - specifier: workspace:* - version: link:packages/eslint-config - '@pompydev/prettier-config': - specifier: workspace:* - version: link:packages/prettier-config - eslint: - specifier: ^8.56.0 - version: 8.56.0 - eslint-plugin-turbo: - specifier: ^1.11.2 - version: 1.11.2(eslint@8.56.0) prettier: specifier: 3.5.3 version: 3.5.3 @@ -92,9 +80,6 @@ importers: autoprefixer: specifier: ^10.4.16 version: 10.4.16(postcss@8.4.32) - eslint: - specifier: ^8.56.0 - version: 8.56.0 eslint-config-next: specifier: ^14.2.3 version: 14.2.3(eslint@8.56.0)(typescript@5.3.3) @@ -228,9 +213,6 @@ importers: dayjs: specifier: ^1.11.10 version: 1.11.10 - eslint: - specifier: ^8.56.0 - version: 8.56.0 eslint-plugin-import: specifier: ^2.29.1 version: 2.29.1(@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.4.5))(eslint@8.56.0) @@ -318,9 +300,6 @@ importers: elasticlunr: specifier: ^0.9.5 version: 0.9.5 - eslint: - specifier: ^8.56.0 - version: 8.56.0 gray-matter: specifier: ^4.0.3 version: 4.0.3 @@ -416,7 +395,7 @@ importers: specifier: ^6.15.0 version: 6.15.0(eslint@8.56.0)(typescript@5.3.3) eslint: - specifier: ^8.56.0 + specifier: 8.56.0 version: 8.56.0 eslint-config-prettier: specifier: ^9.1.0 @@ -427,6 +406,9 @@ importers: eslint-plugin-json: specifier: ^3.1.0 version: 3.1.0 + eslint-plugin-oxlint: + specifier: 0.16.0 + version: 0.16.0 eslint-plugin-prettier: specifier: ^5.1.3 version: 5.1.3(eslint-config-prettier@9.1.0(eslint@8.56.0))(eslint@8.56.0)(prettier@3.5.3) @@ -436,6 +418,9 @@ importers: eslint-plugin-turbo: specifier: ^1.13.3 version: 1.13.3(eslint@8.56.0) + oxlint: + specifier: 0.16.0 + version: 0.16.0 typescript: specifier: ^5.3.3 version: 5.3.3 @@ -456,9 +441,6 @@ importers: '@pompydev/prettier-config': specifier: workspace:* version: link:../prettier-config - eslint: - specifier: ^8.56.0 - version: 8.56.0 tailwindcss: specifier: ^3.4.0 version: 3.4.0 @@ -1653,6 +1635,46 @@ packages: '@oxc-project/types@0.56.5': resolution: {integrity: sha512-skY3kOJwp22W4RkaadH1hZ3hqFHjkRrIIE0uQ4VUg+/Chvbl+2pF+B55IrIk2dgsKXS57YEUsJuN6I6s4rgFjA==} + '@oxlint/darwin-arm64@0.16.0': + resolution: {integrity: sha512-t4v+WxVuU+cQNZuDDZ+I9p6FTuSrQpTs787UspcB3j3E50lw6+aDWiLx/Snvkn5C214B8hp+z8lnwYkgWoFqiw==} + cpu: [arm64] + os: [darwin] + + '@oxlint/darwin-x64@0.16.0': + resolution: {integrity: sha512-CbV7VHpO7OpBXgBZRaNMOgVlnZ29gocjaFbrbEv/23XqeeDLQP3++O7i1Q7SEmeaELxM6NYW1u9+OcvX3uudwQ==} + cpu: [x64] + os: [darwin] + + '@oxlint/linux-arm64-gnu@0.16.0': + resolution: {integrity: sha512-wwwTsSk62vFAYYsj4Et/leb9VndZwZBf1R6Nta1yWhljkSVq1GBKJ9SeU3it833QEJuFth2A2L5xdfiGkZZIYg==} + cpu: [arm64] + os: [linux] + + '@oxlint/linux-arm64-musl@0.16.0': + resolution: {integrity: sha512-YW7g8hG/XJ+g2RgDvhjY/GUaq/p8xIldsQD9AZkFJAaBsmN3tTi1VUS2orhxBi7feXE7FhP85LqQk+WJxarUSw==} + cpu: [arm64] + os: [linux] + + '@oxlint/linux-x64-gnu@0.16.0': + resolution: {integrity: sha512-QY8W3724Fv9W5Mh42/EdV5j4qfwFnV1rouLzvWgUz/g51nROt/6rMbv65ssJo2yBUHHj5KGMfmC97VJZAF9TKA==} + cpu: [x64] + os: [linux] + + '@oxlint/linux-x64-musl@0.16.0': + resolution: {integrity: sha512-adH6bJipJL/WjaMAc8JNevTgU7IpY5nh8a8tM/DAZdUyt7e/zd+vDw+o3NCBGcCWKu3VcY+XsMZK2NMqnyzeig==} + cpu: [x64] + os: [linux] + + '@oxlint/win32-arm64@0.16.0': + resolution: {integrity: sha512-0GPNs354IHKdbvqsdjf1YGqaKbFWcT/ngly9+oAUSsDC5/Rg4sZj4glZCVDhZUFMQ1kyClAYxX+vbKbTW/cOmQ==} + cpu: [arm64] + os: [win32] + + '@oxlint/win32-x64@0.16.0': + resolution: {integrity: sha512-0Lb599lav9THJRiUYkNugueq98VliinY92yzv5u2NDiIsq5aqqHIjmpJ8L051zCEhyzcbw8KBRV3FofqnroJTA==} + cpu: [x64] + os: [win32] + '@parcel/watcher-android-arm64@2.5.1': resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} engines: {node: '>= 10.0.0'} @@ -3513,6 +3535,9 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint-plugin-oxlint@0.16.0: + resolution: {integrity: sha512-Vo4vIErzTnCGMGQtJBLxTYZVVa/yIKfkeTeooIcganaTkEpmd+syimNjjMp7C4prpbLrfRjmVtbCXDqzvfPpRg==} + eslint-plugin-prettier@5.1.3: resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} engines: {node: ^14.18.0 || >=16.0.0} @@ -3554,11 +3579,6 @@ packages: svelte: optional: true - eslint-plugin-turbo@1.11.2: - resolution: {integrity: sha512-U6DX+WvgGFiwEAqtOjm4Ejd9O4jsw8jlFNkQi0ywxbMnbiTie+exF4Z0F/B1ajtjjeZkBkgRnlU+UkoraBN+bw==} - peerDependencies: - eslint: '>6.6.0' - eslint-plugin-turbo@1.13.3: resolution: {integrity: sha512-RjmlnqYsEqnJ+U3M3IS5jLJDjWv5NsvReCpsC61n5pJ4JMHTZ/lU0EIoL1ccuL1L5wP0APzdXdByBxERcPQ+Nw==} peerDependencies: @@ -4672,6 +4692,9 @@ packages: jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} @@ -5427,6 +5450,11 @@ packages: resolution: {integrity: sha512-MNT32sqiTFeSbQZP2WZIRQ/mlIpNNq4sua+/4hBG4qT5aef2iQe+1/BjezZURPlvucZeSfN1Y6b60l7OgBdyUA==} engines: {node: '>=14.0.0'} + oxlint@0.16.0: + resolution: {integrity: sha512-Kx3ehMy+F0sIvg8PPKB967SB7cjjj98vxVOpQaAfKFIYrQFkM10usb3aQKqk1HXYivMvs6axdZM1sLq2fvjbKw==} + engines: {node: '>=8.*'} + hasBin: true + p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -5988,10 +6016,6 @@ packages: pstree.remy@1.1.8: resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} - punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} - engines: {node: '>=6'} - punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -8270,7 +8294,7 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.4.0(supports-color@9.4.0) espree: 9.6.1 globals: 13.20.0 ignore: 5.2.4 @@ -8310,7 +8334,7 @@ snapshots: '@humanwhocodes/config-array@0.11.13': dependencies: '@humanwhocodes/object-schema': 2.0.1 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.4.0(supports-color@9.4.0) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -8983,6 +9007,30 @@ snapshots: '@oxc-project/types@0.56.5': {} + '@oxlint/darwin-arm64@0.16.0': + optional: true + + '@oxlint/darwin-x64@0.16.0': + optional: true + + '@oxlint/linux-arm64-gnu@0.16.0': + optional: true + + '@oxlint/linux-arm64-musl@0.16.0': + optional: true + + '@oxlint/linux-x64-gnu@0.16.0': + optional: true + + '@oxlint/linux-x64-musl@0.16.0': + optional: true + + '@oxlint/win32-arm64@0.16.0': + optional: true + + '@oxlint/win32-x64@0.16.0': + optional: true + '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -11117,6 +11165,10 @@ snapshots: object.fromentries: 2.0.7 semver: 6.3.1 + eslint-plugin-oxlint@0.16.0: + dependencies: + jsonc-parser: 3.3.1 + eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@8.56.0))(eslint@8.56.0)(prettier@3.5.3): dependencies: eslint: 8.56.0 @@ -11177,11 +11229,6 @@ snapshots: - supports-color - ts-node - eslint-plugin-turbo@1.11.2(eslint@8.56.0): - dependencies: - dotenv: 16.0.3 - eslint: 8.56.0 - eslint-plugin-turbo@1.13.3(eslint@8.56.0): dependencies: dotenv: 16.0.3 @@ -11207,7 +11254,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.4.0(supports-color@9.4.0) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -12634,6 +12681,8 @@ snapshots: jsonc-parser@3.2.0: {} + jsonc-parser@3.3.1: {} + jsonfile@6.1.0: dependencies: universalify: 2.0.1 @@ -13863,6 +13912,17 @@ snapshots: '@oxc-parser/binding-win32-arm64-msvc': 0.56.5 '@oxc-parser/binding-win32-x64-msvc': 0.56.5 + oxlint@0.16.0: + optionalDependencies: + '@oxlint/darwin-arm64': 0.16.0 + '@oxlint/darwin-x64': 0.16.0 + '@oxlint/linux-arm64-gnu': 0.16.0 + '@oxlint/linux-arm64-musl': 0.16.0 + '@oxlint/linux-x64-gnu': 0.16.0 + '@oxlint/linux-x64-musl': 0.16.0 + '@oxlint/win32-arm64': 0.16.0 + '@oxlint/win32-x64': 0.16.0 + p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -14361,8 +14421,6 @@ snapshots: pstree.remy@1.1.8: {} - punycode@2.3.0: {} - punycode@2.3.1: {} pure-rand@6.0.2: {} @@ -15817,7 +15875,7 @@ snapshots: uri-js@4.4.1: dependencies: - punycode: 2.3.0 + punycode: 2.3.1 url-parse@1.5.10: dependencies: