ChemPare Documentation - v0.0.0
    Preparing search index...
    • 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.

      Parameters

      • response: unknown

        Object to validate

      Returns response is WooCommerceProductVariant

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