| // Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file | |
| // for details. All rights reserved. Use of this source code is governed by a | |
| // BSD-style license that can be found in the LICENSE file. | |
| class EnvironmentParser { | |
| /// Parses an environment key into an config key. | |
| /// | |
| /// Environment keys can only contain alphanumeric characters and underscores. | |
| /// Treats `__` as hierarchy separator, and replaces it with `.`. | |
| /// | |
| /// Often, environment variables are uppercased. | |
| /// Replaces all uppercase characters with lowercase characters. | |
| String parseKey(String key) => key.replaceAll('__', '.').toLowerCase(); | |
| Map<String, String> parse(Map<String, String> environment) => { | |
| for (final entry in environment.entries) | |
| parseKey(entry.key): entry.value, | |
| }; | |
| } |