valibot
valibot copied to clipboard
Add possibility to override type for Custom validations
Hello,
I have a suggestion, really helpful in our case : customize the custom issue type returned in error message.
From now, when we have an error with a custom scheme, we have this kind of issue :
{
kind: 'schema',
type: 'custom',
input: 'a == 1 0 : 1',
expected: 'unknown',
received: '"a == 1 0 : 1"',
message: 'Value needs to be a correct math expression',
requirement: undefined,
// ...
}
If it possible to add option on custom schema to add specific type returned inside Issue related object ? Like in my example math ?
Thank you for creating this issue and sorry for my late reply. Yes, this is theoretically possible but I need to investigate all possible solutions first. Can you share your schema and use case via a playground link?
I will try. It is a really big schema : https://valibot.dev/playground/?code=JYWwDg9gTgLgBDAnmApnA3nAQgQwM4oDKAxgBYog4A02+KAknngK4o0AiKAZjswDYwa9AHZcUUEWGbwAvnC5QIIOAHIAbjj7AARhBgqA3AChQkWBiNwrcHFCg5EVS9d0Q+KHMKfW4xZnhglb2tgYRgUAHNxYKstcPs+GLgQUIAZFGEImFIk4X4+HG13XOYQbWjnKwhtACsUYkFKuGq6hoB1YGyAJRQApKVO-rAYYAhhTSS8HDEABVsCJLBgYgBrLT6mpdQkqHroABNJmChQiJs8ODUAk8yk4888LmgQO5OXpphmMGKm5mFRry-YQrYQQADugJ8zGYwEOTQ0J08jTkCiUqg0Wl0+mMRmIYwCcGupzgAF44AAKEC9KZRAD8AC5CcdTgBKUkAPjgWxQ5KuzMylOpOCiLJozJA5JZLOMeOEBN2AEcYbt9oR+WcyYKmMKUAymTcImySZzueSiQKqdqRTQUsJ0plsuSAIxSnEZUpwfbMewjfEWHwgC5kgAMk1JcCdSWUZIATElSOGAMxJfbhgAsSTB4YArEkALLhgBsSQAmuGAOxOGRGIxIVBwdjenC+4ThlYoRAQLgIZAoLuepstvA42UElAAD3uDQAappWI2fQDw+SvYuxozzYbGQBtPJlaL604AXQ5-uso-g24xrBof06J7Jq+bAIAdHhvp1yQB6ckAHX2ADULJfiyL5cMAAjiOSwCnjBACEJJkioKjSjWPi7J8UCttuABypTlFAvJzigopwHeMBHsYMgjvi8Cymo4gwAAKhAeYQesezCPsQYUteKCMnuBG3v8MAbuqRqcugTR4GCnRkBS5FslJPg+MQdCqIGKj0k0KnWBh3qtnxxi6VYakEKoeBaTpJn6VhlzEXAABUEbBq5xkmWZaAqCAVkmSptmGQ5zlOq5wZOXAhbBu5umeaopC+X5ekoJhgV8Kw4Uha54WRdlUXWaZ6kqPsCWJXAAX2WlaDBaFuW1c5MZptFKmxSoYIlYl5V8RlNXOTlvVhfVabheWTU+Ps3C8AI2mlVYnXEU11bUTWX6OY5ljOQAwuQqxwMA3ZPi2u0XHidj1PAnipv4KCpjgGgQYU7gDmucpkSJeDretcAAAJgLYODKORFwALTyBB8TXa9nR4DQejkFAsnmVdNh8HwNh3QURRoAdS6A59P1-colo0mgIN+AEaLiIoUDJEKUTrV+uK0U9z5jMugN6guLPCNuR42rTupiQaElNGTgQgAAPJu7LktBwhSDAElnrpK1HTAnjaPwu0RKCuy7d2P27AQUAMU5DN+XtFJ1n23ahPLcAIUhm4oUrHXJQZ8iaAQo3WNW+W+Ezmh8AAqm94YAPK1GdL7togeAroOAJ4KhfkXnAV7EcJ97hhOU4wLOlWcy2svy6hfsW+ScF4fuUAvsAeAAGKhJ0PJ8VKLt+eVPB8F7fu++b3YV4DcAAD7D5DMB4C+7gOgmiEhkpfvoW7dmByHUO18IxBpeNceKd7Vh9zZy+toDG9b8wO-kuR5wNgnYzJz7fNWmgo+qCIGKwszLYoTiK1reFW16grAuGCcg2RxAIHILtOW0gECgDQHXGw8B3D4HgOAz0vRgAqgqqwF8H1wpfV2JQKAwCEAQDgGCaApDwLCDYMkfw8ByhkQIKmWS2Qv5Lg-vsZs0B8HOXxvYZQXUQb-QgH8eA-ZsZjDxr9QR484Ag2vpIu+wgZEExps-BRvgGEUzsNADRxN6aMzlPAW0hclyaj4gJfCB5yKMnMWMJ+xM9SbmFqpHREspYy1ttIRWykTIqzrmrYQGtUbAG1tABB+swCG3ECbRyZsTLlytv2Hx8AHYWXVM7fxpVO6exQPvOAh8YpM23MAfON5dprwotnSc9gZzEQccIYuvicQpyZsADaYwGKwAhmSeijEWJsRRnXTi3FoIVLocAapD8SkmP9sIHp4RUz9O6YM1i7FRmynGXxTOCs2lJIHp0tZvTUziwWUs66C8ZplWPh7buBTe5oSPilBAUBWALScTqEeY8AAGTT6EEiYc2OAKCCQACIAAk6A+IyGheRGQ4Lfml1ToEKuBFlxpMZH8EE4JhB+KaMk3sqSYHwDnpkg0Kg4AADJqXQPllPDIWRZ6ITgMGa5Lz3Z5BRgtQlRzSWklZdy1Gr80mCrJH8caNCrntySq8tJvKmjlXRVBNJqElrGIJMKuus84DixFkzJibR7BgFQKmHOGRuK0AICQcglBxY4tBBCYSuLnXWoYEwVgDrgROuEOydkSRU5MU4Dwfg8ALVcQuCGyaMBxZGpNWamgwqR6vSlaEa6AajDS2kmQCgOBGTxpwKa66KYJphsmXqYNZaBBOAJapJm9w5RPCgCAAAouAJAaoDSYtJdin1eK62HMtsSm2AryUqCdjSulaTGUz3FWyjluS7nCsKcU-ydyFVNA1UvV5EBhgAk0OSU0jq8WSjFPYJtzxySNseM8dtwxEBdtZEm-ID0eR4FzZQGgUqY2TKlN+6tediLqpovMrAfAIDEFtXm8MLQzrkhyf7CDUBGR7pbIe4Vb6zTqklP+g1ohwmocjg0BDMhRRNGup0aARHWgwAQ37cc1jq5nr9ogJjBEWM+DI0kWEjJTSbjPWRGE+xcM8dJXgGjZ0OjdF6HR9AMgXW+tE00cYVJGSKmVNdJ9ApyM+DETAeWEnmjEZgNJ0gPQAikcU6evDPgraC1OCxsjoGCTsGbDgaDlBYMmfoz4F8-mBh0fA5Bzz1A04qDSZZI8oEMjMl6IGsY4EIiSZI4hnwwoIi7AiFzJi8CjbAH4s0fdYxD0CdIioW6EQUJJHSxETLkQuaTNQ8V8YfBsMGkEyoAoARqt+w1qsZKeAmnNfQ21srNAVCRUsrpkyP7y3EWsSMvApAj3AFQFfftEJBM3ubRKNFNioCkUElBf9cBhUzd0u2FAYBUioKa0V0b5JXAoOaaRLuBALsqSuzdu7xEACCKMRsHra89jwr2aDvZIjV6weYPAsF2PQfYfG1s8hPVt0iO2r37erkdg7gnQjhCiIRWzJlYf4G9L0GYEACeI+R+t8bQnYTKb8mHKAERadchRxt114O3kPF29eiAKrDsvuY6RAnkQTufZ8DMAoxAGBI85-TnDpFoRM5J7pXY3wcDy5wg1kYDF7toeB09iAbgweCch597jHxeyMjiOIQ9RV3O9eczWVOkzQvedo756w-mXyBfJMFqDn6wvbgi+JlQ0WXyxZOPF-DSWUtyb9lYpXqPNu88xy2wXwvcdi+t59+zoLm4JHJOoYiruUVM1wAQVIoQVhe7JHB1LhLFf8ZV7eYTzPrBF6WKsdYdHw98RUBNkYlpxAFaj+Rt3mr4B1+BPQcIIBG8IC+O4ck24mjN+T35f3NeUDz4b6HmPYQ4-Qz9vp+W6mUBKiwVpjvW7Pvb997pPfdBD+hZP3F8-5te23NvyqNphEJxj7ORtFi5udOjG+mxHkOEDxNuJGHAHGHAMmHABmHALmBFDQCFNgcgU6JgTGKGCgcGJRLPmjDgPdJjAABJiLUxkgIE0DIGoHoHFhwAAAcuBpBqct0FBGM7graPSiA4Y24-uPBlB7gMB0gvQL4lAYAlIoQp4vy0KtoMgIAyKNAohUB1BtBMhRa5Is8nISh6ApAMgpA6hqgToxUE2ToeYUeEBcAAA4iaqQF0uAFIfvivs-ohn9tIKQCxO2MIBzqaMdsTjQBLkTt3lYEUJBngAAFKEBhw4SMi2D2CIDkgX4mZmYWZ0aLzWBpYzSyiJ63InQiYM5o6vbS4zS8Zp7taOaq5d4a43Jnb-SFYaZ36qgP5NE9527-6aYdEdaVG6QKa5FWDlEgG6SfafZ4ggBUhhBA4lZtaYaYy1E6aNEZBvqK6g6eDjFwAoCCHI795BLkhiF8EoACHiCICfZ1w9BiC7CbyFZbHg5NBaDAhxEJFJE2B2AODkiH6L4UChafaqatE359FAE7GoAnAQBt5c4M5SLNLh6WQTY+QTbxQTbFTRY2ihBNLOhIkoSF7wJ-YRAQB07vod4cJjAb4Toj4aTUkqComqDomkRmIqLkiYHeR4l3DwIABeYwwJAB9+AxVYVe8yThRaLhSg8sRAoe4Yd4FJm+emPm+RVg-uopYA4pbh4QHhx+seBWP+SSQ29gXAokxe8Qh6xwrABe-QipfsKpzhrhkpWpdqOAX+Z+0OUREGxAbxiRJJ6RNyKR3xIxKkCIwASIZeVs1J8pXRKkbmasoWbpTRnuoe8ZfkGJgZgxKkto9ozKzo6Z6Zdc7AhpxpDupeVu8ZLxwC8R3pNR-paRvxS+AJmJdoTKjoLolpRg4B7uDasm+csIcwiAEGOAiuIgtxkg0g4sKS3Yqp6pkpoWnIZI-iQJjIKgcB8AU5I+zgPh2Q-hGQHOTocYzg6xmMiu5pbAB5+xFhyJzgEJowiuKgMYl5Vg1x3A4gGQ8ujIkOwQ+ZhZ75+SwQY+KAhJxJqg2YD5cCVIPJtCS5ra3oe6KAX4cwJwiJzg5ZXpHxkZVg6FeRuR1RKgwYToAAnOWMQNmE6ImEDPhTGNoPsEDOWPsGmNmEDNoGmJRUDImGwSgImMQPhSgIWOWE6MQGweuaVEXuXpVEJYlJftIEucPtDsMbpEqSELeXhYRcRU6GmEDIOUxTRTGDgCgIxcQIWE6NpTgGmOWNoImDGPsPhcQFYbkSJTJdhX-hVuJVxk0EeM4LzM4NEZ6ZWWhU0PkSJdwmrC5YpUucpURSRWRRRVRTRXRQxUxSxWxRxVxTxXxQJSFVYIuaoDGTgHAN5RlbsfsFRihrKlYIxmyjQGxmytZHJSpJJRPIyApanqJawAVbVfWgRslqVXAKzuzorpGH7LLjrgrvSBVmwYWNmDgE6GweWEDIQYWNRaZQteRfhYmFwIxeWKZRxZlOWImImAVVYGTvDpTtTmEBzioOWCgPhVwNoNmNmGRURU6LNWmPRYWBtVwGwUDFwFwGxRZeZVNWmDgAdXAEdRTrufGRlllo1gtqoN1voBDXVlDS2LluPnHkuXDcDf1u2BPMNheW1Vuh5UYL7KirJu-JoL2Q4AOSsmeFlcubJo4c4eJZuX4RAAEbufuVYIee4Mee8qeZzeeSoE6KBdeVCUufeeJU+bca+YVh+c4F+dMMabLVYP+YBUuWCIoJkAAPpwniX-kQWFYqDQWKCoDwW2B1ziUoW+U7hNCYVWAKWPlKUEURWkXkWUXUW0X0WMXMXaCsXsWcXcW8X8WCXJk9ioDSUV4h31Xh1iWyXQ7227SO0qUkXqWaXqXlg6V6XaAGVGXp0mVmUWVWU2XA3K09EtUoDF30pSWqBA2yVuUeXBDeWoXW0+ABWl1BU13WQ4XhWqVRVu2xWe0JU+1JX+2pVB0FW005V5UekFWUaBAlUKXlVEFVXBg1XQ71VGZNUw1l1tXQ6FGEbdW9Xg2DVy4jVjUTVTUzVzXBjLVLXUX4WrXrXaCbWXWJg7V7XA2g2GxU4063mXXXW3X3U0XEBPVAwvXZhvVP0fVfU-VsF-WJgA0d1+Sf0jURgI31bZYtj3ZdaoLA2Q364Ago29AT4G0Y3xlY2Da42C2gWuU0NwDuW+xkFcLhhTCzDzA8hTn2lSFxkIDdnk37B9lU2oSpyhBMNkgsMoAIUEDkgcMSlcNJk8MBBk1aD8OU0QCDnCl4Dm5TwQDAFcK1yeq9BCP4haMQbAEiN8P6MsCGMGBAA
Hi, @throrin19. I'm Dosu, and I'm helping the Valibot team manage their backlog and am marking this issue as stale.
Issue Summary:
- You requested an enhancement to allow specifying custom error types for errors returned by custom validations, instead of the generic "custom" type.
- The maintainer acknowledged this is theoretically possible but requires further investigation.
- You provided a detailed schema example via the Valibot playground to illustrate your use case.
- The discussion is ongoing with no resolution or implementation yet.
Next Steps:
- Please let me know if this issue is still relevant to the latest version of Valibot by commenting here to keep the discussion open.
- If I do not hear back within 30 days, this issue will be automatically closed.
Thank you for your understanding and contribution!
This issue is still relevant
@fabian-hiller The user has confirmed that the issue regarding custom error types for validations is still relevant and needs further assistance. Could you please take a look?
Yes, keep it open.