1.0.6 • Published 4 years ago

com.siteblade.nodejs.www.api v1.0.6

Weekly downloads
1
License
ISC
Repository
-
Last release
4 years ago
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);
    }
}
1.0.6

4 years ago

1.0.5

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago