Yet Another YAML PowerShell parser and writer. While there are a few other YAML modules out on the gallery this module includes the following features:
YamlDotNet
in an Assembly Load Context to avoid DLL hell and cross assembly conflicts (PowerShell 7+ only)ConvertTo-Yaml
(does not support parsing comments though)There are schemas that support YAML 1.2 (default), 1.2 JSON, 1.1, and failsafe values. Please note that this module does not support roundtrip representation of the input YAML format. Support for this may be added in the future if there is demand for it.
See Yayaml index for more details.
These cmdlets have the following requirements
Creating a YAML string is as simple as providing an object to serialize:
$obj = [PSCustomObject]@{
Key = 'value'
Testing = 1, 2, 3
}
$obj | ConvertTo-Yaml
Produces
Key: value
Testing:
- 1
- 2
- 3
Parsing a YAML string to an object:
$obj = $yaml | ConvertFrom-Yaml
$obj.Key
$obj.Testing
The behaviour of these two cmdlets try to follow the ConvertTo-Json
and ConvertFrom-Json
cmdlets.
The easiest way to install this module is through PowerShellGet.
You can install this module by running;
# Install for only the current user
Install-Module -Name Yayaml -Scope CurrentUser
# Install for all users
Install-Module -Name Yayaml -Scope AllUsers
Contributing is quite easy, fork this repo and submit a pull request with the changes.
To build this module run .\build.ps1 -Task Build
in PowerShell.
To test a build run .\build.ps1 -Task Test
in PowerShell.
This script will ensure all dependencies are installed before running the test suite.