UNPKG

@eweser/db

Version:
37 lines (31 loc) 937 B
import type { Database } from '../../index.js'; export const pingServer = (db: Database) => async () => { const token = db.getToken(); try { const response = await fetch( `${db.authServer}/ping`, token ? { headers: { Authorization: `Bearer ${token}`, }, } : undefined ); if (!response.ok) { throw new Error(`Ping failed with status ${response.status}`); } const contentType = response.headers.get('content-type') ?? ''; if (contentType.includes('application/json')) { const data = (await response.json()) as { reply?: string }; db.debug('Server pinged', data); return data.reply === 'pong'; } const reply = (await response.text()).trim(); db.debug('Server pinged', reply); return reply === 'pong'; } catch (error) { db.error('Error pinging server', error); return false; } };