From 0cd79fd83c76160ff14cfa0827483c1e1cfba32b Mon Sep 17 00:00:00 2001 From: Matt Aitken Date: Fri, 20 Oct 2023 13:04:24 +0100 Subject: [PATCH] RequestFilterSchema is part of core --- packages/core/src/schemas/eventFilter.ts | 2 +- packages/core/src/schemas/index.ts | 1 + packages/core/src/schemas/requestFilter.ts | 14 ++++++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 packages/core/src/schemas/requestFilter.ts diff --git a/packages/core/src/schemas/eventFilter.ts b/packages/core/src/schemas/eventFilter.ts index 75108a340..d07dc9009 100644 --- a/packages/core/src/schemas/eventFilter.ts +++ b/packages/core/src/schemas/eventFilter.ts @@ -1,6 +1,6 @@ import { z } from "zod"; -const stringPatternMatchers = [ +export const stringPatternMatchers = [ z.object({ $endsWith: z.string(), }), diff --git a/packages/core/src/schemas/index.ts b/packages/core/src/schemas/index.ts index 09f3a15c0..a0b513817 100644 --- a/packages/core/src/schemas/index.ts +++ b/packages/core/src/schemas/index.ts @@ -2,6 +2,7 @@ export * from "./api"; export * from "./json"; export * from "./triggers"; export * from "./eventFilter"; +export * from "./requestFilter"; export * from "./errors"; export * from "./tasks"; export * from "./properties"; diff --git a/packages/core/src/schemas/requestFilter.ts b/packages/core/src/schemas/requestFilter.ts new file mode 100644 index 000000000..34425472a --- /dev/null +++ b/packages/core/src/schemas/requestFilter.ts @@ -0,0 +1,14 @@ +import { z } from "zod"; +import { EventFilterSchema, stringPatternMatchers } from "./eventFilter"; + +const StringMatchSchema = z.union([ + /** Match against a string */ + z.array(z.string()), + z.array(z.union(stringPatternMatchers)), +]); + +export const RequestFilterSchema = z.object({ + headers: z.record(StringMatchSchema), + query: z.record(StringMatchSchema), + body: EventFilterSchema.optional(), +});