Lewati ke konten

Zod, Valibot, dan validator

nusaindex/zod dan nusaindex/valibot mengekspor fungsi pembuat yang sama. Zod (^4) dan Valibot (^1) adalah peer dependency opsional, jadi pasang yang kamu pakai saja.

Fungsi Menerima Hasil
nik() NIK String input, tidak diubah
npwp() NPWP 15 atau 16 digit, atau NITKU String input, tidak diubah
phone() Nomor telepon String input, tidak diubah
nip() NIP String input, tidak diubah
nisn() NISN String input, tidak diubah
plate() Plat nomor String input, tidak diubah
rupiah() Teks Rupiah seperti Rp 25.000,- number dalam rupiah

Skema nomor identitas cuma memvalidasi tanpa mengubah nilai. Kamu yang memutuskan mau menyimpan nilai asli atau yang sudah dinormalisasi (nik.format, phone.format). Setiap fungsi menerima { message }. Pesan error tidak pernah memuat input. Issue Zod membawa kode error NusaIndex di params.nusaindex.

import { z } from "zod";
import * as id from "nusaindex/zod";
const Customer = z.object({
nik: id.nik({ message: "NIK tidak valid" }),
phone: id.phone(),
deposit: id.rupiah(),
});
const result = Customer.safeParse(form);

NusaIndex tidak bergantung pada library validasi mana pun. Daftarkan fungsi Valid yang kamu butuhkan:

validate := validator.New()
_ = validate.RegisterValidation("nik", func(fl validator.FieldLevel) bool {
return nik.Valid(fl.Field().String())
})
_ = validate.RegisterValidation("phone_id", func(fl validator.FieldLevel) bool {
return phone.Valid(fl.Field().String())
})
type Customer struct {
NIK string `validate:"required,nik"`
Phone string `validate:"required,phone_id"`
}