@naturalcycles/nodejs-lib
Version:
Standard library for Node.js
43 lines (42 loc) • 1.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.numberExtensions = void 0;
function numberExtensions(joi) {
return {
base: joi.number(),
type: 'number',
messages: {
'number.dividable': `"{{#label}}" must be dividable by {{#q}}`,
},
// validate (v, helpers) {
// console.log('number validate called', {v})
// },
rules: {
// Based on: https://github.com/hapijs/joi/blob/master/API.md#extensions
dividable: {
multi: true,
method(q) {
return this.$_addRule({
name: 'dividable',
args: { q },
});
},
args: [
{
name: 'q',
ref: true,
assert: v => typeof v === 'number' && !Number.isNaN(v),
message: 'must be a number',
},
],
validate(v, helpers, args) {
if (v % args['q'] === 0) {
return v;
}
return helpers.error('number.dividable', args);
},
},
},
};
}
exports.numberExtensions = numberExtensions;