T
Table of contents
namespace
packages/validate/src/index.ts
Properties
any
Public readonly variable
Validation that accepts any value. Generally this should be avoided, but you can use it as an escape hatch if you want to work without validations for e.g. a prototype.
any: Validator<any>
packages/validate/src/lib/validation.ts
array
Public readonly variable
Validates that a value is an array. To check the contents of the array, use T.arrayOf.
array: Validator<unknown[]>
packages/validate/src/lib/validation.ts
bigint
Public readonly variable
Validates that a value is a bigint.
bigint: Validator<bigint>
packages/validate/src/lib/validation.ts
boolean
Public readonly variable
Validates that a value is boolean.
boolean: Validator<boolean>
packages/validate/src/lib/validation.ts
indexKey
Public readonly variable
Validates that a value is an IndexKey.
indexKey: Validator<IndexKey>
packages/validate/src/lib/validation.ts
integer
Public readonly variable
Fails if number is not an integer
integer: Validator<number>
packages/validate/src/lib/validation.ts
jsonValue
Public readonly variable
Validate that a value is valid JSON.
jsonValue: Validator<JsonValue>
packages/validate/src/lib/validation.ts
linkUrl
Public readonly variable
Validates that a value is a url safe to use as a link.
linkUrl: Validator<string>
packages/validate/src/lib/validation.ts
nonZeroInteger
Public readonly variable
Fails if value <= 0 and is not an integer
nonZeroInteger: Validator<number>
packages/validate/src/lib/validation.ts
nonZeroNumber
Public readonly variable
Fails if value <= 0
nonZeroNumber: Validator<number>
packages/validate/src/lib/validation.ts
number
Public readonly variable
Validates that a value is a finite non-NaN number.
number: Validator<number>
packages/validate/src/lib/validation.ts
positiveInteger
Public readonly variable
Fails if value < 0 and is not an integer
positiveInteger: Validator<number>
packages/validate/src/lib/validation.ts
positiveNumber
Public readonly variable
Fails if value < 0
positiveNumber: Validator<number>
packages/validate/src/lib/validation.ts
srcUrl
Public readonly variable
Validates that a valid is a url safe to load as an asset.
srcUrl: Validator<string>
packages/validate/src/lib/validation.ts
string
Public readonly variable
Validates that a value is a string.
string: Validator<string>
packages/validate/src/lib/validation.ts
unknown
Public readonly variable
Validation that accepts any value. Useful as a starting point for building your own custom validations.
unknown: Validator<unknown>
packages/validate/src/lib/validation.ts
unknownObject
Public readonly variable
unknownObject: Validator<Record<string, unknown>>
packages/validate/src/lib/validation.ts
Methods
arrayOf
Public function
Validates that a value is an array whose contents matches the passed-in validator.
function arrayOf<T>(itemValidator: Validatable<T>): ArrayOfValidator<T>
Name | Description |
---|---|
|
|
ArrayOfValidator<T>
packages/validate/src/lib/validation.ts
dict
Public function
Validation that an option is a dict with particular keys and values.
function dict<Key extends string, Value>(
keyValidator: Validatable<Key>,
valueValidator: Validatable<Value>
): DictValidator<Key, Value>
Name | Description |
---|---|
|
|
|
|
DictValidator<Key, Value>
packages/validate/src/lib/validation.ts
jsonDict
Public function
Validate an object has a particular shape.
function jsonDict(): DictValidator<string, JsonValue>
packages/validate/src/lib/validation.ts
literal
Public function
Validates that a value matches another that was passed in.
const trueValidator = T.literal(true)
function literal<T extends boolean | number | string>(
expectedValue: T
): Validator<T>
Name | Description |
---|---|
|
|
Validator<T>
packages/validate/src/lib/validation.ts
literalEnum
Public function
function literalEnum<const Values extends readonly unknown[]>(
...values: Values
): Validator<Values[number]>
Name | Description |
---|---|
|
|
Validator<Values[number]>
packages/validate/src/lib/validation.ts
model
Public function
A named object with an ID. Errors will be reported as being part of the object with the given name.
function model<
T extends {
readonly id: string
},
>(name: string, validator: Validatable<T>): Validator<T>
Name | Description |
---|---|
|
|
|
|
Validator<T>
packages/validate/src/lib/validation.ts
nullable
Public function
function nullable<T>(validator: Validatable<T>): Validator<null | T>
Name | Description |
---|---|
|
|
Validator<null | T>
packages/validate/src/lib/validation.ts
object
Public function
Validate an object has a particular shape.
function object<Shape extends object>(config: {
readonly [K in keyof Shape]: Validatable<Shape[K]>
}): ObjectValidator<
{
[P in ExtractRequiredKeys<Shape>]: Shape[P]
} & {
[P in ExtractOptionalKeys<Shape>]?: Shape[P]
}
>
Name | Description |
---|---|
|
|
ObjectValidator<
{
[P in ExtractRequiredKeys<Shape>]: Shape[P]
} & {
[P in ExtractOptionalKeys<Shape>]?: Shape[P]
}
>
packages/validate/src/lib/validation.ts
optional
Public function
function optional<T>(validator: Validatable<T>): Validator<T | undefined>
Name | Description |
---|---|
|
|
Validator<T | undefined>
packages/validate/src/lib/validation.ts
setEnum
Public function
function setEnum<T>(values: ReadonlySet<T>): Validator<T>
Name | Description |
---|---|
|
|
Validator<T>
packages/validate/src/lib/validation.ts
union
Public function
Validate a union of several object types. Each object must have a property matching key
which should be a unique string.
const catValidator = T.object({ kind: T.value('cat'), meow: T.boolean })
const dogValidator = T.object({ kind: T.value('dog'), bark: T.boolean })
const animalValidator = T.union('kind', {
cat: catValidator,
dog: dogValidator,
})
function union<
Key extends string,
Config extends UnionValidatorConfig<Key, Config>,
>(key: Key, config: Config): UnionValidator<Key, Config>
Name | Description |
---|---|
|
|
|
|
UnionValidator<Key, Config>
packages/validate/src/lib/validation.ts