The item object to validate
Type predicate indicating if the object is a valid ItemListing
// Valid item listing
const validItem = {
title: "Sodium Chloride",
price: "29.99",
link: "/products/nacl",
product_id: "12345",
product_code: "CHEM-001",
quantity: "500g",
vendor: "Chemical Supplier",
original_product_id: "12345",
list_price: "39.99",
shopify_variants: [
{
sku: "CHEM-001-500G",
price: "29.99",
link: "/products/nacl?variant=1",
variant_id: "1",
quantity_total: "100",
options: { Model: "500g" }
}
]
};
if (isItemListing(validItem)) {
console.log("Valid item listing:", validItem.title);
console.log("Vendor:", validItem.vendor);
}
export function isItemListing(item: unknown): item is ItemListing {
return itemListingSchema.safeParse(item).success;
}
Type guard to validate if an object is a valid Searchanise item listing. Checks for the presence and correct types of all required properties including product details, pricing, and an array of valid Searchanise variants.