Runtime
nodejs
Runtime version
22.14 and 20.15
Module version
17.13.3
Last module version without issue
No response
Used with
hapi application
Any other relevant information
When validating something with a class, the JSON validator throws an error whenever a URL instance is present.
What are you trying to achieve or the steps to reproduce?
const Joi = require('joi');
const someSchema = Joi.object({
type: Joi.string().required(),
}).unknown(false);
const configs = [
{
someUrl: new URL('https://some-url.com')
}
]
Joi.assert(
configs,
Joi.array().items(someSchema)
);
What was the result you got?
TypeError: Receiver must be an instance of class URL
at URL.toJSON (node:internal/url:1136:10)
at JSON.stringify (<anonymous>)
at internals.safeStringify (/repos/joibug/node_modules/joi/lib/annotate.js:93:17)
at exports.error [as annotate] (/repos/joibug/node_modules/joi/lib/annotate.js:70:29)
at internals.assert (/repos/joibug/node_modules/joi/lib/index.js:236:78)
at Object.assert (/repos/joibug/node_modules/joi/lib/index.js:102:19)
at Object.<anonymous> (/repos/joibug/index.js:14:5)
at Module._compile (node:internal/modules/cjs/loader:1554:14)
at Object..js (node:internal/modules/cjs/loader:1706:10)
at Module.load (node:internal/modules/cjs/loader:1289:32)
Node.js v22.14.0
What result did you expect?
/repos/joibug/node_modules/joi/lib/index.js:243
throw error;
^
Error [ValidationError]: [
{
"someUrl": "...",
"type" [1]: -- missing --
}
]
[1] "[0].type" is required
at exports.process (/repos/joibug/node_modules/joi/lib/errors.js:193:16)
at internals.entry (/repos/joibug/node_modules/joi/lib/validator.js:250:26)
at exports.entry (/repos/joibug/node_modules/joi/lib/validator.js:27:30)
at internals.Base.validate (/repos/joibug/node_modules/joi/lib/base.js:548:26)
at internals.assert (/repos/joibug/node_modules/joi/lib/index.js:225:27)
at Object.assert (/repos/joibug/node_modules/joi/lib/index.js:102:19)
at Object.<anonymous> (/repos/joibug/index.js:14:5)
at Module._compile (node:internal/modules/cjs/loader:1554:14)
at Object..js (node:internal/modules/cjs/loader:1706:10)
at Module.load (node:internal/modules/cjs/loader:1289:32) {
_original: [ { someUrl: '...' } ],
details: [
{
message: '"[0].type" is required',
path: [ 0, 'type' ],
type: 'any.required',
context: { label: '[0].type', key: 'type' }
}
]
}
Node.js v22.14.0
Runtime
nodejs
Runtime version
22.14 and 20.15
Module version
17.13.3
Last module version without issue
No response
Used with
hapi application
Any other relevant information
When validating something with a class, the JSON validator throws an error whenever a URL instance is present.
What are you trying to achieve or the steps to reproduce?
What was the result you got?
What result did you expect?