Oh MyUtils

.env संपादक - पर्यावरण फ़ाइलें पार्स, सत्यापित, तुलना और कन्वर्ट करें ऑनलाइन

.env फ़ाइलों को पार्स, सत्यापित, तुलना और कन्वर्ट करें। सिंटैक्स जांच, साइड-बाय-साइड diff, और .env/JSON/YAML/Docker Compose के बीच प्रारूप रूपांतरण — 100% क्लाइंट-साइड।

.env सामग्री

अक्सर पूछे जाने वाले प्रश्न

.env फ़ाइल संपादक क्या है?

.env फ़ाइल संपादक एक ऑनलाइन टूल है जो डेवलपर्स को .env (dotenv) फ़ाइलों को पार्स, सत्यापित, संपादित, सॉर्ट, तुलना और कन्वर्ट करने में मदद करता है। यह टूल सिंटैक्स सत्यापन, अल्फ़ाबेटिकल सॉर्टिंग, साइड-बाय-साइड तुलना और .env/JSON/YAML/Docker Compose के बीच फ़ॉर्मेट रूपांतरण प्रदान करता है — सब कुछ 100% आपके ब्राउज़र में चलता है।

इस .env संपादक का उपयोग कैसे करें?

1. संपादन टैब: अपनी .env फ़ाइल की सामग्री पेस्ट करें। 2. तुलना टैब: दो .env फ़ाइलें साइड-बाय-साइड पैनल में पेस्ट करें। 3. रूपांतरण टैब: किसी भी समर्थित प्रारूप में सामग्री पेस्ट करें और आउटपुट प्रारूप चुनें।

क्या मेरा डेटा सुरक्षित है?

आपका डेटा 100% सुरक्षित है और कभी भी आपके ब्राउज़र को नहीं छोड़ता। सभी प्रोसेसिंग पूरी तरह से क्लाइंट-साइड JavaScript में होती है।

यह टूल कौन से सत्यापन जांच करता है?

सत्यापनकर्ता जांच करता है: (1) अमान्य चर नाम। (2) अनुपलब्ध विभाजक। (3) डुप्लिकेट कुंजियां। (4) खाली मान। (5) बंद न किए गए उद्धरण चिह्न।

.env फ़ाइल तुलना कैसे काम करती है?

तुलना टूल दो .env फ़ाइलों का विश्लेषण करता है और प्रत्येक चर को चार समूहों में वर्गीकृत करता है: केवल फ़ाइल A में (लाल), केवल फ़ाइल B में (हरा), भिन्न मान (पीला), और समान (ग्रे)।

किन प्रारूपों के बीच रूपांतरण कर सकते हैं?

.env, JSON, YAML और Docker Compose environment के बीच द्विदिशात्मक रूपांतरण का समर्थन करता है।

क्या मैं अपनी .env फ़ाइल को अल्फ़ाबेटिकल क्रम में सॉर्ट कर सकता हूँ?

हां, सॉर्ट सुविधा सभी चरों को कुंजी नाम से अल्फ़ाबेटिकल क्रम (A-Z या Z-A) में व्यवस्थित करती है। टिप्पणियां संरक्षित रहती हैं।

कोड उदाहरण

// .env File Parser, Validator, and Converter

function parseEnv(content) {
  const lines = content.split('\n');
  const entries = [];
  const errors = [];
  const warnings = [];
  const seen = new Map();

  for (let i = 0; i < lines.length; i++) {
    const lineNum = i + 1;
    const raw = lines[i];
    const trimmed = raw.trim();

    if (!trimmed || trimmed.startsWith('#')) continue;

    const eqIdx = trimmed.indexOf('=');
    if (eqIdx === -1) {
      errors.push({ line: lineNum, message: "Missing '=' separator" });
      continue;
    }

    const key = trimmed.slice(0, eqIdx).trim();
    let value = trimmed.slice(eqIdx + 1);

    if (!key) {
      errors.push({ line: lineNum, message: 'Empty key name' });
      continue;
    }
    if (!/^[A-Za-z_]\w*$/.test(key)) {
      errors.push({ line: lineNum, message: `Invalid name "${key}"` });
      continue;
    }

    // Handle quoted values
    if (value.startsWith('"') && value.endsWith('"')) {
      value = value.slice(1, -1).replace(/\\n/g, '\n');
    } else if (value.startsWith("'") && value.endsWith("'")) {
      value = value.slice(1, -1);
    } else {
      const commentIdx = value.indexOf(' #');
      if (commentIdx !== -1) value = value.slice(0, commentIdx);
      value = value.trim();
    }

    if (seen.has(key)) {
      warnings.push({ line: lineNum, message: `Duplicate key "${key}"` });
    }
    seen.set(key, lineNum);
    entries.push({ key, value, line: lineNum });
  }

  return { entries, errors, warnings };
}

function envToJson(entries, indent = 2) {
  const obj = {};
  for (const { key, value } of entries) obj[key] = value;
  return JSON.stringify(obj, null, indent);
}

function diffEnv(entriesA, entriesB) {
  const mapA = new Map(entriesA.map(e => [e.key, e.value]));
  const mapB = new Map(entriesB.map(e => [e.key, e.value]));
  const onlyInA = [], onlyInB = [], different = [], identical = [];

  for (const [key, valA] of mapA) {
    if (!mapB.has(key)) onlyInA.push(key);
    else if (mapB.get(key) !== valA) different.push({ key, valueA: valA, valueB: mapB.get(key) });
    else identical.push(key);
  }
  for (const key of mapB.keys()) {
    if (!mapA.has(key)) onlyInB.push(key);
  }
  return { onlyInA, onlyInB, different, identical };
}

// Usage
const result = parseEnv('DB_HOST=localhost\nDB_PORT=5432\nAPI_KEY=sk_live_abc');
console.log('Entries:', result.entries.length);
console.log('JSON:', envToJson(result.entries));

संबंधित उपकरण