Co-authored-by: Dan Abramov <dan.abramov@gmail.com> Co-authored-by: Paul Frazee <pfrazee@gmail.com> Co-authored-by: Eric Bailey <git@esb.lol> Co-authored-by: Samuel Newman <mozzius@protonmail.com>
23 lines
545 B
TypeScript
23 lines
545 B
TypeScript
import {logger} from '#/logger'
|
|
|
|
export function useShortenLink() {
|
|
return async (inputUrl: string): Promise<{url: string}> => {
|
|
const url = new URL(inputUrl)
|
|
const res = await fetch('https://go.bsky.app/link', {
|
|
method: 'POST',
|
|
body: JSON.stringify({
|
|
path: url.pathname,
|
|
}),
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
},
|
|
})
|
|
|
|
if (!res.ok) {
|
|
logger.error('Failed to shorten link', {safeMessage: res.status})
|
|
return {url: inputUrl}
|
|
}
|
|
|
|
return res.json()
|
|
}
|
|
}
|