Use strict() validation for permission criteria zod schemas

Signed-off-by: Joe Porpeglia <josephp@spotify.com>
This commit is contained in:
Joe Porpeglia
2022-02-04 15:27:51 -05:00
committed by Joe Porpeglia
parent e66bb84798
commit 08ce0c83dd
2 changed files with 21 additions and 10 deletions
@@ -43,9 +43,18 @@ const permissionCriteriaSchema: z.ZodSchema<
rule: z.string(),
params: z.array(z.unknown()),
})
.or(z.object({ anyOf: z.array(permissionCriteriaSchema).nonempty() }))
.or(z.object({ allOf: z.array(permissionCriteriaSchema).nonempty() }))
.or(z.object({ not: permissionCriteriaSchema })),
.strict()
.or(
z
.object({ anyOf: z.array(permissionCriteriaSchema).nonempty() })
.strict(),
)
.or(
z
.object({ allOf: z.array(permissionCriteriaSchema).nonempty() })
.strict(),
)
.or(z.object({ not: permissionCriteriaSchema }).strict()),
);
const responseSchema = z.object({
@@ -38,13 +38,15 @@ const permissionCriteriaSchema: z.ZodSchema<
PermissionCriteria<PermissionCondition>
> = z.lazy(() =>
z.union([
z.object({ anyOf: z.array(permissionCriteriaSchema).nonempty() }),
z.object({ allOf: z.array(permissionCriteriaSchema).nonempty() }),
z.object({ not: permissionCriteriaSchema }),
z.object({
rule: z.string(),
params: z.array(z.unknown()),
}),
z.object({ anyOf: z.array(permissionCriteriaSchema).nonempty() }).strict(),
z.object({ allOf: z.array(permissionCriteriaSchema).nonempty() }).strict(),
z.object({ not: permissionCriteriaSchema }).strict(),
z
.object({
rule: z.string(),
params: z.array(z.unknown()),
})
.strict(),
]),
);