import { StoreProduct } from "@medusajs/types"; type Product = { metadata?: { analysisElementMedusaProductIds?: string; } | null; variant?: { metadata?: { analysisElementMedusaProductIds?: string; } | null; } | null; } | null; export const getAnalysisElementMedusaProductIds = (products: Pick[]) => { if (!products) { return []; } const mapped = products .flatMap((product) => { const value = (product as Product)?.metadata?.analysisElementMedusaProductIds?.replaceAll("'", '"'); const value_variant = (product as Product)?.variant?.metadata?.analysisElementMedusaProductIds?.replaceAll("'", '"'); try { return [...JSON.parse(value as string), ...JSON.parse(value_variant as string)]; } catch (e) { console.error("Failed to parse analysisElementMedusaProductIds from analysis package, possibly invalid format", e); return []; } }) .filter(Boolean) as string[]; return [...new Set(mapped)]; }