> @crrice/vali@2.0.2 test /Users/conorrice/Documents/vali
> node ./dist/test.js
Running Function: V.number
Running Function: V.number.max(10)
Running Function: V.number.min(10)
Running Function: V.number.lt(10)
Running Function: V.number.gt(10)
Running Function: V.number.integer
Running Function: V.number.interval("[0, 1)")
Running Function: V.number.interval("(1, Infinity]")
Running Function: V.number.min(1).max(100).integer
Running Function: V.string
Running Function: V.string.regex(/^hello world$/i)
Running Function: V.string.email
Running Function: V.string.alphanumeric
Running Function: V.strng.base64
Running Function: V.string.hex
Running Function: V.string.minLen(4)
Running Function: V.string.maxLen(3)
Running Function: V.string.isLen(3)
Running Function: V.string.regex(/^#[a-f0-9]{6}/).isLen(7)
Running Function: V.boolean
Running Function: V.literal(undefined)
Running Function: V.literal({})
Running Function: V.arrayOf(V.number)
Running Function: V.arrayOf(V.number).minLen(2).maxLen(4)
Running Function: V.arrayOf(V.number).isLen(3)
Running Function: V.mapOf(V.number)
Running Function: V.shape({foo: V.string})
Running Function: V.shape({foo: V.string, bar: V.number.optional}).noextra
Running Function: V.oneOf(V.number, V.string)
Running Function: V.allOf(V.shape({foo: V.string}), V.mapOf(V.oneOf(V.string, V.number)))
Running Function: V.custom(v => typeof v === "string" && v.startsWith("foo"))
Running Function: V.shape({foo: V.oneOf(V.literal("foo"), V.literal("bar")), bar: V.arrayOf(V.number).isLen(2)}).noextra
All tests succeeded! command