Coder Social home page Coder Social logo

martinsirbe / docker-js-yaml-format Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 4 KB

Formats the provided YAML using js-yaml library.

License: MIT License

Dockerfile 18.79% Makefile 61.70% JavaScript 19.50%
js-yaml docker yaml formatting js node

docker-js-yaml-format's Introduction

docker-js-yaml-format

The goal of this project is to provide a simple dockerized JS script which uses js-yaml library to serialise and dump the provided YAML file to apply consistent YAML file formatting, e.g. indentation, line length, etc. This was noticed while using Swagger Editor Convert to YAML feature, which internally uses js-yaml safeDump function (by default uses DEFAULT_SAFE_SCHEMA which will fail on unsafe types - functions, regex and undefined).

Demo

Simply run make build, then make run and compare openapi.yaml & formatted-openapi.yaml diff.

Diff

Before

openapi: 3.0.0
info:
  description: Mauris dignissim sapien eget lectus luctus volutpat. Sed eu sodales lectus, vel molestie ante. Sed id aliquam elit. In et cursus erat. Praesent vitae nibh eget eros ornare dictum. Aenean justo orci, feugiat sit amet lorem et, cursus efficitur tellus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec euismod malesuada mi, sit amet faucibus metus feugiat nec. Curabitur nec erat sem. Cras fermentum lobortis urna sit amet tempor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut lobortis, ante nec condimentum gravida, ligula quam tempus leo, et rhoncus justo ipsum ac ante. Cras lacinia nisi sed est dapibus, vel vulputate leo tincidunt. Aenean fringilla a nisi in vehicula.
  version: 0.0.1
  title: Lorem Ipsum API
paths:
  /lorem-ipsum:
    get:
      summary: Lorem Ipsum
      description: Ut facilisis tincidunt auctor. Aliquam eget est ut nisl malesuada pretium eget sit amet nunc. Pellentesque ultricies, risus pharetra porta aliquet, purus turpis hendrerit ligula, et mollis arcu massa a neque. Donec mollis magna turpis, ac pellentesque erat molestie a. Donec in neque at erat bibendum sodales. Praesent id nisl enim. Donec interdum tempor ex at pharetra. Proin eget odio nec eros molestie eleifend. Maecenas consectetur augue nec erat facilisis accumsan.
      responses:
        '200':
          description: Perfect

After

failed openapi: 3.0.0
info:
  description: >-
    Mauris dignissim sapien eget lectus luctus volutpat. Sed eu sodales lectus,
    vel molestie ante. Sed id aliquam elit. In et cursus erat. Praesent vitae
    nibh eget eros ornare dictum. Aenean justo orci, feugiat sit amet lorem et,
    cursus efficitur tellus. Pellentesque habitant morbi tristique senectus et
    netus et malesuada fames ac turpis egestas. Donec euismod malesuada mi, sit
    amet faucibus metus feugiat nec. Curabitur nec erat sem. Cras fermentum
    lobortis urna sit amet tempor. Lorem ipsum dolor sit amet, consectetur
    adipiscing elit. Ut lobortis, ante nec condimentum gravida, ligula quam
    tempus leo, et rhoncus justo ipsum ac ante. Cras lacinia nisi sed est
    dapibus, vel vulputate leo tincidunt. Aenean fringilla a nisi in vehicula.
  version: 0.0.1
  title: Lorem Ipsum API
paths:
  /lorem-ipsum:
    get:
      summary: Lorem Ipsum
      description: >-
        Ut facilisis tincidunt auctor. Aliquam eget est ut nisl malesuada
        pretium eget sit amet nunc. Pellentesque ultricies, risus pharetra porta
        aliquet, purus turpis hendrerit ligula, et mollis arcu massa a neque.
        Donec mollis magna turpis, ac pellentesque erat molestie a. Donec in
        neque at erat bibendum sodales. Praesent id nisl enim. Donec interdum
        tempor ex at pharetra. Proin eget odio nec eros molestie eleifend.
        Maecenas consectetur augue nec erat facilisis accumsan.
      responses:
        '200':
          description: Perfect

Run using Docker

docker run --rm -v "$$PWD":/src -w /src martinsirbe/docker-js-yaml-format:latest my.yaml > formatted.yaml

docker-js-yaml-format's People

Contributors

martinsirbe avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.