ChemPal Documentation - v0.0.13-beta.5
    Preparing search index...
    • 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.

      Parameters

      • product: unknown

        The value to validate

      Returns product is RequiredProductFields

      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;
      }
      }