Documentation
¶
Overview ¶
Package gozod provides a TypeScript Zod v4-inspired validation library for Go, offering strongly-typed, zero-dependency data validation with intelligent type inference.
Index ¶
- Constants
- Variables
- func Apply[S any, R any](schema S, fn func(S) R) R
- func FromStruct[T any]() *types.ZodStruct[T, T]
- func FromStructPtr[T any]() *types.ZodStruct[T, *T]
- func Lazy[S types.ZodSchemaType](getter func() S, params ...any) *types.ZodLazyTyped[S]
- type CheckParams
- type CustomParams
- type FlattenedError
- type FromJSONSchemaOptions
- type GlobalMeta
- type IsoDatetimeOptions
- type IsoTimeOptions
- type IssueCode
- type JSONSchemaOptions
- type JWTOptions
- type MessageFormatter
- type ObjectSchema
- type OverrideContext
- type ParsePayload
- type Registry
- type SchemaParams
- type StructSchema
- type URLOptions
- type ZodAny
- type ZodArray
- type ZodBase64
- type ZodBase64URL
- type ZodBool
- type ZodCIDRv4
- type ZodCIDRv6
- type ZodCUID
- type ZodCUID2
- type ZodCheck
- type ZodCheckDef
- type ZodCheckFn
- type ZodCheckInternals
- type ZodComplex
- type ZodConfig
- type ZodDiscriminatedUnion
- type ZodE164
- type ZodEmail
- type ZodEmoji
- type ZodEnum
- func Enum[T comparable](values ...T) *ZodEnum[T, T]
- func EnumMap[T comparable](entries map[string]T, params ...any) *ZodEnum[T, T]
- func EnumMapPtr[T comparable](entries map[string]T, params ...any) *ZodEnum[T, *T]
- func EnumPtr[T comparable](values ...T) *ZodEnum[T, *T]
- func EnumSlice[T comparable](values []T) *ZodEnum[T, T]
- func EnumSlicePtr[T comparable](values []T) *ZodEnum[T, *T]
- type ZodError
- type ZodErrorTree
- type ZodFile
- type ZodFloat
- type ZodFormattedError
- type ZodFunction
- type ZodGUID
- type ZodHex
- type ZodHostname
- type ZodIPv4
- type ZodIPv6
- type ZodInteger
- type ZodIntersection
- type ZodIso
- type ZodIssue
- type ZodJWT
- type ZodKSUID
- type ZodLazy
- type ZodLiteral
- type ZodMAC
- type ZodMap
- type ZodNanoID
- type ZodNever
- type ZodNil
- type ZodObject
- type ZodRawIssue
- type ZodRecord
- type ZodRefineFn
- type ZodSet
- type ZodSlice
- type ZodString
- type ZodStringBool
- type ZodStruct
- type ZodTime
- type ZodTuple
- type ZodType
- type ZodULID
- type ZodURL
- type ZodUUID
- type ZodUnion
- type ZodUnknown
- type ZodWhenFn
- type ZodXID
Constants ¶
const ( IssueInvalidType = core.InvalidType IssueInvalidValue = core.InvalidValue IssueInvalidFormat = core.InvalidFormat IssueInvalidUnion = core.InvalidUnion IssueInvalidKey = core.InvalidKey IssueInvalidElement = core.InvalidElement IssueTooBig = core.TooBig IssueTooSmall = core.TooSmall IssueNotMultipleOf = core.NotMultipleOf IssueUnrecognizedKeys = core.UnrecognizedKeys IssueCustom = core.Custom )
Issue code constants
Variables ¶
var ( SetConfig = core.SetConfig Config = core.Config )
Global configuration functions
var ( String = types.String StringPtr = types.StringPtr Email = types.Email EmailPtr = types.EmailPtr Emoji = types.Emoji EmojiPtr = types.EmojiPtr Base64 = types.Base64 Base64Ptr = types.Base64Ptr Base64URL = types.Base64URL Base64URLPtr = types.Base64URLPtr Hex = types.Hex HexPtr = types.HexPtr )
String constructors
var ( Bool = types.Bool BoolPtr = types.BoolPtr )
Boolean constructors
var ( Int = types.Int IntPtr = types.IntPtr Int8 = types.Int8 Int8Ptr = types.Int8Ptr Int16 = types.Int16 Int16Ptr = types.Int16Ptr Int32 = types.Int32 Int32Ptr = types.Int32Ptr Int64 = types.Int64 Int64Ptr = types.Int64Ptr )
Integer constructors
var ( Uint = types.Uint UintPtr = types.UintPtr Uint8 = types.Uint8 Uint8Ptr = types.Uint8Ptr Uint16 = types.Uint16 Uint16Ptr = types.Uint16Ptr Uint32 = types.Uint32 Uint32Ptr = types.Uint32Ptr Uint64 = types.Uint64 Uint64Ptr = types.Uint64Ptr )
Unsigned integer constructors
var ( Float = types.Float FloatPtr = types.FloatPtr Float32 = types.Float32 Float32Ptr = types.Float32Ptr Float64 = types.Float64 Float64Ptr = types.Float64Ptr Number = types.Number NumberPtr = types.NumberPtr )
Float constructors
var ( BigInt = types.BigInt BigIntPtr = types.BigIntPtr )
BigInt constructors
var ( Complex = types.Complex ComplexPtr = types.ComplexPtr Complex64 = types.Complex64 Complex64Ptr = types.Complex64Ptr Complex128 = types.Complex128 Complex128Ptr = types.Complex128Ptr )
Complex number constructors
var ( Time = types.Time TimePtr = types.TimePtr )
Time constructors
var ( IPv4 = types.IPv4 IPv4Ptr = types.IPv4Ptr IPv6 = types.IPv6 IPv6Ptr = types.IPv6Ptr CIDRv4 = types.CIDRv4 CIDRv4Ptr = types.CIDRv4Ptr CIDRv6 = types.CIDRv6 CIDRv6Ptr = types.CIDRv6Ptr URL = types.URL URLPtr = types.URLPtr Hostname = types.Hostname HostnamePtr = types.HostnamePtr MAC = types.MAC MACPtr = types.MACPtr MACWithDelimiter = types.MACWithDelimiter E164 = types.E164 E164Ptr = types.E164Ptr HTTPURL = types.HTTPURL HTTPURLPtr = types.HTTPURLPtr )
Network type constructors
var ( Iso = types.Iso IsoPtr = types.IsoPtr IsoDateTime = types.IsoDateTime IsoDateTimePtr = types.IsoDateTimePtr IsoDate = types.IsoDate IsoDatePtr = types.IsoDatePtr IsoTime = types.IsoTime IsoTimePtr = types.IsoTimePtr IsoDuration = types.IsoDuration IsoDurationPtr = types.IsoDurationPtr )
ISO 8601 format constructors
var ( PrecisionMinute = types.PrecisionMinute PrecisionSecond = types.PrecisionSecond PrecisionDecisecond = types.PrecisionDecisecond PrecisionCentisecond = types.PrecisionCentisecond PrecisionMillisecond = types.PrecisionMillisecond PrecisionMicrosecond = types.PrecisionMicrosecond PrecisionNanosecond = types.PrecisionNanosecond )
ISO precision constants
var ( Cuid = types.Cuid CuidPtr = types.CuidPtr Cuid2 = types.Cuid2 Cuid2Ptr = types.Cuid2Ptr Guid = types.Guid GuidPtr = types.GuidPtr Ulid = types.Ulid UlidPtr = types.UlidPtr Xid = types.Xid XidPtr = types.XidPtr Ksuid = types.Ksuid KsuidPtr = types.KsuidPtr Nanoid = types.Nanoid NanoidPtr = types.NanoidPtr Uuid = types.Uuid UuidPtr = types.UuidPtr Uuidv4 = types.Uuidv4 Uuidv4Ptr = types.Uuidv4Ptr Uuidv6 = types.Uuidv6 Uuidv6Ptr = types.Uuidv6Ptr Uuidv7 = types.Uuidv7 Uuidv7Ptr = types.Uuidv7Ptr JWT = types.JWT JWTPtr = types.JWTPtr )
Unique identifier constructors
var ( Array = types.Array ArrayPtr = types.ArrayPtr Map = types.Map MapPtr = types.MapPtr )
var ( Tuple = types.Tuple TupleWithRest = types.TupleWithRest TuplePtr = types.TuplePtr )
Tuple creates a tuple schema with fixed positional items TypeScript Zod v4 equivalent: z.tuple([...])
Usage:
tuple := gozod.Tuple(gozod.String(), gozod.Int())
result, err := tuple.Parse([]any{"hello", 42})
var ( LooseRecord = types.LooseRecord LooseRecordPtr = types.LooseRecordPtr )
LooseRecord creates a record schema that passes through non-matching keys unchanged. Unlike regular Record which errors on keys that don't match the key schema, LooseRecord preserves non-matching keys without validation.
TypeScript Zod v4 equivalent: z.looseRecord(keySchema, valueSchema)
Example:
// Only validate keys starting with "S_"
schema := LooseRecord(String().Regex(`^S_`), String())
result, _ := schema.Parse(map[string]any{"S_name": "John", "other": 123})
// Result: {"S_name": "John", "other": 123} - "other" key is preserved
var ( Object = types.Object ObjectPtr = types.ObjectPtr StrictObject = types.StrictObject StrictObjectPtr = types.StrictObjectPtr LooseObject = types.LooseObject LooseObjectPtr = types.LooseObjectPtr )
var ( Union = types.Union UnionPtr = types.UnionPtr Xor = types.Xor XorPtr = types.XorPtr XorOf = types.XorOf Intersection = types.Intersection IntersectionPtr = types.IntersectionPtr DiscriminatedUnion = types.DiscriminatedUnion DiscriminatedUnionPtr = types.DiscriminatedUnionPtr )
----------------------------------------------------------------------------- Composite Type Constructors -----------------------------------------------------------------------------
var ( Any = types.Any AnyPtr = types.AnyPtr Unknown = types.Unknown UnknownPtr = types.UnknownPtr Never = types.Never NeverPtr = types.NeverPtr Nil = types.Nil NilPtr = types.NilPtr File = types.File FilePtr = types.FilePtr Function = types.Function FunctionPtr = types.FunctionPtr StringBool = types.StringBool StringBoolPtr = types.StringBoolPtr )
----------------------------------------------------------------------------- Special Type Constructors -----------------------------------------------------------------------------
var ( LazyAny = types.LazyAny LazyPtr = types.LazyPtr )
var ( TreeifyError = issues.TreeifyError PrettifyError = issues.PrettifyError FlattenError = issues.FlattenError FormatError = issues.FormatError )
Re-export TypeScript Zod v4 compatible error formatting functions so that callers can perform common error transformations without depending on the internal package path. These functions match TypeScript Zod's API patterns: z.treeifyError(), z.prettifyError(), z.flattenError()
var ( TreeifyErrorWithMapper = issues.TreeifyErrorWithMapper PrettifyErrorWithFormatter = issues.PrettifyErrorWithFormatter FlattenErrorWithMapper = issues.FlattenErrorWithMapper FlattenErrorWithFormatter = issues.FlattenErrorWithFormatter )
Advanced error formatting functions with custom mappers - these provide additional flexibility while maintaining TypeScript Zod v4 compatibility
var ( ToDotPath = utils.ToDotPath FormatErrorPath = utils.FormatErrorPath )
var ( // ToJSONSchema errors ErrUnsupportedInputType = jsonschema.ErrUnsupportedInputType ErrCircularReference = jsonschema.ErrCircularReference ErrUnrepresentableType = jsonschema.ErrUnrepresentableType ErrSchemaNotObjectOrStruct = jsonschema.ErrSchemaNotObjectOrStruct ErrSliceElementNotSchema = jsonschema.ErrSliceElementNotSchema ErrArrayItemNotSchema = jsonschema.ErrArrayItemNotSchema ErrUnhandledArrayLike = jsonschema.ErrUnhandledArrayLike ErrUnionInvalid = jsonschema.ErrUnionInvalid ErrUnionNoMembers = jsonschema.ErrUnionNoMembers ErrIntersectionInvalid = jsonschema.ErrIntersectionInvalid ErrInvalidEnumSchema = jsonschema.ErrInvalidEnumSchema ErrEnumExtractValues = jsonschema.ErrEnumExtractValues ErrLiteralNoValuesMethod = jsonschema.ErrLiteralNoValuesMethod ErrLiteralUnexpectedReturnValues = jsonschema.ErrLiteralUnexpectedReturnValues ErrExpectedDiscriminatedUnion = jsonschema.ErrExpectedDiscriminatedUnion ErrExpectedRecord = jsonschema.ErrExpectedRecord ErrRecordValueNotSchema = jsonschema.ErrRecordValueNotSchema ErrMapNoMethods = jsonschema.ErrMapNoMethods ErrMapKeyNotSchema = jsonschema.ErrMapKeyNotSchema ErrMapValueNotSchema = jsonschema.ErrMapValueNotSchema // FromJSONSchema errors ErrUnsupportedJSONSchemaType = jsonschema.ErrUnsupportedJSONSchemaType ErrUnsupportedJSONSchemaKeyword = jsonschema.ErrUnsupportedJSONSchemaKeyword ErrInvalidJSONSchema = jsonschema.ErrInvalidJSONSchema ErrJSONSchemaCircularRef = jsonschema.ErrJSONSchemaCircularRef ErrJSONSchemaPatternCompile = jsonschema.ErrJSONSchemaPatternCompile ErrJSONSchemaIfThenElse = jsonschema.ErrJSONSchemaIfThenElse ErrJSONSchemaPatternProperties = jsonschema.ErrJSONSchemaPatternProperties ErrJSONSchemaDynamicRef = jsonschema.ErrJSONSchemaDynamicRef ErrJSONSchemaUnevaluatedProps = jsonschema.ErrJSONSchemaUnevaluatedProps ErrJSONSchemaUnevaluatedItems = jsonschema.ErrJSONSchemaUnevaluatedItems ErrJSONSchemaDependentSchemas = jsonschema.ErrJSONSchemaDependentSchemas ErrJSONSchemaPropertyNames = jsonschema.ErrJSONSchemaPropertyNames ErrJSONSchemaContains = jsonschema.ErrJSONSchemaContains )
JSON Schema conversion error variables re-exported for convenience.
var Describe = checks.Describe
Describe creates a check that registers a description in the global registry. This is a no-op validation check that only attaches metadata when the check is added to a schema.
TypeScript Zod v4 equivalent: z.describe(description)
Example:
schema := gozod.String().Check(gozod.Describe("User email address"))
meta, _ := gozod.GlobalRegistry.Get(schema)
// meta.Description == "User email address"
var FromJSONSchema = jsonschema.FromJSONSchema
FromJSONSchema converts a kaptinlin/jsonschema Schema to a GoZod schema.
Example:
jsonSchema := &lib.Schema{Type: []string{"string"}}
zodSchema, err := gozod.FromJSONSchema(jsonSchema)
var GlobalRegistry = core.GlobalRegistry
GlobalRegistry is the framework-provided, process-wide registry instance. Use it to store shared metadata that should be accessible throughout your application.
var IsZodError = issues.IsZodError
Error utility function
var Meta = checks.Meta
Meta creates a check that registers metadata in the global registry. This is a no-op validation check that only attaches metadata when the check is added to a schema.
TypeScript Zod v4 equivalent: z.meta(metadata)
Example:
schema := gozod.Number().Check(gozod.Meta(gozod.GlobalMeta{
Title: "Age",
Description: "User's age in years",
}))
meta, _ := gozod.GlobalRegistry.Get(schema)
// meta.Title == "Age"
// meta.Description == "User's age in years"
var ToJSONSchema = jsonschema.ToJSONSchema
ToJSONSchema converts a GoZod schema or registry into a JSON Schema instance.
TypeScript Zod v4 equivalent: zodToJsonSchema(schema)
Example:
schema := gozod.Object(gozod.ObjectSchema{
"name": gozod.String().Min(1),
"age": gozod.Int().Min(0),
})
jsonSchema, err := gozod.ToJSONSchema(schema)
Functions ¶
func Apply ¶ added in v0.5.4
Apply integrates external functions into schema chains. It takes a schema and a function that receives the schema and returns a potentially different schema type. This enables modular composition of common validation patterns.
TypeScript Zod v4 equivalent: schema.apply(fn) In Go, this is a standalone generic function due to language constraints.
Example:
// Define a reusable modifier
func addCommonStringChecks[T types.StringConstraint](s *gozod.ZodString[T]) *gozod.ZodString[T] {
return s.Min(1).Max(100).Trim()
}
// Apply it to a schema
schema := gozod.Apply(gozod.String(), addCommonStringChecks)
// Chain with other modifiers
optionalSchema := gozod.Apply(gozod.String(), addCommonStringChecks).Optional()
func FromStruct ¶ added in v0.5.0
FromStruct creates a ZodStruct schema from struct tags This provides convenient tag-based validation for Go structs
Example:
type User struct {
Name string `gozod:"required,min=2,max=50"`
Email string `gozod:"required,email"`
}
schema := gozod.FromStruct[User]()
func FromStructPtr ¶ added in v0.5.0
FromStructPtr creates a ZodStruct schema for pointer types from struct tags This is useful for handling optional/nullable struct inputs
func Lazy ¶
func Lazy[S types.ZodSchemaType](getter func() S, params ...any) *types.ZodLazyTyped[S]
Types ¶
type FlattenedError ¶
type FlattenedError = issues.FlattenedError
type FromJSONSchemaOptions ¶ added in v0.5.4
type FromJSONSchemaOptions = jsonschema.FromJSONSchemaOptions
FromJSONSchemaOptions configures the FromJSONSchema conversion. Re-exported from jsonschema subpackage for convenience.
type GlobalMeta ¶ added in v0.3.1
type GlobalMeta = core.GlobalMeta
GlobalMeta mirrors common JSON-Schema keys and serves as a convenient default metadata structure. Alias to core.GlobalMeta so callers don't need to import the core package.
type IsoDatetimeOptions ¶ added in v0.3.0
type IsoDatetimeOptions = types.IsoDatetimeOptions
----------------------------------------------------------------------------- String Format Types -----------------------------------------------------------------------------
type IsoTimeOptions ¶ added in v0.3.0
type IsoTimeOptions = types.IsoTimeOptions
----------------------------------------------------------------------------- String Format Types -----------------------------------------------------------------------------
type JSONSchemaOptions ¶ added in v0.3.1
type JSONSchemaOptions = jsonschema.Options
JSONSchemaOptions configures the ToJSONSchema conversion. Re-exported from jsonschema subpackage for convenience.
type JWTOptions ¶ added in v0.3.0
type JWTOptions = types.JWTOptions
----------------------------------------------------------------------------- String Format Types -----------------------------------------------------------------------------
type MessageFormatter ¶ added in v0.3.0
type MessageFormatter = issues.MessageFormatter
type OverrideContext ¶ added in v0.3.1
type OverrideContext = jsonschema.OverrideContext
OverrideContext provides context for the Override function in JSON Schema conversion. Re-exported from jsonschema subpackage for convenience.
type Registry ¶ added in v0.3.1
Registry provides a lightweight, type-safe store for attaching metadata to any Schema. This is an alias to core.Registry to make the API available via the primary gozod package.
Example:
fieldReg := gozod.NewRegistry[FieldMeta]()
fieldReg.Add(nameSchema, FieldMeta{Title: "User Name"})
See docs/metadata.md for usage patterns and best practices.
func NewRegistry ¶ added in v0.3.1
NewRegistry creates an empty Registry. It's a thin wrapper around core.NewRegistry to expose the constructor at the root package level.
type StructSchema ¶ added in v0.2.0
type StructSchema = core.StructSchema
Schema and configuration aliases
type URLOptions ¶ added in v0.3.0
type URLOptions = types.URLOptions
----------------------------------------------------------------------------- String Format Types -----------------------------------------------------------------------------
type ZodAny ¶
----------------------------------------------------------------------------- Special Types -----------------------------------------------------------------------------
type ZodArray ¶
----------------------------------------------------------------------------- Collection Types -----------------------------------------------------------------------------
type ZodBase64 ¶ added in v0.3.0
type ZodBase64[T types.StringConstraint] = types.ZodBase64[T]
----------------------------------------------------------------------------- String Format Types -----------------------------------------------------------------------------
type ZodBase64URL ¶ added in v0.3.0
type ZodBase64URL[T types.StringConstraint] = types.ZodBase64URL[T]
----------------------------------------------------------------------------- String Format Types -----------------------------------------------------------------------------
type ZodBool ¶
type ZodBool[T types.BoolConstraint] = types.ZodBool[T]
----------------------------------------------------------------------------- Primitive Types -----------------------------------------------------------------------------
type ZodCIDRv4 ¶
type ZodCIDRv4[T types.StringConstraint] = types.ZodCIDRv4[T]
----------------------------------------------------------------------------- String Format Types -----------------------------------------------------------------------------
type ZodCIDRv6 ¶
type ZodCIDRv6[T types.StringConstraint] = types.ZodCIDRv6[T]
----------------------------------------------------------------------------- String Format Types -----------------------------------------------------------------------------
type ZodCUID ¶ added in v0.3.0
type ZodCUID[T types.StringConstraint] = types.ZodCUID[T]
Unique identifier formats
type ZodCUID2 ¶ added in v0.3.0
type ZodCUID2[T types.StringConstraint] = types.ZodCUID2[T]
----------------------------------------------------------------------------- String Format Types -----------------------------------------------------------------------------
type ZodComplex ¶
type ZodComplex[T types.ComplexConstraint] = types.ZodComplex[T]
----------------------------------------------------------------------------- Primitive Types -----------------------------------------------------------------------------
type ZodDiscriminatedUnion ¶
type ZodDiscriminatedUnion[T any, R any] = types.ZodDiscriminatedUnion[T, R]
----------------------------------------------------------------------------- Composite Types -----------------------------------------------------------------------------
type ZodE164 ¶ added in v0.5.4
type ZodE164[T types.StringConstraint] = types.ZodE164[T]
----------------------------------------------------------------------------- String Format Types -----------------------------------------------------------------------------
type ZodEmail ¶ added in v0.3.0
type ZodEmail[T types.EmailConstraint] = types.ZodEmail[T]
Standard formats
type ZodEmoji ¶ added in v0.3.0
type ZodEmoji[T types.StringConstraint] = types.ZodEmoji[T]
----------------------------------------------------------------------------- String Format Types -----------------------------------------------------------------------------
type ZodEnum ¶
type ZodEnum[T comparable, R any] = types.ZodEnum[T, R]
----------------------------------------------------------------------------- Special Types -----------------------------------------------------------------------------
func Enum ¶
func Enum[T comparable](values ...T) *ZodEnum[T, T]
func EnumMap ¶
func EnumMap[T comparable](entries map[string]T, params ...any) *ZodEnum[T, T]
func EnumMapPtr ¶ added in v0.3.0
func EnumMapPtr[T comparable](entries map[string]T, params ...any) *ZodEnum[T, *T]
func EnumPtr ¶ added in v0.3.0
func EnumPtr[T comparable](values ...T) *ZodEnum[T, *T]
func EnumSlice ¶
func EnumSlice[T comparable](values []T) *ZodEnum[T, T]
func EnumSlicePtr ¶ added in v0.3.0
func EnumSlicePtr[T comparable](values []T) *ZodEnum[T, *T]
type ZodErrorTree ¶
type ZodErrorTree = issues.ZodErrorTree
type ZodFile ¶
----------------------------------------------------------------------------- Special Types -----------------------------------------------------------------------------
type ZodFloat ¶
type ZodFloat[T types.FloatConstraint, R any] = types.ZodFloat[T, R]
----------------------------------------------------------------------------- Primitive Types -----------------------------------------------------------------------------
type ZodFormattedError ¶
type ZodFormattedError = issues.ZodFormattedError
type ZodFunction ¶
type ZodFunction[T types.FunctionConstraint] = types.ZodFunction[T]
----------------------------------------------------------------------------- Special Types -----------------------------------------------------------------------------
type ZodGUID ¶ added in v0.5.5
type ZodGUID[T types.StringConstraint] = types.ZodGUID[T]
----------------------------------------------------------------------------- String Format Types -----------------------------------------------------------------------------
type ZodHex ¶ added in v0.5.4
type ZodHex[T types.StringConstraint] = types.ZodHex[T]
----------------------------------------------------------------------------- String Format Types -----------------------------------------------------------------------------
type ZodHostname ¶ added in v0.5.4
type ZodHostname[T types.StringConstraint] = types.ZodHostname[T]
----------------------------------------------------------------------------- String Format Types -----------------------------------------------------------------------------
type ZodIPv6 ¶
type ZodIPv6[T types.StringConstraint] = types.ZodIPv6[T]
----------------------------------------------------------------------------- String Format Types -----------------------------------------------------------------------------
type ZodInteger ¶
type ZodInteger[T types.IntegerConstraint, R any] = types.ZodInteger[T, R]
----------------------------------------------------------------------------- Primitive Types -----------------------------------------------------------------------------
type ZodIntersection ¶
type ZodIntersection[T any, R any] = types.ZodIntersection[T, R]
----------------------------------------------------------------------------- Composite Types -----------------------------------------------------------------------------
type ZodJWT ¶ added in v0.3.0
type ZodJWT[T types.StringConstraint] = types.ZodJWT[T]
----------------------------------------------------------------------------- String Format Types -----------------------------------------------------------------------------
type ZodKSUID ¶ added in v0.3.0
type ZodKSUID[T types.StringConstraint] = types.ZodKSUID[T]
----------------------------------------------------------------------------- String Format Types -----------------------------------------------------------------------------
type ZodLazy ¶
type ZodLazy[T types.LazyConstraint] = types.ZodLazy[T]
----------------------------------------------------------------------------- Special Types -----------------------------------------------------------------------------
type ZodLiteral ¶
type ZodLiteral[T comparable, R any] = types.ZodLiteral[T, R]
----------------------------------------------------------------------------- Special Types -----------------------------------------------------------------------------
func Literal ¶
func Literal[T comparable](value T, params ...any) *ZodLiteral[T, T]
func LiteralOf ¶ added in v0.3.0
func LiteralOf[T comparable](values []T, params ...any) *ZodLiteral[T, T]
func LiteralPtr ¶ added in v0.3.0
func LiteralPtr[T comparable](value T, params ...any) *ZodLiteral[T, *T]
func LiteralPtrOf ¶ added in v0.3.0
func LiteralPtrOf[T comparable](values []T, params ...any) *ZodLiteral[T, *T]
type ZodMAC ¶ added in v0.5.4
type ZodMAC[T types.StringConstraint] = types.ZodMAC[T]
----------------------------------------------------------------------------- String Format Types -----------------------------------------------------------------------------
type ZodMap ¶
----------------------------------------------------------------------------- Collection Types -----------------------------------------------------------------------------
type ZodNanoID ¶ added in v0.3.0
type ZodNanoID[T types.StringConstraint] = types.ZodNanoID[T]
----------------------------------------------------------------------------- String Format Types -----------------------------------------------------------------------------
type ZodNever ¶
----------------------------------------------------------------------------- Special Types -----------------------------------------------------------------------------
type ZodNil ¶
----------------------------------------------------------------------------- Special Types -----------------------------------------------------------------------------
type ZodObject ¶
----------------------------------------------------------------------------- Collection Types -----------------------------------------------------------------------------
type ZodRecord ¶
----------------------------------------------------------------------------- Collection Types -----------------------------------------------------------------------------
type ZodRefineFn ¶ added in v0.3.0
type ZodRefineFn[T any] = core.ZodRefineFn[T]
Validation check aliases
type ZodSet ¶ added in v0.5.5
type ZodSet[T comparable, R any] = types.ZodSet[T, R]
----------------------------------------------------------------------------- Collection Types -----------------------------------------------------------------------------
func Set ¶ added in v0.5.5
func Set[T comparable](valueSchema any, paramArgs ...any) *ZodSet[T, map[T]struct{}]
Set creates a set schema with element validation (returns value constraint). In Go, sets are represented as map[T]struct{} where T must be comparable. TypeScript Zod v4 equivalent: z.set(schema)
Example:
schema := Set[string](String())
result, _ := schema.Parse(map[string]struct{}{"a": {}, "b": {}})
func SetPtr ¶ added in v0.5.5
func SetPtr[T comparable](valueSchema any, paramArgs ...any) *ZodSet[T, *map[T]struct{}]
SetPtr creates a set schema with pointer constraint (returns pointer constraint).
type ZodSlice ¶
----------------------------------------------------------------------------- Collection Types -----------------------------------------------------------------------------
type ZodString ¶
type ZodString[T types.StringConstraint] = types.ZodString[T]
----------------------------------------------------------------------------- Primitive Types -----------------------------------------------------------------------------
type ZodStringBool ¶
type ZodStringBool[T types.StringBoolConstraint] = types.ZodStringBool[T]
----------------------------------------------------------------------------- Special Types -----------------------------------------------------------------------------
type ZodStruct ¶
----------------------------------------------------------------------------- Collection Types -----------------------------------------------------------------------------
type ZodTime ¶ added in v0.3.0
type ZodTime[T types.TimeConstraint] = types.ZodTime[T]
----------------------------------------------------------------------------- Primitive Types -----------------------------------------------------------------------------
type ZodTuple ¶ added in v0.5.4
----------------------------------------------------------------------------- Collection Types -----------------------------------------------------------------------------
type ZodULID ¶ added in v0.3.0
type ZodULID[T types.StringConstraint] = types.ZodULID[T]
----------------------------------------------------------------------------- String Format Types -----------------------------------------------------------------------------
type ZodURL ¶ added in v0.3.0
type ZodURL[T types.StringConstraint] = types.ZodURL[T]
----------------------------------------------------------------------------- String Format Types -----------------------------------------------------------------------------
type ZodUUID ¶ added in v0.3.0
type ZodUUID[T types.StringConstraint] = types.ZodUUID[T]
----------------------------------------------------------------------------- String Format Types -----------------------------------------------------------------------------
type ZodUnion ¶
----------------------------------------------------------------------------- Composite Types -----------------------------------------------------------------------------
type ZodUnknown ¶
type ZodUnknown[T any, R any] = types.ZodUnknown[T, R]
----------------------------------------------------------------------------- Special Types -----------------------------------------------------------------------------
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
gozodgen
command
Package main implements the gozodgen code generation tool.
|
Package main implements the gozodgen code generation tool. |
|
Package coerce provides constructors that enable automatic type coercion before validation.
|
Package coerce provides constructors that enable automatic type coercion before validation. |
|
Package core provides the foundation contracts for the gozod validation library, including interfaces, types, and constants used throughout the system.
|
Package core provides the foundation contracts for the gozod validation library, including interfaces, types, and constants used throughout the system. |
|
examples
|
|
|
advanced_lazy
command
|
|
|
circular_references
command
|
|
|
code_generation
command
Package main demonstrates GoZod code generation for zero-overhead struct tag validation.
|
Package main demonstrates GoZod code generation for zero-overhead struct tag validation. |
|
coerce
command
|
|
|
config
command
|
|
|
error_handling
command
|
|
|
format
command
|
|
|
i18n
command
|
|
|
intersection
command
|
|
|
object
command
|
|
|
primitive
command
|
|
|
quickstart
command
|
|
|
struct_tags
command
Package main demonstrates GoZod struct tag validation usage This example covers the most important features in a simple, practical way.
|
Package main demonstrates GoZod struct tag validation usage This example covers the most important features in a simple, practical way. |
|
union
command
|
|
|
internal
|
|
|
checks
Package checks provides validation check factories for the GoZod validation library.
|
Package checks provides validation check factories for the GoZod validation library. |
|
utils
Package utils provides internal utility functions for the gozod validation library, including error map conversion, parameter normalization, value origin detection, value comparison, and error path formatting.
|
Package utils provides internal utility functions for the gozod validation library, including error map conversion, parameter normalization, value origin detection, value comparison, and error path formatting. |
|
Package locales provides pre-configured error message formatters for different languages.
|
Package locales provides pre-configured error message formatters for different languages. |
|
pkg
|
|
|
coerce
Package coerce provides type coercion utilities for converting values between different Go types with proper error handling and overflow detection.
|
Package coerce provides type coercion utilities for converting values between different Go types with proper error handling and overflow detection. |
|
mapx
Package mapx provides type-safe utility functions for working with Go maps.
|
Package mapx provides type-safe utility functions for working with Go maps. |
|
reflectx
Package reflectx provides reflection utilities for type checking and value manipulation.
|
Package reflectx provides reflection utilities for type checking and value manipulation. |
|
regex
Package regex provides pre-compiled regular expressions for common data formats.
|
Package regex provides pre-compiled regular expressions for common data formats. |
|
slicex
Package slicex provides utility functions for working with Go slices.
|
Package slicex provides utility functions for working with Go slices. |
|
structx
Package structx converts between Go structs and map[string]any.
|
Package structx converts between Go structs and map[string]any. |
|
tagparser
Package tagparser provides shared tag parsing functionality for GoZod.
|
Package tagparser provides shared tag parsing functionality for GoZod. |
|
transform
Package transform provides string and data transformation utilities such as slugifying strings for URL-friendly formats.
|
Package transform provides string and data transformation utilities such as slugifying strings for URL-friendly formats. |
|
validate
Package validate provides validation functions for various data types and formats.
|
Package validate provides validation functions for various data types and formats. |
|
Package types provides public schema implementations for all validation types supported by gozod, with one type per file following a consistent structure.
|
Package types provides public schema implementations for all validation types supported by gozod, with one type per file following a consistent structure. |