TypeScript में YAML के साथ कार्य: पार्सिंग और सीरियलाइज़ेशन के लिए पूर्ण गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

TypeScript में YAML के साथ कार्य: पार्सिंग, सीरियलाइज़ेशन और व्यावहारिक उदाहरण



YAML (YAML Ain't Markup Language) एक लोकप्रिय डेटा सीरियलाइज़ेशन फ़ॉर्मेट है, जिसका उपयोग अक्सर कॉन्फ़िगरेशन फ़ाइलों, API विवरण और संरचित डेटा को संग्रहीत करने के लिए किया जाता है। TypeScript इकोसिस्टम में YAML के साथ काम करने के लिए कई विश्वसनीय टूल मौजूद हैं। इस लेख में हम js-yaml लाइब्रेरी के बारे में विस्तार से जानेंगे, जो TypeScript प्रोजेक्ट्स में YAML को पार्स और सीरियलाइज़ करने के लिए डी-फैक्टो मानक है।



इंस्टॉलेशन और सेटअप



शुरू करने के लिए, js-yaml लाइब्रेरी और इसके TypeScript टाइपिंग्स को इंस्टॉल करना आवश्यक है:



npm install js-yamlnpm install --save-dev @types/js-yaml


इंस्टॉलेशन के बाद, आप लाइब्रेरी को अपने प्रोजेक्ट में इम्पोर्ट कर सकते हैं:



import * as yaml from 'js-yaml';import * as fs from 'fs';


js-yaml लाइब्रेरी की मुख्य क्षमताएँ



  • YAML को TypeScript ऑब्जेक्ट्स में पार्स करना — YAML स्ट्रिंग को टाइप की गई डेटा संरचनाओं में बदलना
  • ऑब्जेक्ट्स का YAML में सीरियलाइज़ेशन — TypeScript ऑब्जेक्ट्स का YAML फ़ॉर्मेट में उल्टा रूपांतरण
  • कस्टम टाइप्स के लिए समर्थन — अपने स्वयं के YAML टैग परिभाषित करने की क्षमता
  • स्कीमा वैलिडेशन — YAML दस्तावेज़ की संरचना की शुद्धता की जाँच
  • फ़ाइलों के साथ कार्य — Node.js के माध्यम से YAML फ़ाइलों को पढ़ना और लिखना


TypeScript में YAML पार्सिंग



js-yaml लाइब्रेरी पार्सिंग के लिए दो मुख्य विधियाँ प्रदान करती है: yaml.load() और yaml.safeLoad()। संभावित रूप से खतरनाक कोड के निष्पादन को रोकने के लिए safeLoad() का उपयोग करने की अनुशंसा की जाती है:



import * as yaml from 'js-yaml';

const yamlString = `name: PythonLibversion: 1.0.0features: - parsing - serialization - validationmetadata: author: Developer created: 2024-01-15`;

interface Config { name: string; version: string; features: string[]; metadata: { author: string; created: string; };}

const config: Config = yaml.load(yamlString) as Config;console.log(config.name); // PythonLibconsole.log(config.features); // ['parsing', 'serialization', 'validation']


ऑब्जेक्ट्स का YAML में सीरियलाइज़ेशन



TypeScript ऑब्जेक्ट को वापस YAML में बदलने के लिए yaml.dump() विधि का उपयोग किया जाता है:



import * as yaml from 'js-yaml';

interface ServerConfig { host: string; port: number; ssl: boolean; paths: { static: string; uploads: string; };}

const serverConfig: ServerConfig = { host: 'localhost', port: 3000, ssl: false, paths: { static: './public', uploads: './uploads' }};

const yamlOutput = yaml.dump(serverConfig, { indent: 2, lineWidth: 80, noRefs: true});

console.log(yamlOutput);/*host: localhostport: 3000ssl: falsepaths: static: ./public uploads: ./uploads*/


Node.js में YAML फ़ाइलों के साथ कार्य



अक्सर बाहरी YAML फ़ाइल से कॉन्फ़िगरेशन लोड करने की आवश्यकता होती है। fs मॉड्यूल का उपयोग करके इसे कैसे करें:



import * as yaml from 'js-yaml';import * as fs from 'fs';import * as path from 'path';

interface DatabaseConfig { host: string; port: number; database: string; username: string; password: string;}

function loadYamlConfig<T>(filePath: string): T { try { const fileContent = fs.readFileSync(path.resolve(filePath), 'utf8'); return yaml.load(fileContent) as T; } catch (error) { console.error(`YAML फ़ाइल लोड करने में त्रुटि: ${filePath}`, error); throw error; }}

// उपयोगconst dbConfig = loadYamlConfig<DatabaseConfig>('./config/database.yaml');console.log(`${dbConfig.host}:${dbConfig.port}/${dbConf से कनेक्ट हो रहा है`);

अनुशंसाएँ