July 14, 2024 zod
Cara Cek Konfirmasi Password Menggunakan Zod
Pada form yang terdapat input password biasanya disertakan juga konfirmasi password yang harus sama dengan password untuk memastikan kesalahan saat memasukkan password.
Untuk mengecek konfrimasi password menggunakan zod, anda bisa menggunakan method refine
.
import { z } from "zod"
const registerSchema = z
.object({
password: z.string().min(4),
password_confirmation: z.string().min(4)
})
.refine(data => data.password === data.password_confirmation, {
message: 'Password dont match',
path: ['password_confirmation']
})
registerSchema.safeParse({
password: 'password',
password_confirmation: 'doengg'
}) // success: false, error [ { ... } ]
registerSchema.safeParse({
password: 'password',
password_confirmation: 'password'
}) // success: true, data { ... }
Method refine
menerima parameter pertama berupa fungsi yang mengembalikan boolean yang menandakan validasi berhasil atau tidak.
Fungsi untuk dikirim ke refine
akan dipanggil dengan argumen pertama berisi objek dari input yang sedang divalidasi.
Jadi untuk mengecek konfirmasi password tambahkan method refine
dengan mengirimkan fungsi yang mengecek apakah properti password
sama dengan dengan password_confirmation
.
Sumber : https://github.com/colinhacks/zod?tab=readme-ov-file#refine