jborean93 / PowerShell-Yayaml

A YAML parser and writer that uses an Assembly Load Context on PowerShell 7+
MIT License
30 stars 2 forks source link

PowerShell-Yayaml

Test workflow codecov PowerShell Gallery License

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:

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.

Requirements

These cmdlets have the following requirements

Examples

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.

Installing

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

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.