TanStack / TanStack/tanstack.com
Eager DB client initialization makes the DB required to preview the docs
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- TypeScript
- Star
- 1.1k
- Fork
- 401
- Merge trung bình
- 18 giờ 14 phút
- Pull request đã merge (30 ngày)
- 56
Mô tả
If there is no DB connection set, the build will fail. On docs only contributions, it is annoying.
As a workaround, I'm doing this:
function lazyObject<T extends object>(factory: () => T): T {
let value: T | undefined = undefined
return new Proxy({} as T, {
get(_, prop) {
if (!value) value = factory()
return value[prop as keyof T]
},
}) as T
}
export const db = lazyObject(() => {
// Create the connection string from environment variable
const connectionString = process.env.DATABASE_URL
if (!connectionString) {
throw new Error('DATABASE_URL environment variable is not set')
}
// Create postgres client
// For serverless environments, use connection pooling
const client = postgres(connectionString, {
max: 1, // For serverless, limit connections
idle_timeout: 20,
connect_timeout: 10,
})
// Create drizzle instance with schema
return drizzle(client, { schema })
})
Is that ok for a workaround for a PR, or is there a better pattern or approach? Passing it though the backend context? Or maybe a React's cache like API in start? 🤔
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu với các dòng 5-21 của src/db/client.ts và tái hiện việc build hoặc xem trước tài liệu mà không có DATABASE_URL. Theo dõi những đường dẫn tài liệu nào khởi tạo client và so sánh chúng với những đường dẫn thực sự cần truy cập cơ sở dữ liệu. Hoàn tất khi tài liệu có thể được build và xem trước mà không cần cơ sở dữ liệu, trong khi hành vi dựa trên cơ sở dữ liệu vẫn hoạt động khi được cấu hình.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- postgresql, typescript
- Lĩnh vực
- build-system, database, documentation
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 35/100