nonempty(string())
nonempty(array())pattern(string(), /\d+/)'123'size(string(), 1, 100)
size(array(number()), 0)
size(number(), 93, Infinity)'a string of text'
[]
Infinityimport { number, refine } from 'superstruct'
const Positive = refine(number(), 'positive', (value) => value >= 0)const DateRange = refine(
object({
startDate: number(),
endDate: number(),
}),
'DateRange',
(value) => {
if (value.startDate < value.endDate) {
return true
}
// Returning a string indicates that validation failed and the provided
// string should be used as a custom error message.
return (
`Expected 'startDate' to be less than 'endDate' on type 'DateRange', ` +
`but received ${JSON.stringify(value)}`
)
}
)