fix: stronger error handling in fetchPrice

This commit is contained in:
xenticore
2025-05-01 18:25:47 -04:00
parent c053af1928
commit 745087a1cb

View File

@@ -51,7 +51,7 @@ export async function fetchPrice(token: string, sku: string, update: Date = new
if (!data || data.sku != sku || 'update' in data && 'ttl' in data && Date.now() > (new Date(data.update).getTime() + data.ttl)) { if (!data || data.sku != sku || 'update' in data && 'ttl' in data && Date.now() > (new Date(data.update).getTime() + data.ttl)) {
logDebug(`Fetching price data for ${sku}`) logDebug(`Fetching price data for ${sku}`)
if(!token) { if(!token || token === '') {
throw new Error('No token provided') throw new Error('No token provided')
} }
data = new ItemPriceData() data = new ItemPriceData()
@@ -64,14 +64,15 @@ export async function fetchPrice(token: string, sku: string, update: Date = new
if(__ENV_USERSCRIPT) { if(__ENV_USERSCRIPT) {
response = await priceUsingPricesTF(token, sku) response = await priceUsingPricesTF(token, sku)
} else { } else {
response = JSON.parse(await chrome.runtime.sendMessage({contentScriptQuery: "priceSKU", service: "prices.tf", sku: sku, token: token})); response = await chrome.runtime.sendMessage({contentScriptQuery: "priceSKU", service: "prices.tf", sku: sku, token: token});
} }
if (response) { if (!response || response instanceof Error) {
data.keys = response.keys throw new Error(`Bad response: ${response}`)
data.metal = response.metal
} }
data.keys = response.keys
data.metal = response.metal
} catch (error) { } catch (error) {
throw new Error(`Received ${error} error while pricing ${sku} using prices.tf`) throw new Error(`Received "${error}" error while pricing ${sku} using prices.tf`)
} }
if ('metal' in data && 'keys' in data) { if ('metal' in data && 'keys' in data) {