ChemPare Documentation - v0.0.0
    Preparing search index...

    Function isValidSearchResponse

    • Type guard to validate if a response has the complete structure of a Carolina search response. Performs deep validation of the response object including contents, content folder zones, and child rules. This is a more thorough validation than isResponseOk.

      Parameters

      • response: unknown

        Response object to validate

      Returns response is CarolinaSearchResponse

      Type predicate indicating if response is a valid SearchResponse

      // Valid search response
      const validResponse = {
      responseStatusCode: 200,
      "@type": "SearchResponse",
      contents: {
      ContentFolderZone: [
      {
      childRules: [
      {
      "product.productId": "12345",
      "product.productName": "Sodium Chloride",
      "product.shortDescription": "High purity NaCl",
      itemPrice: "29.99",
      "product.seoName": "sodium-chloride",
      productUrl: "/products/sodium-chloride",
      productName: "Sodium Chloride 500g",
      qtyDiscountAvailable: false
      }
      ]
      }
      ]
      }
      };

      if (isValidSearchResponse(validResponse)) {
      console.log("Valid search response");
      const firstItem = validResponse.contents.ContentFolderZone[0].childRules[0];
      console.log("First item:", firstItem["product.productName"]);
      } else {
      console.error("Invalid search response structure");
      }

      // Invalid search response (empty content folder)
      const emptyFolder = {
      responseStatusCode: 200,
      "@type": "SearchResponse",
      contents: {
      ContentFolderZone: [] // Empty folder
      }
      };
      if (!isValidSearchResponse(emptyFolder)) {
      console.error("Invalid response - empty content folder");
      }

      // Invalid search response (missing child rules)
      const noChildRules = {
      responseStatusCode: 200,
      "@type": "SearchResponse",
      contents: {
      ContentFolderZone: [
      {
      // Missing childRules
      }
      ]
      }
      };
      if (!isValidSearchResponse(noChildRules)) {
      console.error("Invalid response - missing child rules");
      }