parseEnvContent static method
Pure parser behind parseEnvFile; exposed for testing.
Implementation
static Map<String, String> parseEnvContent(String content,
{String sourceName = '.env'}) {
final envVars = <String, String>{};
final lines = const LineSplitter().convert(content);
for (var i = 0; i < lines.length; i++) {
var line = lines[i].trim();
if (line.isEmpty || line.startsWith('#')) continue;
if (line.startsWith('export ')) {
line = line.substring('export '.length).trim();
}
final eq = line.indexOf('=');
if (eq <= 0) {
Logger.warning(
'$sourceName:${i + 1}: ignoring malformed line (expected KEY=VALUE).');
continue;
}
final key = line.substring(0, eq).trim();
if (!RegExp(r'^[A-Za-z_][A-Za-z0-9_]*$').hasMatch(key)) {
Logger.warning('$sourceName:${i + 1}: ignoring invalid key "$key".');
continue;
}
envVars[key] = _parseEnvValue(line.substring(eq + 1).trim());
}
return envVars;
}