forked from imbytecat/fullstack-starter
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 036afb8d20 | |||
| 688252fd49 | |||
| 42c2fff7cd | |||
| 034f570794 | |||
| ea5935e29b | |||
| 3663f3d010 | |||
| 9d1beab2e1 | |||
| 88326c4992 | |||
| 4e2bc5b8dc | |||
| 9da3df6ad7 |
Vendored
+1
@@ -43,6 +43,7 @@
|
|||||||
"files.watcherExclude": {
|
"files.watcherExclude": {
|
||||||
"**/routeTree.gen.ts": true
|
"**/routeTree.gen.ts": true
|
||||||
},
|
},
|
||||||
|
"js/ts.tsdk.path": "node_modules/typescript/lib",
|
||||||
"search.exclude": {
|
"search.exclude": {
|
||||||
"**/routeTree.gen.ts": true
|
"**/routeTree.gen.ts": true
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -113,7 +113,6 @@ import type { ReactNode } from 'react'
|
|||||||
- Components: arrow functions (enforced by Biome)
|
- Components: arrow functions (enforced by Biome)
|
||||||
- Routes: TanStack Router file conventions (`export const Route = createFileRoute(...)`)
|
- Routes: TanStack Router file conventions (`export const Route = createFileRoute(...)`)
|
||||||
- Data fetching: `useSuspenseQuery(orpc.feature.list.queryOptions())`
|
- Data fetching: `useSuspenseQuery(orpc.feature.list.queryOptions())`
|
||||||
- Let React Compiler handle memoization (no manual `useMemo`/`useCallback`)
|
|
||||||
|
|
||||||
### Error Handling
|
### Error Handling
|
||||||
- Use `try-catch` for async operations; throw descriptive errors
|
- Use `try-catch` for async operations; throw descriptive errors
|
||||||
|
|||||||
@@ -226,7 +226,6 @@ import type { ReactNode } from 'react'
|
|||||||
### React
|
### React
|
||||||
- Use arrow functions for components (Biome enforced)
|
- Use arrow functions for components (Biome enforced)
|
||||||
- Use `useSuspenseQuery` for guaranteed data
|
- Use `useSuspenseQuery` for guaranteed data
|
||||||
- Let React Compiler handle memoization (no manual `useMemo`/`useCallback`)
|
|
||||||
|
|
||||||
## Environment Variables
|
## Environment Variables
|
||||||
|
|
||||||
|
|||||||
@@ -50,11 +50,9 @@
|
|||||||
"@tanstack/react-router-devtools": "catalog:",
|
"@tanstack/react-router-devtools": "catalog:",
|
||||||
"@types/bun": "catalog:",
|
"@types/bun": "catalog:",
|
||||||
"@vitejs/plugin-react": "catalog:",
|
"@vitejs/plugin-react": "catalog:",
|
||||||
"babel-plugin-react-compiler": "catalog:",
|
|
||||||
"drizzle-kit": "catalog:",
|
"drizzle-kit": "catalog:",
|
||||||
"nitro": "catalog:",
|
"nitro": "catalog:",
|
||||||
"tailwindcss": "catalog:",
|
"tailwindcss": "catalog:",
|
||||||
"vite": "catalog:",
|
"vite": "catalog:"
|
||||||
"vite-tsconfig-paths": "catalog:"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
{
|
{
|
||||||
"extends": "@furtherverse/tsconfig/react.json",
|
"extends": "@furtherverse/tsconfig/react.json",
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"baseUrl": ".",
|
|
||||||
"paths": {
|
"paths": {
|
||||||
"@/*": ["./src/*"]
|
"@/*": ["./src/*"]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,25 +4,22 @@ import { tanstackStart } from '@tanstack/react-start/plugin/vite'
|
|||||||
import react from '@vitejs/plugin-react'
|
import react from '@vitejs/plugin-react'
|
||||||
import { nitro } from 'nitro/vite'
|
import { nitro } from 'nitro/vite'
|
||||||
import { defineConfig } from 'vite'
|
import { defineConfig } from 'vite'
|
||||||
import tsconfigPaths from 'vite-tsconfig-paths'
|
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
clearScreen: false,
|
clearScreen: false,
|
||||||
plugins: [
|
plugins: [
|
||||||
tanstackDevtools(),
|
tanstackDevtools(),
|
||||||
tailwindcss(),
|
tailwindcss(),
|
||||||
tsconfigPaths(),
|
|
||||||
tanstackStart(),
|
tanstackStart(),
|
||||||
react({
|
react(),
|
||||||
babel: {
|
|
||||||
plugins: ['babel-plugin-react-compiler'],
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
nitro({
|
nitro({
|
||||||
preset: 'bun',
|
preset: 'bun',
|
||||||
serveStatic: 'inline',
|
serveStatic: 'inline',
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
|
resolve: {
|
||||||
|
tsconfigPaths: true,
|
||||||
|
},
|
||||||
server: {
|
server: {
|
||||||
port: 3000,
|
port: 3000,
|
||||||
strictPort: true,
|
strictPort: true,
|
||||||
|
|||||||
+26
-28
@@ -22,46 +22,44 @@
|
|||||||
"typecheck": "turbo run typecheck"
|
"typecheck": "turbo run typecheck"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@biomejs/biome": "^2.4.5",
|
"@biomejs/biome": "^2.4.9",
|
||||||
"turbo": "^2.8.13",
|
"turbo": "^2.8.20",
|
||||||
"typescript": "^5.9.3"
|
"typescript": "^6.0.2"
|
||||||
},
|
},
|
||||||
"catalog": {
|
"catalog": {
|
||||||
"@orpc/client": "^1.13.6",
|
"@orpc/client": "^1.13.11",
|
||||||
"@orpc/contract": "^1.13.6",
|
"@orpc/contract": "^1.13.11",
|
||||||
"@orpc/openapi": "^1.13.6",
|
"@orpc/openapi": "^1.13.11",
|
||||||
"@orpc/server": "^1.13.6",
|
"@orpc/server": "^1.13.11",
|
||||||
"@orpc/tanstack-query": "^1.13.6",
|
"@orpc/tanstack-query": "^1.13.11",
|
||||||
"@orpc/zod": "^1.13.6",
|
"@orpc/zod": "^1.13.11",
|
||||||
"@t3-oss/env-core": "^0.13.10",
|
"@t3-oss/env-core": "^0.13.11",
|
||||||
"@tailwindcss/vite": "^4.2.1",
|
"@tailwindcss/vite": "^4.2.2",
|
||||||
"@tanstack/devtools-vite": "^0.5.3",
|
"@tanstack/devtools-vite": "^0.6.0",
|
||||||
"@tanstack/react-devtools": "^0.9.9",
|
"@tanstack/react-devtools": "^0.10.0",
|
||||||
"@tanstack/react-query": "^5.90.21",
|
"@tanstack/react-query": "^5.95.2",
|
||||||
"@tanstack/react-query-devtools": "^5.91.3",
|
"@tanstack/react-query-devtools": "^5.95.2",
|
||||||
"@tanstack/react-router": "^1.166.2",
|
"@tanstack/react-router": "^1.168.3",
|
||||||
"@tanstack/react-router-devtools": "^1.166.2",
|
"@tanstack/react-router-devtools": "^1.166.11",
|
||||||
"@tanstack/react-router-ssr-query": "^1.166.2",
|
"@tanstack/react-router-ssr-query": "^1.166.10",
|
||||||
"@tanstack/react-start": "^1.166.2",
|
"@tanstack/react-start": "^1.167.6",
|
||||||
"@types/bun": "^1.3.10",
|
"@types/bun": "^1.3.11",
|
||||||
"@types/node": "^24.11.0",
|
"@types/node": "^24.12.0",
|
||||||
"@vitejs/plugin-react": "^5.1.4",
|
"@vitejs/plugin-react": "^6.0.1",
|
||||||
"babel-plugin-react-compiler": "^1.0.0",
|
|
||||||
"drizzle-kit": "1.0.0-beta.15-859cf75",
|
"drizzle-kit": "1.0.0-beta.15-859cf75",
|
||||||
"drizzle-orm": "1.0.0-beta.15-859cf75",
|
"drizzle-orm": "1.0.0-beta.15-859cf75",
|
||||||
"electron": "^34.0.0",
|
"electron": "^34.0.0",
|
||||||
"electron-builder": "^26.8.1",
|
"electron-builder": "^26.8.1",
|
||||||
"electron-vite": "^5.0.0",
|
"electron-vite": "^5.0.0",
|
||||||
"motion": "^12.35.0",
|
"motion": "^12.38.0",
|
||||||
"nitro": "npm:nitro-nightly@3.0.1-20260227-181935-bfbb207c",
|
"nitro": "npm:nitro-nightly@3.0.1-20260324-103046-9ce219ca",
|
||||||
"postgres": "^3.4.8",
|
"postgres": "^3.4.8",
|
||||||
"react": "^19.2.4",
|
"react": "^19.2.4",
|
||||||
"react-dom": "^19.2.4",
|
"react-dom": "^19.2.4",
|
||||||
"tailwindcss": "^4.2.1",
|
"tailwindcss": "^4.2.2",
|
||||||
"tree-kill": "^1.2.2",
|
"tree-kill": "^1.2.2",
|
||||||
"uuid": "^13.0.0",
|
"uuid": "^13.0.0",
|
||||||
"vite": "^8.0.0-beta.16",
|
"vite": "^8.0.2",
|
||||||
"vite-tsconfig-paths": "^6.1.1",
|
|
||||||
"zod": "^4.3.6"
|
"zod": "^4.3.6"
|
||||||
},
|
},
|
||||||
"overrides": {
|
"overrides": {
|
||||||
|
|||||||
@@ -20,7 +20,9 @@
|
|||||||
"noFallthroughCasesInSwitch": true,
|
"noFallthroughCasesInSwitch": true,
|
||||||
"noUncheckedSideEffectImports": true,
|
"noUncheckedSideEffectImports": true,
|
||||||
"noUncheckedIndexedAccess": true,
|
"noUncheckedIndexedAccess": true,
|
||||||
"noImplicitOverride": true
|
"noImplicitOverride": true,
|
||||||
|
|
||||||
|
"types": ["bun"]
|
||||||
},
|
},
|
||||||
"exclude": ["node_modules"]
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user