![Create React App Officially Deprecated Amid React 19 Compatibility Issues](https://cdn.sanity.io/images/cgdhsj6q/production/04fa08cf844d798abc0e1a6391c129363cc7e2ab-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Create React App Officially Deprecated Amid React 19 Compatibility Issues
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
github.com/gobuffalo/validate/v3
This package provides a framework for writing validations for Go applications. It does provide you with few validators, but if you need others you can easly build them.
$ go get github.com/gobuffalo/validate
Using validate is pretty easy, just define some Validator
objects and away you go.
Here is a pretty simple example:
package main
import (
"log"
v "github.com/gobuffalo/validate"
)
type User struct {
Name string
Email string
}
func (u *User) IsValid(errors *v.Errors) {
if u.Name == "" {
errors.Add("name", "Name must not be blank!")
}
if u.Email == "" {
errors.Add("email", "Email must not be blank!")
}
}
func main() {
u := User{Name: "", Email: ""}
errors := v.Validate(&u)
log.Println(errors.Errors)
// map[name:[Name must not be blank!] email:[Email must not be blank!]]
}
In the previous example I wrote a single Validator
for the User
struct. To really get the benefit of using go-validator, as well as the Go language, I would recommend creating distinct validators for each thing you want to validate, that way they can be run concurrently.
package main
import (
"fmt"
"log"
"strings"
v "github.com/gobuffalo/validate"
)
type User struct {
Name string
Email string
}
type PresenceValidator struct {
Field string
Value string
}
func (v *PresenceValidator) IsValid(errors *v.Errors) {
if v.Value == "" {
errors.Add(strings.ToLower(v.Field), fmt.Sprintf("%s must not be blank!", v.Field))
}
}
func main() {
u := User{Name: "", Email: ""}
errors := v.Validate(&PresenceValidator{"Email", u.Email}, &PresenceValidator{"Name", u.Name})
log.Println(errors.Errors)
// map[name:[Name must not be blank!] email:[Email must not be blank!]]
}
That's really it. Pretty simple and straight-forward Just a nice clean framework for writing your own validators. Use in good health.
To make it even simpler, this package has a children package with some nice built-in validators.
package main
import (
"log"
"github.com/gobuffalo/validate"
"github.com/gobuffalo/validate/validators"
)
type User struct {
Name string
Email string
}
func main() {
u := User{Name: "", Email: ""}
errors := validate.Validate(
&validators.EmailIsPresent{Name: "Email", Field: u.Email, Message: "Mail is not in the right format."},
&validators.StringIsPresent{Field: u.Name, Name: "Name"},
)
log.Println(errors.Errors)
// map[name:[Name can not be blank.] email:[Mail is not in the right format.]]
}
All fields are required for each validators, except Message (every validator has a default error message).
A full list of available validators can be found at https://pkg.go.dev/github.com/gobuffalo/validate/v3/validators.
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.