Eager DB client initialization makes the DB required to preview the docs
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 35/100
- Tipo de issue
- Bug
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Stack de tecnologia
- postgresql, typescript
- Domínio
- build-system, database, documentation
Direção de pesquisa
Comece pelas linhas 5-21 de src/db/client.ts e reproduza um build ou uma prévia da documentação sem DATABASE_URL. Rastreie quais caminhos da documentação inicializam o cliente e compare-os com os caminhos que realmente precisam de acesso ao banco de dados. O trabalho estará concluído quando a documentação puder ser compilada e visualizada em prévia sem um banco de dados, enquanto o comportamento baseado em banco de dados continuar funcionando quando configurado.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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? 🤔
- Linguagem predominante
- TypeScript
- Estrelas
- 1.1k
- Forks
- 401
- Merge médio
- 18h 44min
- PRs com merge (30d)
- 55
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de TanStack/tanstack.com
-
source-audit
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 84/100
TanStack/tanstack.com#1195 ·
-
source-audit
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
TanStack/tanstack.com#1194 · 2 comentários ·
-
source-audit
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
TanStack/tanstack.com#1177 · 1 comentário ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 64/100
TanStack/tanstack.com#1059 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
TanStack/tanstack.com#1047 ·
Todas as issues de TanStack/tanstack.com
Issues semelhantes
-
VerificationGate: ATTRIBUTION quote guard never matches a normal quotation (\b around the quote) Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
danielmiessler/LifeOS#2234 ·
-
T: Bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 85/100
-
Mend: dependency security vulnerability untriaged
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100