Class: DIDDataStore<ModelTypes, Alias>¶
did-datastore.DIDDataStore
The DIDDataStore class provides simple APIs to interact with data records associated to a DID.
It is exported by the did-datastore
module.
import { DIDDataStore } from '@glazed/did-datastore'
Type parameters¶
Name | Type |
---|---|
ModelTypes |
extends ModelTypeAliases = ModelTypeAliases |
Alias |
extends keyof ModelTypes ["definitions" ] = keyof ModelTypes ["definitions" ] |
Constructors¶
constructor¶
• new DIDDataStore<ModelTypes
, Alias
>(params
)
Type parameters¶
Name | Type |
---|---|
ModelTypes |
extends ModelTypeAliases <Record <string , any >, Record <string , string >, Record <string , string >> = ModelTypeAliases <Record <string , any >, Record <string , string >, Record <string , string >> |
Alias |
extends string | number | symbol = keyof ModelTypes ["definitions" ] |
Parameters¶
Name | Type |
---|---|
params |
DIDDataStoreParams <ModelTypes > |
Accessors¶
authenticated¶
• get
authenticated(): boolean
Returns whether a DID instance is attached to the Ceramic client instance used internally or not.
Returns¶
boolean
ceramic¶
• get
ceramic(): CeramicApi
Ceramic client instance used internally.
Returns¶
CeramicApi
id¶
• get
id(): string
Returns the DID string currently authenticated on the Ceramic instance used internally, or throws an error if not authenticated.
Returns¶
string
loader¶
• get
loader(): TileLoader
TileLoader
instance used internally.
Returns¶
TileLoader
model¶
• get
model(): DataModel
<ModelTypes
, ModelTypesToAliases
<ModelTypes
>>
DataModel
runtime instance used internally.
Returns¶
DataModel
<ModelTypes
, ModelTypesToAliases
<ModelTypes
>>
Methods¶
get¶
▸ get<Key
, ContentType
>(key
, did?
): Promise
<null
| ContentType
>
Get the record contents.
Type parameters¶
Name | Type |
---|---|
Key |
extends string | number | symbol |
ContentType |
DefinitionContentType <ModelTypes , Key > |
Parameters¶
Name | Type |
---|---|
key |
Key |
did? |
string |
Returns¶
Promise
<null
| ContentType
>
getDefinition¶
▸ getDefinition(id
): Promise
<DefinitionWithID
<Record
<string
, unknown
>>>
Load and validate a definition by its ID.
Parameters¶
Name | Type |
---|---|
id |
string | StreamID |
Returns¶
Promise
<DefinitionWithID
<Record
<string
, unknown
>>>
getDefinitionID¶
▸ getDefinitionID(aliasOrID
): string
Get the definition ID for the given alias.
Parameters¶
Name | Type |
---|---|
aliasOrID |
string |
Returns¶
string
getIndex¶
▸ getIndex(did?
): Promise
<null
| IdentityIndex
>
Load the full index contents.
Parameters¶
Name | Type |
---|---|
did |
string |
Returns¶
Promise
<null
| IdentityIndex
>
getMultiple¶
▸ getMultiple<Key
, ContentType
>(key
, dids
): Promise
<(null
| ContentType
)[]>
Get the record contents for multiple DIDs at once.
Type parameters¶
Name | Type |
---|---|
Key |
extends string | number | symbol |
ContentType |
DefinitionContentType <ModelTypes , Key > |
Parameters¶
Name | Type |
---|---|
key |
Key |
dids |
string [] |
Returns¶
Promise
<(null
| ContentType
)[]>
getRecord¶
▸ getRecord<ContentType
>(definitionID
, did?
): Promise
<null
| ContentType
>
Load a record contents for the given definition ID.
Type parameters¶
Name | Type |
---|---|
ContentType |
unknown |
Parameters¶
Name | Type |
---|---|
definitionID |
string |
did? |
string |
Returns¶
Promise
<null
| ContentType
>
getRecordDocument¶
▸ getRecordDocument(definitionID
, did?
): Promise
<null
| TileDoc
>
Load a record TileDocument for the given definition ID.
Parameters¶
Name | Type |
---|---|
definitionID |
string |
did? |
string |
Returns¶
Promise
<null
| TileDoc
>
getRecordID¶
▸ getRecordID(definitionID
, did?
): Promise
<null
| string
>
Load a record ID in the index for the given definition ID.
Parameters¶
Name | Type |
---|---|
definitionID |
string |
did? |
string |
Returns¶
Promise
<null
| string
>
has¶
▸ has(key
, did?
): Promise
<boolean
>
Returns whether a record exists in the index or not.
Parameters¶
Name | Type |
---|---|
key |
Alias |
did? |
string |
Returns¶
Promise
<boolean
>
iterator¶
▸ iterator(did?
): AsyncIterableIterator
<Entry
>
Asynchronously iterate over the entries of the index, loading one record at a time.
Parameters¶
Name | Type |
---|---|
did? |
string |
Returns¶
AsyncIterableIterator
<Entry
>
merge¶
▸ merge<Key
, ContentType
>(key
, content
, options?
): Promise
<StreamID
>
Perform a shallow (one level) merge of the record contents.
Type parameters¶
Name | Type |
---|---|
Key |
extends string | number | symbol |
ContentType |
DefinitionContentType <ModelTypes , Key > |
Parameters¶
Name | Type |
---|---|
key |
Key |
content |
ContentType |
options |
CreateOptions |
Returns¶
Promise
<StreamID
>
remove¶
▸ remove(key
, controller?
): Promise
<void
>
Remove a record from the index.
Notice: this does not change the contents of the record itself, only the index.
Parameters¶
Name | Type |
---|---|
key |
Alias |
controller |
string |
Returns¶
Promise
<void
>
set¶
▸ set<Key
, ContentType
>(key
, content
, options?
): Promise
<StreamID
>
Set the record contents.
Warning: calling this method replaces any existing contents in the record, use
merge
if you want to only change some fields.
Type parameters¶
Name | Type |
---|---|
Key |
extends string | number | symbol |
ContentType |
DefinitionContentType <ModelTypes , Key > |
Parameters¶
Name | Type |
---|---|
key |
Key |
content |
ContentType |
options |
CreateOptions |
Returns¶
Promise
<StreamID
>
setAll¶
▸ setAll<Contents
>(contents
, options?
): Promise
<IdentityIndex
>
Set the contents of multiple records at once. The index only gets updated after all wanted records have been written.
Warning: calling this method replaces any existing contents in the records.
Type parameters¶
Name | Type |
---|---|
Contents |
extends DefinitionsContentTypes <ModelTypes , Record <string , unknown >> |
Parameters¶
Name | Type |
---|---|
contents |
Contents |
options |
CreateOptions |
Returns¶
Promise
<IdentityIndex
>
setDefaults¶
▸ setDefaults<Contents
>(contents
, options?
): Promise
<IdentityIndex
>
Set the contents of multiple records if they are not already set in the index.
Type parameters¶
Name | Type |
---|---|
Contents |
extends DefinitionsContentTypes <ModelTypes , Record <string , unknown >> |
Parameters¶
Name | Type |
---|---|
contents |
Contents |
options |
CreateOptions |
Returns¶
Promise
<IdentityIndex
>
setRecord¶
▸ setRecord(definitionID
, content
, options?
): Promise
<StreamID
>
Set the contents of a record for the given definition ID.
Parameters¶
Name | Type |
---|---|
definitionID |
string |
content |
Record <string , any > |
options |
CreateOptions |
Returns¶
Promise
<StreamID
>