Eager DB client initialization makes the DB required to preview the docs
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- postgresql, typescript
- Lĩnh vực
- build-system, database, documentation
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.
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? 🤔
- Ngôn ngữ chính
- TypeScript
- Star
- 1.1k
- Fork
- 401
- Merge trung bình
- 18 giờ 44 phút
- Pull request đã merge (30 ngày)
- 55
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.
Issue khác của TanStack/tanstack.com
-
source-audit
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 84/100
TanStack/tanstack.com#1195 ·
-
source-audit
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
TanStack/tanstack.com#1194 · 2 bình luận ·
-
source-audit
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
TanStack/tanstack.com#1177 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
TanStack/tanstack.com#1059 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
TanStack/tanstack.com#1047 ·
Tất cả issue của TanStack/tanstack.com
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
0xMiden/bridge-portal#132 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
-
area:tools bug good first issue help wanted priority:P2
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 90/100
TaewoooPark/Motifcode#14 ·
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
newrelic-experimental/preflight#793 · 1 bình luận ·