Skip to content

routier-collection


routier-collection / core/src / SchemaBase

Abstract Class: SchemaBase<T, TModifiers> ​

Defined in: core/src/schema/property/base/SchemaBase.ts:3

Extended by ​

Type Parameters ​

T ​

T extends any

TModifiers ​

TModifiers extends SchemaModifiers

Constructors ​

Constructor ​

new SchemaBase<T, TModifiers>(entity?, literals?): SchemaBase<T, TModifiers>

Defined in: core/src/schema/property/base/SchemaBase.ts:75

Parameters ​

entity? ​

SchemaBase<T, TModifiers>

literals? ​

T[]

Returns ​

SchemaBase<T, TModifiers>

Properties ​

instance ​

abstract instance: T

Defined in: core/src/schema/property/base/SchemaBase.ts:5


modifiers ​

modifiers: TModifiers

Defined in: core/src/schema/property/base/SchemaBase.ts:6


isNullable ​

isNullable: boolean = false

Defined in: core/src/schema/property/base/SchemaBase.ts:8


isUnmapped ​

isUnmapped: boolean = false

Defined in: core/src/schema/property/base/SchemaBase.ts:9


isOptional ​

isOptional: boolean = false

Defined in: core/src/schema/property/base/SchemaBase.ts:10


isKey ​

isKey: boolean = false

Defined in: core/src/schema/property/base/SchemaBase.ts:11


isIdentity ​

isIdentity: boolean = false

Defined in: core/src/schema/property/base/SchemaBase.ts:12


isReadonly ​

isReadonly: boolean = false

Defined in: core/src/schema/property/base/SchemaBase.ts:13


isDistinct ​

isDistinct: boolean = false

Defined in: core/src/schema/property/base/SchemaBase.ts:14


transform ​

transform: PropertyTransform<unknown> = null

Defined in: core/src/schema/property/base/SchemaBase.ts:19

Set by .modify(x => x.transform(...)). A live reference, never stringified. null when the property is stored as it is.


indexes ​

indexes: string[] = []

Defined in: core/src/schema/property/base/SchemaBase.ts:20


fromPropertyName ​

fromPropertyName: string = null

Defined in: core/src/schema/property/base/SchemaBase.ts:21


dimensions ​

dimensions: number = null

Defined in: core/src/schema/property/base/SchemaBase.ts:35

How many numbers a vector holds. null for every other type.

Declared here rather than on SchemaVector because a modifier WRAPS rather than extends: s.vector(1536).optional() is a SchemaOptional, and anything reachable only through the original class is lost the moment a modifier is added. type survives for exactly this reason — the copy constructor below carries it — and a dimension count has to travel with it, or an optional vector reaches a backend as a vector of unknown width and cannot be given a column.

innerSchema is the cautionary example: it lives on SchemaArray alone, so a modified array arrives with no element type and clones through the slow path.


maxLength ​

maxLength: number = null

Defined in: core/src/schema/property/base/SchemaBase.ts:50

The longest string the property is declared to hold. null for every other type, and for a string that declares nothing.

Declared here rather than on SchemaString for the same reason as dimensions above: s.string({ maxLength: 4000 }).optional() is a SchemaOptional, so anything reachable only through SchemaString is lost the moment a modifier is added.

A declaration, never a validation. Core does not check a value against it and does not truncate. The backend that can use the number does: MySQL gives the column VARCHAR(maxLength) instead of the blanket VARCHAR(255). Every other backend ignores it, because a string column that is already unbounded cannot be made more correct by knowing a bound.


isSearchable ​

isSearchable: boolean = false

Defined in: core/src/schema/property/base/SchemaBase.ts:62

Whether this string may be tokenised into a full-text search index.

Set by .searchable(), and only ever true on a string. Eligibility, not membership: a collection that never declares .searchIndex() indexes nothing regardless.

Copied by the constructor below, so s.string().searchable().optional() stays searchable. Every flag on this class is copied for the same reason: a modifier WRAPS rather than extends, so anything the constructor forgets is silently dropped the moment a property gains one more modifier.


foreignKeyDefinition ​

foreignKeyDefinition: ForeignKey<unknown> = null

Defined in: core/src/schema/property/base/SchemaBase.ts:64


tags ​

tags: string[] = []

Defined in: core/src/schema/property/base/SchemaBase.ts:65


injected ​

injected: any = null

Defined in: core/src/schema/property/base/SchemaBase.ts:66


defaultValue ​

defaultValue: DefaultValue<T> = null

Defined in: core/src/schema/property/base/SchemaBase.ts:67


valueSerializer ​

valueSerializer: PropertySerializer<T> = null

Defined in: core/src/schema/property/base/SchemaBase.ts:68


valueDeserializer ​

valueDeserializer: PropertyDeserializer<T> = null

Defined in: core/src/schema/property/base/SchemaBase.ts:69


type ​

type: SchemaTypes

Defined in: core/src/schema/property/base/SchemaBase.ts:70


functionBody ​

functionBody: FunctionBody<any, T>

Defined in: core/src/schema/property/base/SchemaBase.ts:71


literals ​

readonly literals: T[] = []

Defined in: core/src/schema/property/base/SchemaBase.ts:73

Released under the MIT License.