forked from
jollywhoppers.com/witchsky.app
Bluesky app fork with some witchin' additions 馃挮
1import {logger} from '#/logger'
2
3export async function resolveShortLink(shortLink: string) {
4 const controller = new AbortController()
5 const to = setTimeout(() => controller.abort(), 2e3)
6
7 try {
8 const res = await fetch(shortLink, {
9 method: 'GET',
10 headers: {
11 Accept: 'application/json',
12 },
13 signal: controller.signal,
14 })
15 if (res.status !== 200) {
16 logger.error('Failed to resolve short link', {status: res.status})
17 return shortLink
18 }
19 const json = (await res.json()) as {url: string}
20 return json.url
21 } catch (e: unknown) {
22 logger.error('Failed to resolve short link', {safeMessage: e})
23 return shortLink
24 } finally {
25 clearTimeout(to)
26 }
27}