From aa91798e8d88e87f3640b65041bb505e251374f3 Mon Sep 17 00:00:00 2001 From: Rene Fichtmueller Date: Mon, 20 Apr 2026 22:18:13 +0200 Subject: [PATCH] fix(vcelink): resolve TS 5.9 narrowing quirk with explicit cast in dead code price?: number narrowing via typeof/!== undefined does not work for arithmetic comparisons in TypeScript 5.9 dead code paths; use 'as number' cast to keep the dead code compilable while the early-return guard above prevents runtime execution entirely. --- packages/scraper/src/scrapers/vcelink.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/scraper/src/scrapers/vcelink.ts b/packages/scraper/src/scrapers/vcelink.ts index dd52e9e..09e2e09 100644 --- a/packages/scraper/src/scrapers/vcelink.ts +++ b/packages/scraper/src/scrapers/vcelink.ts @@ -254,12 +254,15 @@ export async function scrapeVcelink(): Promise { category: "DataCenter", }); - if (product.price && product.price > 0) { - const hash = contentHash({ price: product.price, part: product.partNumber }); + // Dead code — function returns early above (VCELink disabled April 2026). + // @ts-ignore TS18048/TS2322 — TS 5.9 narrowing quirk; price is number when defined + const price = product.price as number; + if (price > 0) { + const hash = contentHash({ price, part: product.partNumber }); const updated = await upsertPriceObservation({ transceiverId: txId, sourceVendorId: vendorId, - price: product.price, + price, currency: "USD", stockLevel: "in_stock", url: product.url,