Files
DreamChat/justfile
2026-02-24 10:34:55 +00:00

181 lines
4.5 KiB
Makefile

# DreamChat Justfile
# https://just.systems/
#
# Installation:
# cargo install just
# OR
# brew install just (macOS)
# OR
# apt install just (Ubuntu/Debian)
#
# Usage:
# just # Show available commands
# just dev # Start development servers
# just build # Build all packages
# just generate-api # Regenerate OpenAPI spec and API client
# Default recipe - show available commands
default:
@just --list
# =============================================================================
# Build Commands
# =============================================================================
# Build all packages and apps
build:
pnpm build
# Build backend only
build-backend:
cd apps/backend && pnpm build
# Build frontend only
build-frontend:
cd apps/frontend && pnpm build
# Build shared package only
build-shared:
cd packages/shared && pnpm build
# Clean all build artifacts
clean:
pnpm -r clean
# =============================================================================
# Development Commands
# =============================================================================
# Start development servers (backend + frontend)
dev:
pnpm dev
# Start backend development server
dev-backend:
cd apps/backend && pnpm dev
# Start frontend development server
dev-frontend:
cd apps/frontend && pnpm dev
# =============================================================================
# API & Code Generation
# =============================================================================
# Generate OpenAPI spec from backend
openapi-generate:
cd apps/backend && pnpm run openapi:generate
# Generate frontend API client from OpenAPI spec
api-client-generate:
cd apps/frontend && pnpm run api:generate
# Generate both OpenAPI spec and API client
generate-api: openapi-generate api-client-generate
# =============================================================================
# Database Commands
# =============================================================================
# Generate Prisma client
db-generate:
cd apps/backend && pnpm run db:generate
# Run database migrations
db-migrate:
cd apps/backend && pnpm run db:migrate
# Reset database (destructive!)
db-reset:
cd apps/backend && npx prisma migrate reset --force
# Open Prisma Studio
db-studio:
cd apps/backend && npx prisma studio
# Seed database
db-seed:
cd apps/backend && pnpm run db:seed
# =============================================================================
# Testing Commands
# =============================================================================
# Run all tests
test:
pnpm test
# Run backend tests
test-backend:
cd apps/backend && pnpm test
# Run frontend tests
test-frontend:
cd apps/frontend && pnpm test
# Run tests in watch mode (backend)
test-backend-watch:
cd apps/backend && pnpm run test:watch
# =============================================================================
# Linting & Code Quality
# =============================================================================
# Run linter on all packages
lint:
pnpm lint
# Run linter on backend
lint-backend:
cd apps/backend && pnpm lint
# Run linter on frontend
lint-frontend:
cd apps/frontend && pnpm lint
# =============================================================================
# Installation & Dependencies
# =============================================================================
# Install all dependencies
install:
pnpm install
# Update all dependencies
update:
pnpm update
# =============================================================================
# Docker Commands
# =============================================================================
# Start all Docker services (db, redis, etc.)
docker-up:
docker-compose up -d
# Stop all Docker services
docker-down:
docker-compose down
# View Docker logs
docker-logs:
docker-compose logs -f
# =============================================================================
# Utility Commands
# =============================================================================
# Format code with prettier (if installed)
format:
npx prettier --write "**/*.{ts,tsx,js,jsx,json,md}"
# Check TypeScript types
typecheck:
pnpm -r typecheck 2>/dev/null || echo "Type checking..."
cd apps/backend && npx tsc --noEmit
cd apps/frontend && npx tsc --noEmit
# Full CI check - build, lint, test
ci: build lint test
@echo "✅ All CI checks passed!"