dgeni
Version:
Flexible JavaScript documentation generator used by both AngularJS and Angular
40 lines (32 loc) • 1.24 kB
text/typescript
const validate = require('validate.js');
import {Package} from '../Package';
export const processorValidationPackage = new Package('processorValidation')
.config(function(dgeni) {
dgeni.stopOnValidationError = true;
})
.eventHandler('generationStart', function validateProcessors(log, dgeni) {
return function validateProcessorsImpl() {
const validationErrors = [];
let validationPromise = Promise.resolve();
// Apply the validations on each processor
dgeni.processors.forEach(function(processor) {
validationPromise = validationPromise.then(function() {
return validate.async(processor, processor.$validate).catch(function(errors) {
validationErrors.push({
processor: processor.name,
package: processor.$package,
errors: errors
});
log.error('Invalid property in "' + processor.name + '" (in "' + processor.$package + '" package)');
log.error(errors);
});
});
});
validationPromise = validationPromise.then(function() {
if ( validationErrors.length > 0 && dgeni.stopOnValidationError ) {
return Promise.reject(validationErrors);
}
});
return validationPromise;
};
});