import type { MastoClient } from 'masto' import { currentUser } from '../composables/users' export default defineNuxtPlugin(async () => { try { const { query } = useRoute() const user = typeof query.server === 'string' && typeof query.token === 'string' ? { server: query.server, token: query.token } : currentUser.value // TODO: improve upstream to make this synchronous (delayed auth) const masto = await loginTo(user) as MastoClient return { provide: { masto: shallowReactive({ replace(api: MastoClient) { this.api = api }, api: masto, }), }, } } catch { // TODO: handle error // Show error page when Mastodon server is down throw createError({ fatal: true, statusMessage: 'Could not log into account.', }) } })