diff options
Diffstat (limited to 'packages/shared')
| -rw-r--r-- | packages/shared/types/rules.ts | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/packages/shared/types/rules.ts b/packages/shared/types/rules.ts index 92300b3c..0daec524 100644 --- a/packages/shared/types/rules.ts +++ b/packages/shared/types/rules.ts @@ -54,6 +54,11 @@ const zUrlContainsCondition = z.object({ str: z.string(), }); +const zUrlDoesNotContainCondition = z.object({ + type: z.literal("urlDoesNotContain"), + str: z.string(), +}); + const zImportedFromFeedCondition = z.object({ type: z.literal("importedFromFeed"), feedId: z.string(), @@ -80,6 +85,7 @@ const zIsArchivedCondition = z.object({ const nonRecursiveCondition = z.discriminatedUnion("type", [ zAlwaysTrueCondition, zUrlContainsCondition, + zUrlDoesNotContainCondition, zImportedFromFeedCondition, zBookmarkTypeIsCondition, zHasTagCondition, @@ -98,6 +104,7 @@ export const zRuleEngineConditionSchema: z.ZodType<RuleEngineCondition> = z.discriminatedUnion("type", [ zAlwaysTrueCondition, zUrlContainsCondition, + zUrlDoesNotContainCondition, zImportedFromFeedCondition, zBookmarkTypeIsCondition, zHasTagCondition, @@ -227,6 +234,7 @@ const ruleValidaitorFn = ( case "isArchived": return true; case "urlContains": + case "urlDoesNotContain": if (condition.str.length == 0) { ctx.addIssue({ code: "custom", |
