Zod क्या है?
Zod TypeScript में लिखी गई डेटा की घोषणात्मक मान्यता (declarative validation) और पार्सिंग के लिए एक लाइब्रेरी है। यह डेटा स्कीमा (स्कीमा — टाइपों का सख्त विवरण) का वर्णन करने और किसी भी ऑब्जेक्ट, स्ट्रिंग, संख्या आदि की उनके अनुरूपता की जाँच करने की अनुमति देती है। Zod की मुख्य विशेषता TypeScript के साथ पूर्ण एकीकरण है: स्कीमा के आधार पर टाइप स्वचालित रूप से अनुमानित होते हैं, जो परिभाषाओं के दोहराव को समाप्त करता है।
डेटा मान्यता (Data Validation) की आवश्यकता क्यों है?
वास्तविक अनुप्रयोगों में, डेटा अक्सर बाहरी स्रोतों (API, फॉर्म, कॉन्फ़िगरेशन फ़ाइलें, localStorage) से आता है। मान्यता के बिना, बग, XSS-हमले या अप्रत्याशित व्यवहार प्राप्त करना आसान है। Zod गारंटी देता है कि डेटा अपेक्षित संरचना के अनुरूप है, और यदि कुछ गलत है तो स्पष्ट त्रुटियाँ फेंकता है।
स्थापना (Installation)
npm install zodलाइब्रेरी को किसी अतिरिक्त सेटअप की आवश्यकता नहीं है और यह Node.js और ब्राउज़र (bundler के साथ) दोनों में काम करती है।
मुख्य कार्य (Main Functions)
- स्कीमा बनाना:
z.string(),z.number(),z.object(),z.array()आदि। - पार्सिंग और मान्यता: विधि
.parse()डेटा लौटाती है या त्रुटि फेंकती है;.safeParse()success/data/error फ़ील्ड वाला एक ऑब्जेक्ट लौटाता है। - रूपांतरण (Transformation):
.transform()सफल जाँच के बाद डेटा को बदलने की अनुमति देता है। - Refine:
.refine()के साथ कस्टम जाँच। - टाइप अनुमान (Type Inference):
z.infer<typeof schema>एक TypeScript-टाइप उत्पन्न करता है।
TypeScript पर कोड उदाहरण
import { z } from 'zod';
// उपयोगकर्ता के लिए स्कीमा परिभाषित करेंconst UserSchema = z.object({ id: z.number().int().positive(), name: z.string().min(2).max(50), email: z.string().email(), age: z.number().min(18).max(120).optional(), role: z.enum(['admin', 'user', 'guest'])});
// स्कीमा के आधार पर टाइप आउटपुट करेंtype User = z.infer<typeof UserSchema>;
// सुरक्षित मान्यता के लिए safeParse का उपयोग करेंconst rawData = { id: 1, name: 'Анна', email: 'anna@example.com', age: 25, role: 'admin'};
const result = UserSchema.safeParse(rawData);if (result.success) { console.log('डेटा मान्य है:', result.data);} else { console.error('त्रुटियाँ:', result.error.errors);}Zod का उपयोग कब करें
Zod इसके लिए आदर्श है:
- API इनपुट डेटा की मान्यता (उदाहरण के लिए, Express या Next.js में)।
- क्लाइंट और सर्वर पर फॉर्म से डेटा की जाँच करना।
- एनवायरनमेंट वेरिएबल्स को पार्स करना (
dotenv+ Zod)। - कॉन्फ़िगरेशन फ़ाइलों (JSON/YAML) के साथ काम करना।
- डायनामिक डेटा के लिए सख्त टाइप बनाना।
TypeScript के पूर्ण समर्थन के कारण, Zod कोड को अधिक सुरक्षित और पढ़ने योग्य बनाता है, टाइप और वास्तविक डेटा के बीच डीसिंक्रनाइज़ेशन को समाप्त करता है।