Object to validate
Type predicate indicating if the response is a valid and complete WooCommerceProductVariant
// Valid complete product variant
const completeVariant = {
id: 123,
name: "Sodium Chloride 500g",
type: "variation",
variation: "500g",
sku: "NACL-500",
description: "High purity sodium chloride, 500g",
variations: ["250g", "500g", "1000g"],
// Other required SearchResponseItem properties would go here
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 (isValidProductVariant(completeVariant)) {
console.log('Valid complete variant:', completeVariant.variation);
console.log('Available variations:', completeVariant.variations);
}
// Invalid complete variant (missing required properties)
const incompleteVariant = {
id: 123,
name: "Sodium Chloride 500g",
type: "variation",
variation: "500g",
sku: "NACL-500"
// Missing description and variations
};
if (!isValidProductVariant(incompleteVariant)) {
console.log('Invalid complete variant - missing required properties');
}
// Invalid complete variant (wrong types)
const wrongTypes = {
id: 123,
name: "Sodium Chloride 500g",
type: "variation",
variation: "500g",
sku: "NACL-500",
description: 123, // Should be string
variations: "250g,500g,1000g" // Should be array
};
if (!isValidProductVariant(wrongTypes)) {
console.log('Invalid complete variant - wrong property types');
}
Type guard to validate if a product response contains all required variant information. Extends the basic WooCommerceProductVariant validation with additional required properties for complete variant data.