Object to validate
Type predicate indicating if the object is a valid SearchResponseItem
// Valid search response item
const validItem = {
id: 123,
name: "Sodium Chloride",
type: "simple",
description: "High purity NaCl",
short_description: "NaCl",
permalink: "/product/sodium-chloride",
is_in_stock: true,
sold_individually: false,
sku: "NACL-500",
prices: {
price: "29.99",
regular_price: "34.99",
sale_price: "29.99",
currency_code: "USD",
currency_symbol: "$",
currency_minor_unit: 2,
currency_decimal_separator: ".",
currency_thousand_separator: ",",
currency_prefix: "$",
currency_suffix: ""
}
};
if (isSearchResponseItem(validItem)) {
console.log('Valid item:', validItem.name);
console.log('Price:', validItem.prices.price);
}
// Invalid search response item (missing properties)
const invalidItem = {
id: 123,
name: "Sodium Chloride"
// Missing required properties
};
if (!isSearchResponseItem(invalidItem)) {
console.log('Invalid item - missing required properties');
}
// Invalid search response item (wrong types)
const wrongTypes = {
id: "123", // Should be number
name: 456, // Should be string
prices: "invalid" // Should be object
};
if (!isSearchResponseItem(wrongTypes)) {
console.log('Invalid item - wrong property types');
}
Type guard to validate if an unknown object is a valid SearchResponseItem from WooCommerce. Checks for the presence and correct types of all required properties including nested price information.