refactor: standardize error handling with toError() helper
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
ea716c1f0e
commit
4d1e592365
@@ -1,7 +1,7 @@
|
||||
import { db, schema } from '../db/index.js'
|
||||
import { runMockFight } from './mock.js'
|
||||
import { eq } from 'drizzle-orm'
|
||||
import { pick } from '../lib/utils.js'
|
||||
import { pick, toError } from '../lib/utils.js'
|
||||
import { fightEvents } from './events.js'
|
||||
|
||||
export interface FightResult {
|
||||
@@ -137,7 +137,7 @@ export async function startFightLoop(options: FightLoopOptions = {}): Promise<vo
|
||||
}
|
||||
} catch (err) {
|
||||
if (onError) {
|
||||
onError(err instanceof Error ? err : new Error(String(err)))
|
||||
onError(toError(err))
|
||||
} else {
|
||||
console.error('[fight-loop] error:', err)
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { nanoid } from 'nanoid'
|
||||
import { toError } from '../lib/utils.js'
|
||||
import { db, schema, sqlite } from '../db/index.js'
|
||||
import { eq, sql } from 'drizzle-orm'
|
||||
import { randomArena, type Arena } from './arenas.js'
|
||||
@@ -207,7 +208,7 @@ async function callWebhook(
|
||||
} catch (err: unknown) {
|
||||
const elapsed = Date.now() - start
|
||||
const isAbort = err instanceof Error && err.name === 'AbortError'
|
||||
console.log(`[webhook] ${url} ${isAbort ? "TIMEOUT" : "ERROR"} in ${elapsed}ms: ${err instanceof Error ? err.message : err}`)
|
||||
console.log(`[webhook] ${url} ${isAbort ? "TIMEOUT" : "ERROR"} in ${elapsed}ms: ${toError(err).message}`)
|
||||
return {
|
||||
answer: null,
|
||||
timeMs: elapsed,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { Hono } from 'hono'
|
||||
import { toError } from '../lib/utils.js'
|
||||
import { db, schema } from '../db/index.js'
|
||||
import { eq, desc } from 'drizzle-orm'
|
||||
import { calculateOdds } from '../engine/odds.js'
|
||||
@@ -104,7 +105,7 @@ betsRouter.post('/place', rateLimit(60_000, 10), async (c) => {
|
||||
potentialPayout: bet.potentialPayout,
|
||||
})
|
||||
} catch (err: unknown) {
|
||||
return c.json({ error: err instanceof Error ? err.message : String(err) }, 400)
|
||||
return c.json({ error: toError(err).message }, 400)
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { Hono } from 'hono'
|
||||
import { db, schema } from '../db/index.js'
|
||||
import { eq } from 'drizzle-orm'
|
||||
import { toError } from '../lib/utils.js'
|
||||
import {
|
||||
createTournament,
|
||||
joinTournament,
|
||||
@@ -73,7 +74,7 @@ tournamentsRouter.post('/:id/join', async (c) => {
|
||||
const entryId = joinTournament(tournamentId, bot.id, body.paymentId)
|
||||
return c.json({ entryId, botId: bot.id })
|
||||
} catch (err) {
|
||||
const message = err instanceof Error ? err.message : String(err)
|
||||
const message = toError(err).message
|
||||
return c.json({ error: message }, 400)
|
||||
}
|
||||
})
|
||||
@@ -92,7 +93,7 @@ tournamentsRouter.post('/:id/start', async (c) => {
|
||||
const bracket = getTournamentBracket(tournamentId)
|
||||
return c.json({ status: 'active', bracket })
|
||||
} catch (err) {
|
||||
const message = err instanceof Error ? err.message : String(err)
|
||||
const message = toError(err).message
|
||||
return c.json({ error: message }, 400)
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user