Skip to content

routier-collection


routier-collection / core/src / s

Variable: s ​

const s: object

Defined in: core/src/schema/builder.ts:45

Type Declaration ​

number() ​

number: <T>(...literals) => SchemaNumber<T[number] extends never ? 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] extends never ? string : T[number], never>; <T>(options, ...literals): SchemaString<T[number] extends never ? string : T[number], never>; }

Call Signature ​

<T>(...literals): SchemaString<T[number] extends never ? string : T[number], never>

A string, optionally declaring how long it can be and which values it may take.

ts
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")    // both

The 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] extends never ? string : T[number], never>

A string, optionally declaring how long it can be and which values it may take.

ts
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")    // both

The 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 ​

StringOptions

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

Returns ​

SchemaDefinition<T>

Released under the MIT License.