API reference / @evolu/common / Type

Type

Base Factories

FunctionDescription
arrayArray of a specific Type.
baseBase Type.
brandBranded Type.
instanceOfinstanceof Type.
literalLiteral Type.
nullishOrunion(undefined, null, T) Type.
nullOrunion(null, T) Type.
objectObject Type.
recordRecord of a key Type and value Type.
recursiveRecursive Type.
setSet of a specific Type.
tupleTuple Type.
undefinedOrunion(undefined, T) Type.
unionUnion Type.

Base Types

VariableDescription
BigInt-
Boolean-
DateJavaScript Date.
Function-
JsonValueJSON-compatible value: string, FiniteNumber, boolean, null, JsonArray, or JsonObject.
Null-
Number-
String-
Uint8Array-
Undefined-
Unknown-

String

NameDescription
Base64UrlBase64Url without padding.
CurrencyCodeA three-letter ISO 4217 currency code (e.g., USD, EUR).
DateIsoISO 8601 date-time string.
IdEvolu Id: 16 bytes encoded as a 22‑character Base64Url string.
Int64StringStringified Int64.
JsonJSON-string Type.
lengthExact length.
maxLengthMaximum length.
minLengthMinimum length.
MnemonicThe mnemonic, also known as a "seed phrase," is a set of 12 words in a specific order chosen from a predefined list (BIP39). It provides a human-readable way to store a private key securely. The mnemonic is generated safely on the user's device using cryptographically secure random number generation, ensuring it remains private and unique.
NonEmptyString-
NonEmptyString100-
NonEmptyString1000-
NonEmptyTrimmedString-
NonEmptyTrimmedString100-
NonEmptyTrimmedString1000-
regexString matching a regular expression.
SimpleNameSimple alphanumeric string for naming in file systems, URLs, and identifiers.
SimplePasswordTrimmed string between 8 and 64 characters, branded as SimplePassword.
String-
String100-
String1000-
trimmedTrimmed string.
TrimmedStringTrimmed string
TrimmedString100-
TrimmedString1000-
UrlSafeStringURL-safe string.
createIdFromStringCreates an Id from a string using SHA-256.
idCreates a branded Id Type for a table's primary key.

Number

VariableDescription
betweenNumber within a range, inclusive.
finiteFinite number.
FiniteNumberFinite number.
greaterThanNumber greater than a specified value.
greaterThanOrEqualToNumber ≥ a specified value.
intInteger within the safe range of JavaScript numbers.
IntInteger within the safe range of JavaScript numbers.
Int6464-bit signed integer.
lessThanNumber less than a specified value.
lessThanOrEqualToNumber ≤ a specified value.
multipleOfNumber that is a multiple of a divisor.
negativeNegative number (< 0).
NegativeIntNegative integer (< 0).
NegativeNumberNegative number (< 0).
nonNaNNumber that is not NaN.
NonNaNNumber-
nonNegativeNon-negative number (≥ 0).
NonNegativeIntNon-negative integer (≥ 0).
NonNegativeNumberNon-negative number (≥ 0).
nonPositiveNon-positive number (≤ 0).
NonPositiveIntNon-positive integer (≤ 0).
NonPositiveNumberNon-positive number (≤ 0).
positivePositive number (> 0).
PositiveIntPositive integer (> 0).
PositiveNumberPositive number (> 0).

Array

NameDescription
JsonArrayJSON-compatible array of JsonValue elements.
lengthExact length.
maxLengthMaximum length.
minLengthMinimum length.
arrayArray of a specific Type.

Object

NameDescription
JsonObjectJSON-compatible object with string keys and JsonValue values.
nullableToOptionalConverts each “nullable” property (a union that includes Null) into an optional property. This means consumers can omit the property entirely, or set it to null, or set it to the non-null member of the union.
objectObject Type.
omitCreate a new object Type by omitting some keys.
partialCreates a partial object type where all properties are optional.
recordRecord of a key Type and value Type.

Utilities

NameDescription
BrandFactoryHelper type for Type Factory that creates a branded Type.
InferErrorExtracts the specific error type from a Type.
InferErrorsExtracts all error types from a Type.
InferInputExtracts the input type from a Type.
InferNameExtracts the name from a Type.
InferParentExtracts the parent type from a Type.
InferParentErrorExtracts the parent error type from a Type.
InferTypeExtracts the type from a Type.
MergeObjectTypeErrorsMerge Error and ParentError into one ObjectError so tooltips and error messages are easier to read.
TypeErrorsUnion of all TypeErrors defined in the Type.ts file, including base type errors (e.g., StringError, NumberError), composite type errors (ArrayError, ObjectError), and optionally, user-defined extra errors.
TypeNameUnique identifier for a Type.
createBaseTypeErrorFormatterCreates a formatter function for a base TypeError.
createFormatTypeErrorFormats Evolu Type errors into user-friendly messages.
createTypeErrorFormatterCreates a formatter function for TypeError.
isTypeChecks if the given value is an Type.
typeErrorToStandardSchemaIssuesConverts an Evolu TypeError to Standard Schema V1 issues format.

Other

NameDescription
StandardSchemaV1-
ArrayError-
ArrayTypeArrayType extends Type with an additional element property for reflection.
Base64UrlError-
BetweenError-
BigIntError-
BooleanError-
BrandTypeEvolu Type is like a type guard that returns typed errors (via Result) instead of throwing. We either get a safely typed value or a composable typed error telling us exactly why validation failed.
BrandWithoutRefineError-
CurrencyCodeError-
DateIsoError-
EvoluTypeError-
FiniteError-
FunctionError-
GreaterThanError-
GreaterThanOrEqualToError-
IdError-
InstanceOfError-
InstanceOfTypeEvolu Type is like a type guard that returns typed errors (via Result) instead of throwing. We either get a safely typed value or a composable typed error telling us exactly why validation failed.