Skip to main content

MapperRepository

@hyperledger/identus-sdk v7.0.0


@hyperledger/identus-sdk / overview / MapperRepository

Abstract Class: MapperRepository<T, D>

Defined in: 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
T extends Model
D extends Storable

Constructors

Constructor

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

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

Parameters

ParameterType
storeStore
namestring

Returns

MapperRepository<T, D>

Inherited from

BaseRepository.constructor

Methods

byUUID()

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

Defined in: 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: src/pluto/repositories/builders/BaseRepository.ts:52

Parameters

ParameterType
uuidstring

Returns

Promise<void>

Inherited from

BaseRepository.delete


find()

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

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

Search for instances based on given values

Parameters

ParameterTypeDescription
selector?Partial<T>object with matchable properties

Returns

Promise<D[]>

all found Domain instances

Throws

Domain.PlutoError.StoreQueryFailed if the query fails


findOne()

findOne(selector?: Partial<T>): Promise<D | null>

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

Search for single instance based on given values

Parameters

ParameterTypeDescription
selector?Partial<T>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<T>): Promise<D[]>

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

Search the Store, mapping any found to Domain

Parameters

ParameterTypeDescription
query?Query<T>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<T>): Promise<T[]>

Defined in: src/pluto/repositories/builders/BaseRepository.ts:86

Search the Store for Models

Parameters

ParameterTypeDescription
query?Query<T>a Query object, a set of values and operators defining the query

Returns

Promise<T[]>

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: T): Promise<T>

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

Persist the Model in the Store.

Parameters

ParameterTypeDescription
modelT

Returns

Promise<T>

Throws

Domain.PlutoError.StoreInsertError if insert fails

Inherited from

BaseRepository.insert


save()

save(domain: D): Promise<void>

Defined in: src/pluto/repositories/builders/MapperRepository.ts:89

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: T): D

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

Map from a Model to the Domain class

Parameters

ParameterTypeDescription
modelTthe stored Model with a uuid

Returns

D

Domain with uuid set


toModel()

abstract toModel(domain: D): T

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

Map from a Domain class to a Model

Parameters

ParameterTypeDescription
domainDmay be missing uuid

Returns

T

Model potentially without uuid


update()

update(model: T): Promise<void>

Defined in: src/pluto/repositories/builders/BaseRepository.ts:43

Parameters

ParameterType
modelT

Returns

Promise<void>

Inherited from

BaseRepository.update