Option fix
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
Julien Valverdé
2024-03-19 17:44:46 +01:00
parent c61f5332fc
commit 5e7588510d

View File

@@ -4,17 +4,17 @@ import { z } from "zod"
export const option = { export const option = {
option: <S extends z.ZodSchema>(schema: S) => option: <S extends z.ZodTypeAny>(schema: S) =>
z.union([option.some(schema), option.none(schema)]), z.union([option.some(schema), option.none(schema)]),
some: <S extends z.ZodSchema>(schema: S) => z some: <S extends z.ZodTypeAny>(schema: S) => z
.custom<Option.Some<z.output<S>>>(v => Option.isOption(v) && Option.isSome(v), "Not an Option") .custom<Option.Some<z.output<S>>>(v => Option.isOption(v) && Option.isSome(v), "Not an Option")
.pipe(z.object({ value: schema }).passthrough()) .pipe(z.object({ value: schema }).passthrough())
.transform<Option.Some<z.output<S>>>(identity), .transform<Option.Some<z.output<S>>>(identity),
none: <S extends z.ZodSchema | unknown = unknown>(_schema?: S) => none: <S extends z.ZodTypeAny | unknown = unknown>(_schema?: S) =>
z.custom<Option.None< z.custom<Option.None<
S extends z.ZodSchema S extends z.ZodTypeAny
? z.output<S> ? z.output<S>
: unknown : unknown
>>(v => Option.isOption(v) && Option.isNone(v), "Not an Option"), >>(v => Option.isOption(v) && Option.isNone(v), "Not an Option"),