Eager DB client initialization makes the DB required to preview the docs
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- postgresql, typescript
- Área
- build-system, database, documentation
Línea de trabajo
Empieza por las líneas 5-21 de src/db/client.ts y reproduce una compilación o vista previa de la documentación sin DATABASE_URL. Rastrea qué rutas de documentación inicializan el cliente y compáralas con las rutas que realmente necesitan acceso a la base de datos. El trabajo estará terminado cuando la documentación pueda compilarse y previsualizarse sin una base de datos, mientras que el comportamiento respaldado por la base de datos siga funcionando cuando esté configurado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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? 🤔
- Lenguaje dominante
- TypeScript
- Estrellas
- 1.1k
- Forks
- 401
- Merge medio
- 18 h 44 min
- PR fusionados (30 d)
- 55
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de TanStack/tanstack.com
-
source-audit
Dificultad 1/5 Menos de una hora Aptitud para principiantes 84/100
TanStack/tanstack.com#1195 ·
-
source-audit
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
TanStack/tanstack.com#1194 · 2 comentarios ·
-
source-audit
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
TanStack/tanstack.com#1177 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
TanStack/tanstack.com#1059 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
TanStack/tanstack.com#1047 ·
Todos los issues de TanStack/tanstack.com
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
0xMiden/bridge-portal#132 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
area:tools bug good first issue help wanted priority:P2
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
TaewoooPark/Motifcode#14 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
newrelic-experimental/preflight#793 · 1 comentario ·