In this case, I would think o making the customValidator expect everything to return the same object, and make smaller functions to compose when you want to use a function and a message.
eg: https://gist.github.com/bltavares/1237a86c405bb90d47ae