evaluateBreakpointCondition function

bool evaluateBreakpointCondition(
  1. InfospectBreakpointCondition condition,
  2. InfospectBreakpointMatchContext context
)

Evaluates a single condition against context.

Implementation

bool evaluateBreakpointCondition(
  InfospectBreakpointCondition condition,
  InfospectBreakpointMatchContext context,
) {
  if (condition.isResponseOnly && !context.isResponsePhase) {
    // Response-only filters do not block request-phase matching.
    return true;
  }

  switch (condition.target) {
    case InfospectBreakpointMatchTarget.queryParam:
      return _matchMapEntry(
        context.queryParameters,
        condition,
        caseInsensitiveKey: true,
      );
    case InfospectBreakpointMatchTarget.requestHeader:
      return _matchMapEntry(
        context.requestHeaders,
        condition,
        caseInsensitiveKey: true,
      );
    case InfospectBreakpointMatchTarget.requestBodyText:
      return _matchText(
        _asSearchText(context.requestBody),
        condition,
      );
    case InfospectBreakpointMatchTarget.requestBodyJson:
      return _matchJsonPath(context.requestBody, condition);
    case InfospectBreakpointMatchTarget.responseStatus:
      return _matchStatus(context.statusCode, condition);
    case InfospectBreakpointMatchTarget.responseBodyText:
      return _matchText(
        _asSearchText(context.responseBody),
        condition,
      );
    case InfospectBreakpointMatchTarget.responseBodyJson:
      return _matchJsonPath(context.responseBody, condition);
  }
}