name: lint & test

on:
    push:
        branches: [main]
    pull_request:

jobs:
    checks:
        runs-on: ubuntu-latest
        timeout-minutes: 10
        steps:
            - name: Checkout
              uses: actions/checkout@v7

            - name: Setup Node.js
              uses: actions/setup-node@v6
              with:
                  node-version: '24.x'
                  cache: 'npm'

            - name: Install dependencies
              run: npm ci

            - name: Run lint
              run: npm run lint --silent

            - name: Run formatter check
              run: npm run format:check

            - name: Run typecheck
              run: npm run typecheck

            - name: Run tests
              run: npm test
