The vulcan validator (vulcanval) creator.
This module is a function which receives a settings object and returns a validator object to validate data maps.
Also this has some properties and methods to configure the validations globally.
In Node.js environments use like:
const vulcanval = require('vulcanval');In browser environments this object is available in window.vulcanval.
- See:
Example
// Changing a global configuration in settings.
vulcanval.settings.locale = 'pt';
// Addind a new validator method.
vulcanval.addValidator('valName', function () { ... });
// Extending/creating a new locale/language.
vulcanval.extendLocale({ ... });
// A form configuration to create a validator.
const settings = {
fields: [{
name: 'fieldName',
validators: {}
}]
};
// Creating a validator from settings.
const validator = vulcanval(settings);
// A data map to validate.
const map = {
fieldName: 'field value'
};
// Validating the map with the validator.
const result = validator.validate(map);
Members
-
<static> log :Object
-
This is a reference to the prhone-log package instance used to log messages.
Type:
- Object
-
<static> settings :Object
-
This is a reference to the settings global configuration.
Type:
- Object
-
<static> utilityContext :Object
-
This is a reference to the utilityContext global configuration.
This can be mutated to use your own custom properties and methods in any method/function that make use of this context.
Type:
- Object
-
<static> validator :Object
-
This is a reference to the validator package.
Type:
- Object
Methods
-
<static> addValidator(name, validator)
-
Add a custom validator globally.
All validators in the package validator are installed and ready to use.
Parameters:
Name Type Description nameString An alphanumeric validator name.
validatorfunction The validator function. Receives as a first parameter the value of the field and has to return a truthy value. This function will have the utility context as function context. Don't pass arrow functions.
- See:
-
- In the example is used the validator.validateField static method to test the new validator.
Example
vulcanval.addValidator('isGreat', function (value) { return value.length > 4 && value.indexOf('great') >= 0; }); const map = { field0: 'normal value' }; const settings = { msgs: { isGreat: 'This field needs to be great!' }, fields: [{ name: 'field0', validators: { isGreat: true } }] }; const vv = vulcanval(settings); const field0Valid = vv.validateField('field0', map); console.log(field0Valid); // 'This field needs to be great!' -
<static> convertMapTo(to, map)
-
Convert a map from nested to plain and viceversa.
Parameters:
Name Type Description toString It can have two values:
plainornested.mapmap The object to convert.
Returns:
The converted object map.
- Type
- map
-
<static> extendLocale(locale)
-
Extend validators messages in an specific localization globally. If it does not exist it will be created.
Parameters:
Name Type Description localeObject A plain object describing the locale.
Properties
Name Type Description idString The identifier of the locale. It should be like:
'en','es','jp'or similar.msgsObject A plain object with validators names as keys and messages formats as values. It should have a default value with the key
general, which will be used when there is no message for an specific validator on error.Example
const locale = { id: 'jp', msgs: { // Default error message: "Invalid form field error". general: '無効なフォームフィールド。', // Message: "Form field has to be alphanumeric error message." isAlphanumeric: 'フォームフィールドは、英数字である必要があります。' } }; vulcanval.extendLocale(locale); // To set it as default, use: vulcanval.settings.locale = 'jp'; // The identifier