devkits-env-editor
v1.0.7
Published
Parse, validate, and manipulate .env files. Compare .env with .env.example. Convert to JSON/YAML. Zero-dependency .env utility.
Maintainers
Readme
@devkits/env-editor
Parse, validate, and manipulate .env files. Compare .env with .env.example. Convert to JSON/YAML. Zero-dependency .env utility.
💰 Support DevKits
Love these tools? Support development via Open Collective
- $5/mo - Supporter (priority support)
- $9/mo - Pro (early access to new tools)
- $29 - Lifetime (all current + future Pro features)
💎 Upgrade to DevKits Pro
Get access to 20+ premium tools including SQL to Code, Data Faker, JWT Generator, and more — all for $9 one-time.
💡 Pay with Crypto: BTC, ETH, USDT (TRC-20), SOL accepted. View crypto addresses
🧰 DevKits Pro Tools
This package is part of DevKits — 82+ free developer tools. The online .env Editor supports encryption, Docker integration, and team sharing.
Installation
npm install @devkits/env-editorUsage
const {
parse,
validate,
sort,
removeDuplicates,
toJSON,
toYAML,
toDocker,
mask,
generateExample,
compare
} = require('@devkits/env-editor');
const envContent = `
# Database config
DATABASE_URL=postgresql://user:pass@localhost:5432/mydb
SECRET_KEY=my-secret-key
PORT=3000
# Duplicate example
PORT=3001
`;
// Parse .env content
const { vars, errors } = parse(envContent);
// vars: [{type: 'comment', raw: '# Database config', line: 1}, ...]
// Validate
const result = validate(envContent);
// { valid: true, errors: [], warnings: ['Duplicate keys: PORT'], vars: 3 }
// Sort alphabetically
sort(envContent);
// DATABASE_URL=...
// PORT=3000
// PORT=3001
// SECRET_KEY=...
// Remove duplicates
removeDuplicates(envContent);
// Convert to JSON
toJSON(envContent);
// {
// "DATABASE_URL": "postgresql://user:pass@localhost:5432/mydb",
// "SECRET_KEY": "my-secret-key",
// "PORT": "3001"
// }
// Convert to YAML
toYAML(envContent);
// DATABASE_URL: "postgresql://..."
// Convert to Docker -e flags
toDocker(envContent);
// docker run \
// -e DATABASE_URL="..." \
// -e SECRET_KEY="..."
// Mask sensitive values
mask(envContent);
// DATABASE_URL=postgresql://...
// SECRET_KEY=********
// PORT=3000
// Generate .env.example
generateExample(envContent);
// DATABASE_URL=
// SECRET_KEY=
// PORT=
// Compare .env with .env.example
const envExample = `DATABASE_URL=
SECRET_KEY=
PORT=
REDIS_URL=`;
const diff = compare(envContent, envExample);
// { missing: ['REDIS_URL'], extra: [], match: false }API
parse(content)
Parses .env content into structured array with type, key, value, and line info.
toObject(vars)
Converts parsed vars to plain object.
fromObject(obj)
Converts object to .env format string.
validate(content)
Validates .env content, returns {valid, errors, warnings, vars}.
sort(content)
Sorts variables alphabetically (preserves comments at top).
removeDuplicates(content)
Removes duplicate keys, keeping first occurrence.
toJSON(content, indent)
Converts .env to JSON string.
toYAML(content)
Converts .env to YAML format.
toDocker(content)
Converts .env to Docker run command with -e flags.
mask(content)
Masks sensitive values (keys containing: secret, key, password, token, etc.).
generateExample(content)
Generates .env.example with empty values.
compare(envContent, exampleContent)
Compares .env with .env.example, returns missing/extra keys.
See Also
🔧 More DevKits Tools
Free Tools (82+): | Tool | Description | |------|-------------| | base64-tool | Base64 encode/decode | | chmod-calculator | Unix permissions converter | | cron-parser | Cron expression parser | | csv-json-converter | CSV ↔ JSON converter | | diff-checker | Text comparison (LCS) |
💎 DevKits Pro — $9 One-Time
Unlock 20+ premium tools with a single payment:
💡 Pay with Crypto: BTC, ETH, USDT (TRC-20), SOL accepted
🚀 Other Products from Us
| Product | Description | |---------|-------------| | Invoicely | Free invoice generator for freelancers | | SnapOG | Free OG image generator (20+ templates) |
License
MIT
