# https://lefthook.dev/configuration/ # # Keep commits fast by checking lint and formatting only. Pushes are the local # quality gate: they rerun those checks, verify dead code and types, and run the # unit and integration suites. Coverage remains a CI concern. # # Workspace checks remain repository-wide because dead-code and dependency # boundaries are cross-file properties. ESI lint and formatting remain # package-wide but only run when non-generated ESI files changed. # # `typecheck` runs on push only. It is the slowest check (~20s for vue-tsc across # the Nuxt app) and it is the one that catches `.vue` and type-level regressions # that lint, knip, and Vitest all miss, so it guards the shared branch without # taxing every local commit. glob_matcher: doublestar pre-commit: piped: true jobs: - name: format:workspace run: pnpm format:check:workspace - name: format:esi-client exclude: - 'packages/esi-client/docs/generated/**' - 'packages/esi-client/examples/generated/**' - 'packages/esi-client/openapi/generated/**' - 'packages/esi-client/src/generated/**' - 'packages/esi-client/tests/generated/**' glob: 'packages/esi-client/**' run: pnpm --filter @evespace/esi-client format:check - name: lint:workspace run: pnpm lint:workspace - name: lint:esi-client exclude: - 'packages/esi-client/docs/generated/**' - 'packages/esi-client/examples/generated/**' - 'packages/esi-client/openapi/generated/**' - 'packages/esi-client/src/generated/**' - 'packages/esi-client/tests/generated/**' glob: 'packages/esi-client/**' run: pnpm --filter @evespace/esi-client lint pre-push: piped: true jobs: - name: knip run: pnpm knip - name: format:workspace run: pnpm format:check:workspace - name: format:esi-client exclude: - 'packages/esi-client/docs/generated/**' - 'packages/esi-client/examples/generated/**' - 'packages/esi-client/openapi/generated/**' - 'packages/esi-client/src/generated/**' - 'packages/esi-client/tests/generated/**' glob: 'packages/esi-client/**' run: pnpm --filter @evespace/esi-client format:check - name: lint:workspace run: pnpm lint:workspace - name: lint:esi-client exclude: - 'packages/esi-client/docs/generated/**' - 'packages/esi-client/examples/generated/**' - 'packages/esi-client/openapi/generated/**' - 'packages/esi-client/src/generated/**' - 'packages/esi-client/tests/generated/**' glob: 'packages/esi-client/**' run: pnpm --filter @evespace/esi-client lint - name: test:frontend run: pnpm test:frontend - name: test:registry run: pnpm test:registry - name: test:modules run: pnpm test:modules - name: test:api run: pnpm test:api - name: typecheck run: pnpm typecheck - name: test:redis run: pnpm test:redis:no-coverage - name: test:postgres run: pnpm test:postgres