A library for YAML manipulation while preserving comments.
Usage
A simple usage example:
import 'package:yaml_edit/yaml_edit.dart';
void main() {
  final yamlEditor = YamlEditor('{YAML: YAML}');
  yamlEditor.update(['YAML'], "YAML Ain't Markup Language");
  print(yamlEditor);
  // Expected output:
  // {YAML: YAML Ain't Markup Language}
}
Example: Converting JSON to YAML (block formatted)
void main() {
  final jsonString = r'''
{
  "key": "value",
  "list": [
    "first",
    "second",
    "last entry in the list"
  ],
  "map": {
    "multiline": "this is a fairly long string with\nline breaks..."
  }
}
''';
  final jsonValue = json.decode(jsonString);
  // Convert jsonValue to YAML
  final yamlEditor = YamlEditor('');
  yamlEditor.update([], jsonValue);
  print(yamlEditor.toString());
}
Testing
Testing is done in two strategies: Unit testing (/test/editor_test.dart) and
Golden testing (/test/golden_test.dart). More information on Golden testing
and the input/output format can be found at /test/testdata/README.md.
These tests are automatically run with pub run test.
Limitations
- Users are not allowed to define tags in the modifications.
- Map keys will always be added in the flow style.
Libraries
- yaml_edit
- YAML parsing is supported by package:yaml, and each time a change is made, the resulting YAML AST is compared against our expected output with deep equality to ensure that the output conforms to our expectations.