The Ultimate Zod Utility for Iranian Data

Validation for national code, bank cards, Sheba, bills, license plates, etc. Lightweight • Zero Dependencies • Type-safe.

Installation

Terminal
bash
npm install zod zod-ir

Why zod-ir?

Building forms for Iranian applications often involves validating specific local data structures. zod-ir seamlessly integrates these validations into Zod.

Comprehensive Form Example

A complete registration form handling auto-fix (Persian digits via preprocessNumber), Mobile, Financial, and Utility validations all in one schema.

comprehensive-schema.ts
typescript
import * as z from 'zod';
import {
  zMelliCode,
  zIranianMobile,
  zCardNumber,
  zBillId,
  zPaymentId,
  zPlateNumber,
  preprocessNumber,
} from 'zod-ir';

const RegistrationSchema = z.object({
  nationalCode: preprocessNumber(zMelliCode()),
  mobile: zIranianMobile({ strictZero: true }),
  card: zCardNumber(),
  plate: zPlateNumber(),
  billId: zBillId(),
  paymentId: zPaymentId(),
});
Raw Input
۱۲۳۴۵۶۷۸۹۰
Z
Parsed Data
"1234567890"