Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

yaml-validator-typescript

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

yaml-validator-typescript

Yaml validator to test your yaml with a defined model

  • 1.1.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
478
increased by443.18%
Maintainers
1
Weekly downloads
 
Created
Source

yaml-validator-typescript

Coverage Status Testing app Building Publish to npm

yaml-validator-typescript is a way to validate your Yaml file by using a defined model

Installation

$npm install yaml-validator-typescript

or

$yarn add yaml-validator-typescript

Usage

Define your modele

You can set you model as you want. You just need to have properties initialized

If you don't want some property to be tested, you can implement Yaml

class TestOnlyKeys implements Yaml {
    keysToTest: (keyof TestOnlyKeys)[] = ['key1', 'key2'];
    key1: string = '';
    key2: number = 0;
    keyNotToTest: boolean = false;
}

Here only key1 and key2 are tested You can also set some properties optionals:

class Optional implements Yaml {
    keysToTest: string[] = ['valueToHave', 'valueOptional', 'arrayOptional'];
    optionals: Set<string> = new Set(['valueOptional', 'arrayOptional']);
    valueToHave: string = '';
    valueOptional: string = '';
    arrayOptional: {valueYouNeed1: string, valueYouNeed2: boolean}[] = [
        {valueYouNeed1: '', valueYouNeed2: true},
    ];
}

Here valueOptional and arrayOptional are optionals But if arrayOptional is defined, he has to be right

As a command

Set a config file at the root of the project:

import MyClass from './somewhere';
module.exports = {
    structure: new MyClass(),
    files: ['file1.yaml', 'file2.yaml'],
};

Then run the command

{
    "scripts": {
        "valid-yaml": "validate-yaml"
    }
}

If you have not set the files, you can put them in the command

{
    "scripts": {
        "valid-yaml": "validate-yaml file1.yaml file2.yaml"
    }
}

In your code

import MyClass from './somewhere';
const validator = new Validator(new MyClass());
validator.validate('path_of_my_file.yaml').then((errors) => {
    if (errors.length > 0) {
        console.log('I have some issues I need to fix 🙀');
        errors.forEach((error) => {
            console.log(`- ${result}`);
        });
    } else {
        console.log('No Error in this code 💪');
    }
});

You can validate multiple file at the same time with the same validator

import MyClass from './somewhere';
const validator = new Validator(new MyClass());
validator
    .validateMany('path_of_my_file.yaml', 'another_path_of_my_file.yaml')
    .then((results) => {
        files.forEach((file) => {
            console.log(`${file.name}:`);
            if (file.results.length > 0) {
                console.log('I have some issues I need to fix 🙀');
                file.results.forEach((error) => {
                    console.log(`- ${result}`);
                });
            } else {
                console.log('No Error in this code 💪');
            }
        });
    });

Keywords

FAQs

Package last updated on 01 May 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc