Socket
Socket
Sign inDemoInstall

yaml-validator-typescript

Package Overview
Dependencies
1
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

yaml-validator-typescript

Yaml validator to test your yaml with a defined model


Version published
Weekly downloads
650
decreased by-25.46%
Maintainers
1
Install size
758 kB
Created
Weekly downloads
 

Readme

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

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc