diff --git a/composer.json b/composer.json index 6ca69756..f8cf2b2d 100644 --- a/composer.json +++ b/composer.json @@ -58,12 +58,19 @@ "lint": [ "pint --parallel" ], - "test:lint": [ + "lint:check": [ "pint --parallel --test" ], + "ci:check": [ + "Composer\\Config::disableProcessTimeout", + "npm run lint:check", + "npm run format:check", + "npm run types:check", + "@test" + ], "test": [ "@php artisan config:clear --ansi", - "@test:lint", + "@lint:check", "@php artisan test" ], "post-autoload-dump": [ diff --git a/eslint.config.js b/eslint.config.js index 50bd03ad..bb7730cf 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -53,7 +53,9 @@ export default defineConfigWithVueTs( 'bootstrap/ssr', 'tailwind.config.js', 'vite.config.ts', + 'resources/js/actions/**', 'resources/js/components/ui/*', + 'resources/js/routes/**', ], }, prettier, // Turn off all rules that might conflict with Prettier diff --git a/package.json b/package.json index d063af99..b8ad5dfc 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,9 @@ "dev": "vite", "format": "prettier --write resources/", "format:check": "prettier --check resources/", - "lint": "eslint . --fix" + "lint": "eslint . --fix", + "lint:check": "eslint .", + "types:check": "vue-tsc --noEmit" }, "devDependencies": { "@eslint/js": "^9.19.0", diff --git a/resources/js/components/AppHeader.vue b/resources/js/components/AppHeader.vue index 507994b7..f1bb49e5 100644 --- a/resources/js/components/AppHeader.vue +++ b/resources/js/components/AppHeader.vue @@ -35,8 +35,8 @@ import UserMenuContent from '@/components/UserMenuContent.vue'; import { useCurrentUrl } from '@/composables/useCurrentUrl'; import { getInitials } from '@/composables/useInitials'; import { toUrl } from '@/lib/utils'; -import type { BreadcrumbItem, NavItem } from '@/types'; import { dashboard } from '@/routes'; +import type { BreadcrumbItem, NavItem } from '@/types'; type Props = { breadcrumbs?: BreadcrumbItem[]; diff --git a/resources/js/components/AppSidebar.vue b/resources/js/components/AppSidebar.vue index 964c385c..e1873b30 100644 --- a/resources/js/components/AppSidebar.vue +++ b/resources/js/components/AppSidebar.vue @@ -14,8 +14,8 @@ import { SidebarMenuButton, SidebarMenuItem, } from '@/components/ui/sidebar'; -import type { NavItem } from '@/types'; import { dashboard } from '@/routes'; +import type { NavItem } from '@/types'; const mainNavItems: NavItem[] = [ { diff --git a/resources/js/components/DeleteUser.vue b/resources/js/components/DeleteUser.vue index 442721ba..8f87434d 100644 --- a/resources/js/components/DeleteUser.vue +++ b/resources/js/components/DeleteUser.vue @@ -1,6 +1,7 @@ diff --git a/resources/js/components/TwoFactorSetupModal.vue b/resources/js/components/TwoFactorSetupModal.vue index 853f5c6d..6e6d96a1 100644 --- a/resources/js/components/TwoFactorSetupModal.vue +++ b/resources/js/components/TwoFactorSetupModal.vue @@ -21,8 +21,8 @@ import { import { Spinner } from '@/components/ui/spinner'; import { useAppearance } from '@/composables/useAppearance'; import { useTwoFactorAuth } from '@/composables/useTwoFactorAuth'; -import type { TwoFactorConfigContent } from '@/types'; import { confirm } from '@/routes/two-factor'; +import type { TwoFactorConfigContent } from '@/types'; type Props = { requiresConfirmation: boolean; @@ -238,6 +238,7 @@ watch(