mikeerickson / validatorjs

A data validation library in JavaScript for the browser and Node.js, inspired by Laravel's Validator.
https://www.npmjs.com/package/validatorjs
MIT License
1.77k stars 280 forks source link

Custom replacements not working for custom rules #440

Open sanjacornelius opened 3 years ago

sanjacornelius commented 3 years ago

In version 3.22.1, when using the provided example for creating custom attributes the :min and :max parameters are not returned.

In doing a little investigation version 3.22.1 seems to be missing some code from PR #375 that implemented the feature. When adding back the missing code the provided example works as expected.

Not sure if it was intended and if there is a different way the custom replacements need to be implemented in this version. A little guidance would be helpful thank you in advance!

Provided Example from Docs

Validator.register(
    'date_between',
    function (value, requirement) {
      // custom validation using dates
    },
    'Custom message for attribute :attribute with replacements :min and :max.',
    function (_template, rule, _getAttributeName) {
      const parameters = rule.getParameters();
        return {
          min: parameters[0],
          max: parameters[1],
        };
    }
);
ethaizone commented 2 years ago

I think this happen due some mistake. As we can see that fnReplacement is exists but it's unused.

https://github.com/mikeerickson/validatorjs/blob/46928d706054b94821680c089de8b2a185830429/src/validator.js#L601-L605