1.0.6 • Published 4 years ago
com.siteblade.nodejs.www.api v1.0.6
com.siteblade.nodejs.www.api
Extend API router with internationalization-based validation.
Examples
Validators
import {
Validator,
MinLength,
MatchesField,
} from 'com.siteblade.nodejs.www.api';
let validator = new Validator({
// NOTE
// Clone a default com.siteblade.intl.Translator.
translator: undefined,
fields: {
password: [
MinLength(8),
MatchesField('passwordconfirmation', {
message: 'validation.user.passwordsDoNotMatch',
}),
],
passwordconfirmation: [],
qty: [ Number, ]
},
// Steps run after field rules.
steps: [
async (fields, report, eRequest) => {
report('fieldname', 'validation.someError');
return { value: 'foo' };
},
async (fields, report, eRequest, { value }) => {
console.log(value); // foo
return 50;
},
],
});
eApplication.get('somePath', validator.eMiddleware(intlProvider), (eRequest, eResponse) => {
let result = eRequest.validationResult;
console.log(result); // 50
});
/**
* @return com.siteblade.intl.Translator
*/
function intlProvider(eRequest) {
//
}
// Example errors:
//
// error.messages.fieldname = 'Message';
Validator > Custom rules
import { Rule } from 'com.siteblade.nodejs.www.api';
class CustomRule extends Rule {
constructor(options = {}) {
super(options);
}
async test(fieldValues, value) {
return true;
}
// [optional]
formatError(translator) {
return translator.t(this.message);
}
}