feat: add node wrapper script and update Makefile for frontend tooling
This commit is contained in:
41
Makefile
41
Makefile
@@ -6,6 +6,8 @@ SHELL := /usr/bin/env bash
|
||||
BACKEND_DIR := backend
|
||||
FRONTEND_DIR := frontend
|
||||
|
||||
NODE_WRAP := bash scripts/with_node.sh
|
||||
|
||||
.PHONY: help
|
||||
help: ## Show available targets
|
||||
@grep -E '^[a-zA-Z0-9_.-]+:.*?## ' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*## "}; {printf " %-26s %s\n", $$1, $$2}'
|
||||
@@ -13,13 +15,20 @@ help: ## Show available targets
|
||||
.PHONY: setup
|
||||
setup: backend-sync frontend-sync ## Install/sync backend + frontend deps
|
||||
|
||||
.PHONY: all
|
||||
all: setup format check ## Run everything (deps + format + CI-equivalent checks)
|
||||
|
||||
.PHONY: backend-sync
|
||||
backend-sync: ## uv sync backend deps (includes dev extra)
|
||||
cd $(BACKEND_DIR) && uv sync --extra dev
|
||||
|
||||
.PHONY: frontend-tooling
|
||||
frontend-tooling: ## Verify frontend toolchain (node + npm)
|
||||
@$(NODE_WRAP) --check
|
||||
|
||||
.PHONY: frontend-sync
|
||||
frontend-sync: ## npm install frontend deps
|
||||
cd $(FRONTEND_DIR) && npm install
|
||||
frontend-sync: frontend-tooling ## npm install frontend deps
|
||||
$(NODE_WRAP) --cwd $(FRONTEND_DIR) npm install
|
||||
|
||||
.PHONY: format
|
||||
format: backend-format frontend-format ## Format backend + frontend
|
||||
@@ -30,8 +39,8 @@ backend-format: ## Format backend (isort + black)
|
||||
cd $(BACKEND_DIR) && uv run black .
|
||||
|
||||
.PHONY: frontend-format
|
||||
frontend-format: ## Format frontend (prettier)
|
||||
cd $(FRONTEND_DIR) && npx prettier --write "src/**/*.{ts,tsx,js,jsx,json,css,md}" "*.{ts,js,json,md,mdx}"
|
||||
frontend-format: frontend-tooling ## Format frontend (prettier)
|
||||
$(NODE_WRAP) --cwd $(FRONTEND_DIR) npx prettier --write "src/**/*.{ts,tsx,js,jsx,json,css,md}" "*.{ts,js,json,md,mdx}"
|
||||
|
||||
.PHONY: format-check
|
||||
format-check: backend-format-check frontend-format-check ## Check formatting (no changes)
|
||||
@@ -42,8 +51,8 @@ backend-format-check: ## Check backend formatting (isort + black)
|
||||
cd $(BACKEND_DIR) && uv run black . --check --diff
|
||||
|
||||
.PHONY: frontend-format-check
|
||||
frontend-format-check: ## Check frontend formatting (prettier)
|
||||
cd $(FRONTEND_DIR) && npx prettier --check "src/**/*.{ts,tsx,js,jsx,json,css,md}" "*.{ts,js,json,md,mdx}"
|
||||
frontend-format-check: frontend-tooling ## Check frontend formatting (prettier)
|
||||
$(NODE_WRAP) --cwd $(FRONTEND_DIR) npx prettier --check "src/**/*.{ts,tsx,js,jsx,json,css,md}" "*.{ts,js,json,md,mdx}"
|
||||
|
||||
.PHONY: lint
|
||||
lint: backend-lint frontend-lint ## Lint backend + frontend
|
||||
@@ -53,8 +62,8 @@ backend-lint: ## Lint backend (flake8)
|
||||
cd $(BACKEND_DIR) && uv run flake8 --config .flake8
|
||||
|
||||
.PHONY: frontend-lint
|
||||
frontend-lint: ## Lint frontend (eslint)
|
||||
cd $(FRONTEND_DIR) && npm run lint
|
||||
frontend-lint: frontend-tooling ## Lint frontend (eslint)
|
||||
$(NODE_WRAP) --cwd $(FRONTEND_DIR) npm run lint
|
||||
|
||||
.PHONY: typecheck
|
||||
typecheck: backend-typecheck frontend-typecheck ## Typecheck backend + frontend
|
||||
@@ -64,8 +73,8 @@ backend-typecheck: ## Typecheck backend (mypy --strict)
|
||||
cd $(BACKEND_DIR) && uv run mypy
|
||||
|
||||
.PHONY: frontend-typecheck
|
||||
frontend-typecheck: ## Typecheck frontend (tsc)
|
||||
cd $(FRONTEND_DIR) && npx tsc -p tsconfig.json --noEmit
|
||||
frontend-typecheck: frontend-tooling ## Typecheck frontend (tsc)
|
||||
$(NODE_WRAP) --cwd $(FRONTEND_DIR) npx tsc -p tsconfig.json --noEmit
|
||||
|
||||
.PHONY: test
|
||||
test: backend-test frontend-test ## Run tests
|
||||
@@ -88,8 +97,8 @@ backend-coverage: ## Backend tests with coverage gate (scoped 100% stmt+branch o
|
||||
--cov-fail-under=100
|
||||
|
||||
.PHONY: frontend-test
|
||||
frontend-test: ## Frontend tests (vitest)
|
||||
cd $(FRONTEND_DIR) && npm run test
|
||||
frontend-test: frontend-tooling ## Frontend tests (vitest)
|
||||
$(NODE_WRAP) --cwd $(FRONTEND_DIR) npm run test
|
||||
|
||||
.PHONY: backend-migrate
|
||||
backend-migrate: ## Apply backend DB migrations (alembic upgrade head)
|
||||
@@ -99,12 +108,12 @@ backend-migrate: ## Apply backend DB migrations (alembic upgrade head)
|
||||
build: frontend-build ## Build artifacts
|
||||
|
||||
.PHONY: frontend-build
|
||||
frontend-build: ## Build frontend (next build)
|
||||
cd $(FRONTEND_DIR) && npm run build
|
||||
frontend-build: frontend-tooling ## Build frontend (next build)
|
||||
$(NODE_WRAP) --cwd $(FRONTEND_DIR) npm run build
|
||||
|
||||
.PHONY: api-gen
|
||||
api-gen: ## Regenerate TS API client (requires backend running at 127.0.0.1:8000)
|
||||
cd $(FRONTEND_DIR) && npm run api:gen
|
||||
api-gen: frontend-tooling ## Regenerate TS API client (requires backend running at 127.0.0.1:8000)
|
||||
$(NODE_WRAP) --cwd $(FRONTEND_DIR) npm run api:gen
|
||||
|
||||
.PHONY: backend-templates-sync
|
||||
backend-templates-sync: ## Sync templates to existing gateway agents (usage: make backend-templates-sync GATEWAY_ID=<uuid> SYNC_ARGS="--reset-sessions")
|
||||
|
||||
Reference in New Issue
Block a user