Skip to main content

Abstract Class: MapperRepository<K, D>

@hyperledger/identus-sdk v8.1.3


@hyperledger/identus-sdk / overview / MapperRepository

Abstract Class: MapperRepository<K, D>

Defined in: packages/lib/sdk/src/pluto/repositories/builders/MapperRepository.ts:13

MapperRepository

Extends BaseRepository to handle Store interactions while mapping between a Domain class and a Model object

Extends​

Extended by​

Type Parameters​

Type Parameter
K extends TableName
D extends Storable

Constructors​

Constructor​

new MapperRepository<K, D>(store: Store, name: K): MapperRepository<K, D>

Defined in: packages/lib/sdk/src/pluto/repositories/builders/BaseRepository.ts:20

Parameters​

ParameterType
storeStore
nameK

Returns​

MapperRepository<K, D>

Inherited from​

BaseRepository.constructor

Methods​

byUUID()​

byUUID(uuid: string): Promise<D | null>

Defined in: packages/lib/sdk/src/pluto/repositories/builders/MapperRepository.ts:75

Utility fn for common use of find with uuid

Parameters​

ParameterTypeDescription
uuidstring-

Returns​

Promise<D | null>

first found Domain instance or undefined

Throws​

Domain.PlutoError.StoreQueryFailed if the query fails


delete()​

delete(uuid: string): Promise<void>

Defined in: packages/lib/sdk/src/pluto/repositories/builders/BaseRepository.ts:53

Parameters​

ParameterType
uuidstring

Returns​

Promise<void>

Inherited from​

BaseRepository.delete


find()​

find(selector?: Partial<CollectionMap[K]>): Promise<D[]>

Defined in: packages/lib/sdk/src/pluto/repositories/builders/MapperRepository.ts:48

Search for instances based on given values

Parameters​

ParameterTypeDescription
selector?Partial<CollectionMap[K]>object with matchable properties

Returns​

Promise<D[]>

all found Domain instances

Throws​

Domain.PlutoError.StoreQueryFailed if the query fails


findOne()​

findOne(selector?: Partial<CollectionMap[K]>): Promise<D | null>

Defined in: packages/lib/sdk/src/pluto/repositories/builders/MapperRepository.ts:61

Search for single instance based on given values

Parameters​

ParameterTypeDescription
selector?Partial<CollectionMap[K]>object with matchable properties

Returns​

Promise<D | null>

first found Domain instance or null

Throws​

Domain.PlutoError.StoreQueryFailed if the query fails


get()​

get(query?: Query<CollectionSchemas[K]>): Promise<D[]>

Defined in: packages/lib/sdk/src/pluto/repositories/builders/MapperRepository.ts:36

Search the Store, mapping any found to Domain

Parameters​

ParameterTypeDescription
query?Query<CollectionSchemas[K]>either an object or array of objects with matchable properties

Returns​

Promise<D[]>

Array of matched Domain instances

Throws​

Domain.PlutoError.StoreQueryFailed if the query fails


getModels()​

getModels(query?: Query<CollectionSchemas[K]>): Promise<CollectionMap[K][]>

Defined in: packages/lib/sdk/src/pluto/repositories/builders/BaseRepository.ts:87

Search the Store for Models

Parameters​

ParameterTypeDescription
query?Query<CollectionSchemas[K]>a Query object, a set of values and operators defining the query

Returns​

Promise<CollectionMap[K][]>

Array of matched Models

See​

../types.ts

Examples​

search for a model with uuid and name

  repo.getModels({ selector: { uuid: "1", name: "eg" }})

search for models with uuid of 1 or 2

  repo.getModels({ selector: { $or: [{ uuid: "1" }, { uuid: "2" }] }})

search for all models

  repo.getModels()

Throws​

Domain.Models if the query fails

Inherited from​

BaseRepository.getModels


insert()​

insert(model: CollectionMap[K]): Promise<CollectionMap[K]>

Defined in: packages/lib/sdk/src/pluto/repositories/builders/BaseRepository.ts:32

Persist the Model in the Store.

Parameters​

ParameterTypeDescription
modelCollectionMap[K]-

Returns​

Promise<CollectionMap[K]>

Throws​

Domain.PlutoError.StoreInsertError if insert fails

Inherited from​

BaseRepository.insert


save()​

save(domain: D): Promise<void>

Defined in: packages/lib/sdk/src/pluto/repositories/builders/MapperRepository.ts:88

Persist the Domain instance in the Store.

Parameters​

ParameterTypeDescription
domainDWill be mapped to relevant Model for persistance

Returns​

Promise<void>

See​

BaseRepository.insert

Throws​

Domain.PlutoError.StoreInsertError if insert fails


toDomain()​

abstract toDomain(model: CollectionMap[K]): D

Defined in: packages/lib/sdk/src/pluto/repositories/builders/MapperRepository.ts:21

Map from a Model to the Domain class

Parameters​

ParameterTypeDescription
modelCollectionMap[K]the stored Model with a uuid

Returns​

D

Domain with uuid set


toModel()​

abstract toModel(domain: D): CollectionMap[K]

Defined in: packages/lib/sdk/src/pluto/repositories/builders/MapperRepository.ts:27

Map from a Domain class to a Model

Parameters​

ParameterTypeDescription
domainDmay be missing uuid

Returns​

CollectionMap[K]

Model potentially without uuid


update()​

update(model: CollectionMap[K]): Promise<void>

Defined in: packages/lib/sdk/src/pluto/repositories/builders/BaseRepository.ts:44

Parameters​

ParameterType
modelCollectionMap[K]

Returns​

Promise<void>

Inherited from​

BaseRepository.update