Skip to content

openpeeps/nyml

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ˜‹ A stupid simple YAML Parser.
From YAML to stringified JSON, JsonNode or Nim objects via pkg/jsony

nimble install nyml

API reference

Github Actions Github Actions

😍 Key Features

  • integer, string, boolean, array, object
  • GET access using dot annotations
  • Direct to object parser using JSONY
  • Rules and Validator
  • Open Source | MIT License

Example

A simple YAML file
name: test
on:
  push:
    paths-ignore:
      - LICENSE
      - README.*
  pull_request:
    paths-ignore:
      - LICENSE
      - README.*
jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        nim-version:
          - 'stable'
    steps:
      - uses: actions/checkout@v2
      - uses: jiro4989/setup-nim-action@v1
        with:
          nim-version: ${{ matrix.nim-version }}
          repo-token: ${{ secrets.GITHUB_TOKEN }}
      - run: nimble install -Y
      - run: nim --threads:on c -r src/tim.nim
      - run: nimble test

Get JSON document

let contents = readFile("sample.yaml")
let jsonContents: JsonNode = yaml(contents).toJson.get

Get a specific value using . notation

let osName: JsonNode = yaml(contents).toJson.get("jobs.test.runs-on")
echo osName.getStr

Handle variables

let example = """
name: ${{username}}
"""
let yml = yaml(example, data = %*{"username": "John Do The Do"})
echo yml # {"name": "John Do The Do"}

Dump YAML to stringified JSON

echo yaml(contents)

# dump to json with indentation
echo yaml(contents, true)

❀ Contributions & Support

🎩 License

MIT license. Made by Humans from OpenPeeps.
Copyright Β© 2023 OpenPeeps & Contributors β€” All rights reserved.

About

A stupid simple YAML Parser. From YAML to stringified JSON, JsonNode or Nim objects. Written in Nim language πŸ‘‘

Topics

Resources

License

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •  

Languages