The value to validate
Type predicate indicating if the value has minimal required product properties
const minimalProduct = {
title: "Sodium Chloride",
price: 29.99,
quantity: 500,
uom: "g",
supplier: "ChemSupplier",
url: "/products/nacl",
currencyCode: "USD",
currencySymbol: "$"
};
if (isMinimalProduct(minimalProduct)) {
console.log('Valid minimal product:', minimalProduct.title);
} else {
console.log('Invalid minimal product');
}
// Example with missing required fields
const invalidProduct = {
title: "Sodium Chloride",
price: 29.99,
quantity: 500
// Missing other required fields
};
if (!isMinimalProduct(invalidProduct)) {
console.log('Invalid minimal product - missing required fields');
}
export function isMinimalProduct(product: unknown): product is RequiredProductFields {
try {
const missingFields = checkMissingMinimalProductFields(product);
if (missingFields.length > 0) {
console.debug("isMinimalProduct| Product is missing minimal fields", {
product,
missingFields,
});
return false;
}
return true;
} catch (error) {
console.warn("isMinimalProduct| The product is invalid", { product, error });
return false;
}
}
Type guard to validate if a value has the minimal required properties of a Product. This is a less strict validation than isProduct as it only checks for the minimum required fields. Useful for validating partial product data during construction.