Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/henry781/simple-validator

a simple typescript class validator
https://github.com/henry781/simple-validator

Last synced: 1 day ago
JSON representation

a simple typescript class validator

Awesome Lists containing this project

README

        

# simple-validator

simple-validator is a basic typescript class validator, it works with decorators and produce an array of validation errors.

WIP : not for production

## Usage
Add the field decorators, see below for a list of available decorators.
```
export class Planet {

@isInteger()
private _index: number;

@isNotEmpty()
private _name: string;

@isNotEmpty()
private _aliases: string[];

@isIn({arr: ['RED', 'BLUE']})
private _color: string;

@isValid()
@isNotEmpty()
private _satellites: Satellite[];

constructor(options?: PlanetOptions) {
if (options) {
this._index = options.index;
this._name = options.name;
this._aliases = options.aliases;
this._color = options.color;
this._satellites = options.satellites;
}
}
```

### Case invalid

```
const satellite = new Satellite({});
const planet = new Planet({satellites: [satellite]});

const result = Validator.validate(planet);

// result is an array :
// _index : should be an integer
// _name : should not be empty
// _aliases : should not be empty
// _color : should be one of
// _satellites : 0 : _name : should not be empty
```

### Case valid

```
const satellite = new Satellite({name: 'moon'});
const planet = new Planet({
aliases: ['home', 'blue-planet'],
color: 'BLUE',
index: 3,
name: 'earth',
satellites: [satellite],
});

const result = Validator.validate(planet);

// result is an empty array
```