json-schema icon indicating copy to clipboard operation
json-schema copied to clipboard

Casting nonsense string to number with $pragma.cast gives valid result.

Open adjenks opened this issue 2 years ago • 0 comments

Based on your documentation it could just be doing exactly as described:

From To Result
string integer try to parse the integer from string, 0 if invalid number representation

However I don't see how it's useful to cast everything to 0 when casting fails.

I'd rather it something like "{type1} required, could not convert given {type2} value to {type1}."

What's the logic behind casting everything to 0 on failure?

I'm replacing the pragma cast to this for now:

{
		"field_name": {
			"title": "Field Name",
			"oneOf": [
				{
					"type": "integer"
				},
				{
					"type": "string",
					"pattern": "^\\d+$"
				}
			]
		},
}

If there is another way to do this, I'd be happy to know.

What I really want is for anything that's supposed to be a number but is a string, it should have an attempted cast, but if the cast fails, then fail to validate and provide a message as mentioned before.

Thank you for listening. Keep up the good work.

adjenks avatar Jun 21 '22 22:06 adjenks