1.1.2 • Published 5 years ago
yaml-validator-typescript v1.1.2
yaml-validator-typescript
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
andkey2
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
andarrayOptional
are optionals But ifarrayOptional
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 💪');
}
});
});