From 404bd5d06b24a29e25da90a53f6cf1d6658a4f0a Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Fri, 20 Mar 2026 11:28:53 -0700 Subject: [PATCH] add interface to AdvancedMathcer, fix type --- .../infrastructure/network/AdvancedMatcher.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/server/src/service/infrastructure/network/AdvancedMatcher.ts b/server/src/service/infrastructure/network/AdvancedMatcher.ts index 57bf7022f..f867770f3 100644 --- a/server/src/service/infrastructure/network/AdvancedMatcher.ts +++ b/server/src/service/infrastructure/network/AdvancedMatcher.ts @@ -2,6 +2,10 @@ import { Monitor } from "@/types/monitor.js"; import jmespath from "jmespath"; type JmesPath = typeof jmespath; +export interface IADvancedMatcher { + validate(payload: T, monitor: Monitor): { ok: boolean; message: string; extracted?: T | undefined }; +} + export class AdvancedMatcher { constructor(private jmespath: JmesPath) {} @@ -12,7 +16,7 @@ export class AdvancedMatcher { return String(actual) === expected; // Default } - validate(payload: T, monitor: Monitor): { ok: boolean; message: string; extracted?: any } { + validate(payload: T, monitor: Monitor): { ok: boolean; message: string; extracted?: T | undefined } { const { useAdvancedMatching, jsonPath, matchMethod, expectedValue } = monitor; if (!useAdvancedMatching) return { ok: true, message: "Success" }; @@ -35,10 +39,10 @@ export class AdvancedMatcher { }; } - const isFalsey = dataToValidate === false || dataToValidate === "false" || dataToValidate === undefined || dataToValidate === null; + const isFalsy = dataToValidate === false || dataToValidate === "false" || dataToValidate === undefined || dataToValidate === null; return { - ok: !isFalsey, - message: !isFalsey ? "Success" : "Extracted value is falsey", + ok: !isFalsy, + message: !isFalsy ? "Success" : "Extracted value is falsy", extracted: dataToValidate, }; }