You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
839 B
JavaScript

"use strict";
const { validateValue } = require("@validatem/core");
const ValidationError = require("@validatem/error");
const ignoreResult = require("./");
// Imagine that this function is in a separate validator module
function parseNumber(value) {
let parsed = parseFloat(value);
if (Number.isNaN(parsed)) {
throw new ValidationError(`Must be a number`);
} else {
return parsed;
}
}
let rules = [ parseNumber ];
let resultA = validateValue("42", rules);
console.log(resultA, typeof resultA); // 42 'number'
let resultB = validateValue("42", ignoreResult(rules));
console.log(resultB, typeof resultB); // 42 string
// Validation errors still work as normal:
let resultC = validateValue("foo", ignoreResult(rules)); /*
AggregrateValidationError: One or more validation errors occurred:
- At (root): Must be a number
*/