mirror of
https://github.com/fastapi/full-stack-fastapi-template.git
synced 2026-11-03 20:36:27 +00:00
⬆ Bump the npm-packages group across 1 directory with 30 updates (#2525)
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Yurii Motov <yurii.motov.monte@gmail.com> Co-authored-by: pr-push[bot] <pr-push[bot]@users.noreply.github.com>
This commit is contained in:
+19
-19
@@ -27,17 +27,17 @@ Check `frontend/package.json` to see the other available commands.
|
||||
|
||||
If you are developing an API-only app and want to remove the frontend, you can do it easily:
|
||||
|
||||
* Remove the `./frontend` directory.
|
||||
- Remove the `./frontend` directory.
|
||||
|
||||
* In the `backend/app/main.py` file, remove the `app.frontend()` call.
|
||||
- In the `backend/app/main.py` file, remove the `app.frontend()` call.
|
||||
|
||||
* In the `backend/Dockerfile` file, remove the frontend build stage and the `COPY --from=frontend-build` instruction.
|
||||
- In the `backend/Dockerfile` file, remove the frontend build stage and the `COPY --from=frontend-build` instruction.
|
||||
|
||||
* In the `compose.override.yml` file, remove the `playwright` service.
|
||||
- In the `compose.override.yml` file, remove the `playwright` service.
|
||||
|
||||
* In the `.github/workflows/deploy.yml` file, remove the **Set up Bun**, **Install frontend dependencies**, and **Build frontend** steps.
|
||||
- In the `.github/workflows/deploy.yml` file, remove the **Set up Bun**, **Install frontend dependencies**, and **Build frontend** steps.
|
||||
|
||||
* In the `.fastapicloudignore` file, remove the `!backend/app/frontend/` entry.
|
||||
- In the `.fastapicloudignore` file, remove the `!backend/app/frontend/` entry.
|
||||
|
||||
Done, you now have an API-only app. 🤓
|
||||
|
||||
@@ -45,27 +45,27 @@ Done, you now have an API-only app. 🤓
|
||||
|
||||
### Automatically
|
||||
|
||||
* From the project root, run the script:
|
||||
- From the project root, run the script:
|
||||
|
||||
```bash
|
||||
bash ./scripts/generate-client.sh
|
||||
```
|
||||
|
||||
* Commit the changes.
|
||||
- Commit the changes.
|
||||
|
||||
### Manually
|
||||
|
||||
* Make sure the backend is running.
|
||||
- Make sure the backend is running.
|
||||
|
||||
* Download the OpenAPI JSON file from `http://localhost:8000/api/v1/openapi.json` and copy it to a new file `openapi.json` at the root of the `frontend` directory.
|
||||
- Download the OpenAPI JSON file from `http://localhost:8000/api/v1/openapi.json` and copy it to a new file `openapi.json` at the root of the `frontend` directory.
|
||||
|
||||
* To generate the frontend client, run:
|
||||
- To generate the frontend client, run:
|
||||
|
||||
```bash
|
||||
bun run generate-client
|
||||
```
|
||||
|
||||
* Commit the changes.
|
||||
- Commit the changes.
|
||||
|
||||
Regenerate the client whenever backend changes affect the OpenAPI schema.
|
||||
|
||||
@@ -83,13 +83,13 @@ Then, when you run the frontend, it will use that URL as the base URL for the AP
|
||||
|
||||
The frontend code is structured as follows:
|
||||
|
||||
* `frontend/src` - The main frontend code.
|
||||
* `frontend/public` - Static assets.
|
||||
* `frontend/src/client` - The generated OpenAPI client.
|
||||
* `frontend/src/components` - The components of the frontend, including the shadcn/ui components in `frontend/src/components/ui`.
|
||||
* `frontend/src/hooks` - Custom hooks.
|
||||
* `frontend/src/lib` - Shared frontend utilities.
|
||||
* `frontend/src/routes` - The frontend routes and pages.
|
||||
- `frontend/src` - The main frontend code.
|
||||
- `frontend/public` - Static assets.
|
||||
- `frontend/src/client` - The generated OpenAPI client.
|
||||
- `frontend/src/components` - The components of the frontend, including the shadcn/ui components in `frontend/src/components/ui`.
|
||||
- `frontend/src/hooks` - Custom hooks.
|
||||
- `frontend/src/lib` - Shared frontend utilities.
|
||||
- `frontend/src/routes` - The frontend routes and pages.
|
||||
|
||||
## End-to-End Testing with Playwright
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"$schema": "https://biomejs.dev/schemas/2.5.14/schema.json",
|
||||
"$schema": "https://biomejs.dev/schemas/2.6.3/schema.json",
|
||||
"assist": { "actions": { "source": { "organizeImports": "on" } } },
|
||||
"files": {
|
||||
"includes": [
|
||||
|
||||
+26
-26
@@ -13,53 +13,53 @@
|
||||
"test:ui": "bunx playwright test --ui"
|
||||
},
|
||||
"dependencies": {
|
||||
"@hookform/resolvers": "^5.9.1",
|
||||
"@radix-ui/react-avatar": "^1.2.6",
|
||||
"@radix-ui/react-checkbox": "^1.3.11",
|
||||
"@radix-ui/react-dialog": "^1.1.23",
|
||||
"@radix-ui/react-dropdown-menu": "^2.1.24",
|
||||
"@radix-ui/react-label": "^2.1.15",
|
||||
"@radix-ui/react-radio-group": "^1.4.7",
|
||||
"@radix-ui/react-scroll-area": "^1.2.18",
|
||||
"@radix-ui/react-select": "^2.3.7",
|
||||
"@radix-ui/react-separator": "^1.1.15",
|
||||
"@hookform/resolvers": "^6.0.1",
|
||||
"@radix-ui/react-avatar": "^1.3.1",
|
||||
"@radix-ui/react-checkbox": "^1.4.1",
|
||||
"@radix-ui/react-dialog": "^1.3.1",
|
||||
"@radix-ui/react-dropdown-menu": "^2.2.1",
|
||||
"@radix-ui/react-label": "^2.1.17",
|
||||
"@radix-ui/react-radio-group": "^1.5.1",
|
||||
"@radix-ui/react-scroll-area": "^1.4.0",
|
||||
"@radix-ui/react-select": "^2.4.1",
|
||||
"@radix-ui/react-separator": "^1.2.0",
|
||||
"@radix-ui/react-slot": "^1.2.4",
|
||||
"@radix-ui/react-tabs": "^1.1.21",
|
||||
"@radix-ui/react-tooltip": "^1.2.16",
|
||||
"@radix-ui/react-tabs": "^1.2.1",
|
||||
"@radix-ui/react-tooltip": "^1.4.1",
|
||||
"@tailwindcss/vite": "^4.3.3",
|
||||
"@tanstack/react-query": "^5.104.0",
|
||||
"@tanstack/react-query-devtools": "^5.104.0",
|
||||
"@tanstack/react-router": "^1.170.39",
|
||||
"@tanstack/react-query": "^5.105.0",
|
||||
"@tanstack/react-query-devtools": "^5.105.0",
|
||||
"@tanstack/react-router": "^1.170.46",
|
||||
"@tanstack/react-router-devtools": "^1.167.2",
|
||||
"@tanstack/react-table": "^9.2.4",
|
||||
"@tanstack/react-table": "^9.3.1",
|
||||
"axios": "1.20.0",
|
||||
"class-variance-authority": "^0.7.1",
|
||||
"clsx": "^2.1.1",
|
||||
"form-data": "4.0.6",
|
||||
"lucide-react": "^1.48.0",
|
||||
"react": "^19.3.0",
|
||||
"react-dom": "^19.3.0",
|
||||
"lucide-react": "^1.62.0",
|
||||
"react": "^19.3.1",
|
||||
"react-dom": "^19.3.1",
|
||||
"react-error-boundary": "^6.1.6",
|
||||
"react-hook-form": "^7.89.0",
|
||||
"react-hook-form": "^7.91.0",
|
||||
"react-icons": "^5.7.0",
|
||||
"sonner": "^2.0.8",
|
||||
"tailwind-merge": "^3.7.0",
|
||||
"tailwindcss": "^4.2.1",
|
||||
"zod": "^4.6.5"
|
||||
"zod": "^4.6.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "^2.5.14",
|
||||
"@biomejs/biome": "^2.6.3",
|
||||
"@hey-api/openapi-ts": "0.97.3",
|
||||
"@playwright/test": "1.64.1",
|
||||
"@tanstack/router-devtools": "^1.167.2",
|
||||
"@tanstack/router-plugin": "^1.168.40",
|
||||
"@types/node": "^26.6.3",
|
||||
"@tanstack/router-plugin": "^1.168.48",
|
||||
"@types/node": "^26.6.5",
|
||||
"@types/react": "^19.3.0",
|
||||
"@types/react-dom": "^19.3.0",
|
||||
"@vitejs/plugin-react-swc": "^4.3.3",
|
||||
"dotenv": "^18.0.4",
|
||||
"dotenv": "^18.0.9",
|
||||
"tw-animate-css": "^1.4.0",
|
||||
"typescript": "^6.0.3",
|
||||
"vite": "^8.3.1"
|
||||
"vite": "^8.3.5"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user