routier-collection / core/src / s
Variable: s
consts:object
Defined in: core/src/schema/builder.ts:45
Type Declaration
number()
number: <
T>(...literals) =>SchemaNumber<T[number] extendsnever?number:T[number],never>
Type Parameters
T
T extends number[] = number[]
Parameters
literals
...T
Returns
SchemaNumber<T[number] extends never ? number : T[number], never>
string()
string: {<
T>(...literals):SchemaString<T[number] extendsnever?string:T[number],never>; <T>(options, ...literals):SchemaString<T[number] extendsnever?string:T[number],never>; }
Call Signature
<
T>(...literals):SchemaString<T[number] extendsnever?string:T[number],never>
A string, optionally declaring how long it can be and which values it may take.
s.string() // any string
s.string("draft", "published") // a literal union
s.string({ maxLength: 4000 }) // any string, declared long
s.string({ maxLength: 8 }, "a", "b") // bothThe options object is a leading parameter rather than a .maxLength() modifier so the declaration stays on the factory, next to the literals. A modifier would also have to survive being wrapped by another modifier, which is the trap SchemaBase.maxLength documents.
Type Parameters
T
T extends string[] = string[]
Parameters
literals
...T
Returns
SchemaString<T[number] extends never ? string : T[number], never>
Call Signature
<
T>(options, ...literals):SchemaString<T[number] extendsnever?string:T[number],never>
A string, optionally declaring how long it can be and which values it may take.
s.string() // any string
s.string("draft", "published") // a literal union
s.string({ maxLength: 4000 }) // any string, declared long
s.string({ maxLength: 8 }, "a", "b") // bothThe options object is a leading parameter rather than a .maxLength() modifier so the declaration stays on the factory, next to the literals. A modifier would also have to survive being wrapped by another modifier, which is the trap SchemaBase.maxLength documents.
Type Parameters
T
T extends string[] = string[]
Parameters
options
literals
...T
Returns
SchemaString<T[number] extends never ? string : T[number], never>
boolean()
boolean: <
T>() =>SchemaBoolean<T,never>
Type Parameters
T
T extends boolean = boolean
Returns
SchemaBoolean<T, never>
date()
date: <
T>() =>SchemaDate<T,never>
Type Parameters
T
T extends Date = Date
Returns
SchemaDate<T, never>
array()
array: <
T>(schema) =>SchemaArray<SchemaBase<T,never>,never>
Type Parameters
T
T extends unknown
Parameters
schema
SchemaBase<T, never>
Returns
SchemaArray<SchemaBase<T, never>, never>
object()
object: <
T>(schema) =>SchemaObject<T,never>
Type Parameters
T
T extends object = { }
Parameters
schema
T
Returns
SchemaObject<T, never>
file()
file: () =>
SchemaFile<FileReferenceValue,never>
A file. Assign content, read back a reference.
Needs @routier/blob-plugin wrapping your plugin to turn the one into the other; core only carries the value through untouched.
Returns
SchemaFile<FileReferenceValue, never>
vector()
vector: (
dimensions) =>SchemaVector<VectorValue,never>
An embedding of dimensions numbers, searchable with .nearest().
Every backend supports it. One with a native vector column uses it; the rest store the numbers as JSON and score the search in memory, which returns the same rows.
Parameters
dimensions
number
Returns
SchemaVector<VectorValue, never>
define()
define: <
T>(collectionName,schema) =>SchemaDefinition<T>
Type Parameters
T
T extends object
Parameters
collectionName
string
schema
T