@yukiflowstack/multiline-key-value-parser
v0.1.0
Published
Generic multi-line key-value format parser (Java properties, env files, etc.)
Downloads
13
Maintainers
Readme
@alpnpmrepo/multiline-key-value-parser
A generic parser for multi-line key-value formats including Java properties files, environment files, and similar config formats. Preserves formatting, comments, and blank lines.
Installation
npm install @alpnpmrepo/multiline-key-value-parserUsage
import { MultiLineKeyValueParser } from '@alpnpmrepo/multiline-key-value-parser';
// Parse properties
const content = `
# Database configuration
db.host=localhost
db.port=5432
db.name=myapp
`;
const parsed = MultiLineKeyValueParser.parseProperties(content);
// Result: { 'db.host': 'localhost', 'db.port': '5432', 'db.name': 'myapp' }
// Update values while preserving formatting
const updated = { 'db.host': 'prod-server', 'db.port': '5432', 'db.name': 'myapp' };
const serialized = MultiLineKeyValueParser.serializeProperties(updated, content);
// Original comments, blank lines, and indentation are preservedFeatures
- Multiple formats: Supports both key=value and key: value syntax
- Multi-line values: Handles backslash continuations (\)
- Comment preservation: Maintains # comments during serialization
- Blank line handling: Preserves formatting structure
- Type-safe: Built with TypeScript strict mode
- Zero dependencies: Pure TypeScript implementation
API
parseProperties(content: string): Record<string, string>
Parses key-value content into an object.
serializeProperties(obj: Record<string, string>, originalContent: string): string
Serializes object back to formatted string, preserving original structure.
extractPropertyValue(content: string, key: string): string | undefined
Extracts a single property value from content.
extractPropertyKeys(content: string): string[]
Returns all property keys found in content.
License
MIT
