Open
Description
Runtime
node.js
Runtime version
v23.7.0
Module version
17.13.3
Last module version without issue
No response
Used with
express
Any other relevant information
I found this issue: #2889
Which introduced encodeUri
. But this option can't be used (while it is documented).
Is this a regression?
What are you trying to achieve or the steps to reproduce?
From what I understand, I should be able to use the domain
option to validate URIs that contain Unicode characters (IDN):
https://joi.dev/api/?v=17.13.3#stringurioptions
For example:
Joi.object({
url: Joi.string().uri({
allowRelative: false,
domain: {
allowUnicode: true,
tlds: false,
}
})
})
But that does not work. Am I doing something wrong, or is this indeed a bug?
What was the result you got?
Schema:
Joi.object({
url: Joi.string().uri({
allowRelative: false,
domain: {
allowUnicode: true,
tlds: false,
}
})
})
Data to validate:
{
url: "https://ëxample.com"
}
Output:
{
"url" /* "url" must be a valid uri */: "https://ëxample.com"
}
Sandbox reproduction:
What result did you expect?
For it to validate URIs that contain IDN, when the allowUnicode
domain option is enabled.
IOW: for it to behave like domain (which does work as expected)