update url metadata api to timeout after 5 seconds

main
TZGyn 1 year ago
parent 58b1556c0c
commit a6dfa77645
Signed by: TZGyn
GPG Key ID: 122EAF77AE81FD4A

@ -17,11 +17,30 @@ export const GET: RequestHandler = async (event) => {
} }
// taken from https://github.com/dubinc/dub/blob/main/apps/web/app/api/edge/metatags/utils.ts // taken from https://github.com/dubinc/dub/blob/main/apps/web/app/api/edge/metatags/utils.ts
try { try {
const response = await fetch(url, { const response = await new Promise<Response>(
(resolve, reject) => {
const controller = new AbortController()
const timeoutId = setTimeout(() => {
controller.abort()
reject(new Error('Request timed out'))
}, 5000)
fetch(url, {
headers: { headers: {
'User-Agent': 'shortener-bot', 'User-Agent': 'Kon.sh-bot',
}, },
signal: controller.signal,
}) })
.then((response) => {
clearTimeout(timeoutId)
resolve(response)
})
.catch((error) => {
clearTimeout(timeoutId)
reject(error)
})
},
)
if (!response) { if (!response) {
return new Response( return new Response(
JSON.stringify({ JSON.stringify({

Loading…
Cancel
Save