Skip to main content

CoreRepository

@webda/models


Interface: CoreRepository<T>

Defined in: packages/models/src/repositories/repository.ts:23

Core repository interface - every repository must implement this

Contains only the essential CRUD operations that work across all storage backends (SQL, NoSQL, in-memory, etc.)

Extended by​

Type Parameters​

T​

T extends ModelClass = ModelClass

Properties​

[WEBDA_TEST]?​

optional [WEBDA_TEST]?: object

Defined in: packages/models/src/repositories/repository.ts:151

clear()​

clear(): Promise<void>

Returns​

Promise<void>

Methods​

create()​

create(data, save?): Promise<InstanceType<T>>

Defined in: packages/models/src/repositories/repository.ts:87

Create data in the store

Parameters​

data​

Helpers<InstanceType<T>>

save?​

boolean

if false, create in-memory object without saving

Returns​

Promise<InstanceType<T>>


delete()​

delete<K>(uid, conditionField?, condition?): Promise<void>

Defined in: packages/models/src/repositories/repository.ts:96

Delete data from the store

Type Parameters​

K​

K extends string

Parameters​

uid​

string | PrimaryKeyType<InstanceType<T>>

Primary key or UID string

conditionField?​

K | null

Field to check for condition (optional)

condition?​

PropertyPathType<InstanceType<T>, K> | JSONed<PropertyPathType<InstanceType<T>, K>>

Value to check for condition (optional)

Returns​

Promise<void>


emit()​

emit<K>(event, payload): Promise<void>

Defined in: packages/models/src/repositories/repository.ts:146

Type Parameters​

K​

K extends string | number | symbol

Parameters​

event​

K

payload​

InstanceType<T>[typeof WEBDA_EVENTS][K]

Returns​

Promise<void>


excludePrimaryKey()​

excludePrimaryKey(object): any

Defined in: packages/models/src/repositories/repository.ts:66

Remove the primary key from the object

Parameters​

object​

any

Returns​

any


exists()​

exists(uid): Promise<boolean>

Defined in: packages/models/src/repositories/repository.ts:107

Verify if the object exists

Parameters​

uid​

string | PrimaryKeyType<InstanceType<T>>

Returns​

Promise<boolean>


fromUID()​

fromUID(uid, forceObject?): ModelRefWithCreate<InstanceType<T>>

Defined in: packages/models/src/repositories/repository.ts:37

In REST API, composite keys are represented as a string with the format "key1#key2#key3" We need a way to convert this string to the object

Parameters​

uid​

string

serialized primary key

forceObject?​

boolean

if true, the result will be an object with the primary key fields

Returns​

ModelRefWithCreate<InstanceType<T>>


get()​

get(primaryKey): Promise<HelperProperties<InstanceType<T>>>

Defined in: packages/models/src/repositories/repository.ts:79

Get data from the store

Parameters​

primaryKey​

PrimaryKeyType<InstanceType<T>>

Returns​

Promise<HelperProperties<InstanceType<T>>>


getPrimaryKey()​

getPrimaryKey<K>(object, forceObject?): K extends false ? PrimaryKeyType<InstanceType<T>> : PrimaryKey<InstanceType<T>>

Defined in: packages/models/src/repositories/repository.ts:51

Extract the primary key from the object

Type Parameters​

K​

K

Parameters​

object​

any

to extract the primary key from

forceObject?​

boolean

if true, the result will be an object with the primary key fields

Returns​

K extends false ? PrimaryKeyType<InstanceType<T>> : PrimaryKey<InstanceType<T>>


getRootModel()​

getRootModel(): T

Defined in: packages/models/src/repositories/repository.ts:28

Get the root model class for this repository

Returns​

T


getUID()​

getUID(object): string

Defined in: packages/models/src/repositories/repository.ts:60

Get the UID of the object

Parameters​

object​

any

to extract the primary key from

Returns​

string


iterate()​

iterate(query, params?): AsyncGenerator<InstanceType<T>>

Defined in: packages/models/src/repositories/repository.ts:129

Iterate over the store

Parameters​

query​

WebdaQLString<InstanceType<T>>

the WebdaQL query, optionally with ? or :name placeholders

params?​

QueryParameters

values for the placeholders: an array for ?, an object for :name

Returns​

AsyncGenerator<InstanceType<T>>


off()​

off<K>(event, listener): void

Defined in: packages/models/src/repositories/repository.ts:142

Type Parameters​

K​

K extends string | number | symbol

Parameters​

event​

K

listener​

(data) => void

Returns​

void


on()​

on<K>(event, listener): void

Defined in: packages/models/src/repositories/repository.ts:134

Event listeners

Type Parameters​

K​

K extends string | number | symbol

Parameters​

event​

K

listener​

(data) => void

Returns​

void


once()​

once<K>(event, listener): void

Defined in: packages/models/src/repositories/repository.ts:138

Type Parameters​

K​

K extends string | number | symbol

Parameters​

event​

K

listener​

(data) => void

Returns​

void


parseUID()​

parseUID(uid, forceObject?): PrimaryKeyType<InstanceType<T>> | PrimaryKey<InstanceType<T>>

Defined in: packages/models/src/repositories/repository.ts:44

Parse the UID into the primary key

Parameters​

uid​

string

forceObject?​

boolean

Returns​

PrimaryKeyType<InstanceType<T>> | PrimaryKey<InstanceType<T>>


query()​

query(query, params?): Promise<{ continuationToken?: string; results: InstanceType<T>[]; }>

Defined in: packages/models/src/repositories/repository.ts:115

Query the store

Parameters​

query​

WebdaQLString<InstanceType<T>>

the WebdaQL query, optionally with ? or :name placeholders

params?​

QueryParameters

values for the placeholders: an array for ?, an object for :name

Returns​

Promise<{ continuationToken?: string; results: InstanceType<T>[]; }>


ref()​

ref(pk): ModelRefWithCreate<InstanceType<T>>

Defined in: packages/models/src/repositories/repository.ts:72

Refers to the object in the store

Parameters​

pk​

SettablePrimaryKey<InstanceType<T>>

primary key

Returns​

ModelRefWithCreate<InstanceType<T>>