Skip to main content

Class: Repository<ST>

Defined in: repo/repo.ts:108

Extends

Type Parameters

Type ParameterDefault type
ST extends RepoStorage<ST>MemRepoStorage

Constructors

Constructor

new Repository<ST>(db, path, trustPool, __namedParameters?): Repository<ST>

Defined in: repo/repo.ts:132

Parameters

ParameterType
dbGoatDB
pathstring
trustPoolTrustPool
__namedParametersRepositoryConfig<ST>

Returns

Repository<ST>

Overrides

Emitter.constructor

Properties

PropertyModifierTypeDefault valueInherited fromDefined in
allowedNamespacesreadonlystring[]undefined-repo/repo.ts:114
allowMergepublicbooleantrue-repo/repo.ts:130
alwaysActivereadonlybooleanundefinedEmitter.alwaysActivebase/emitter.ts:9
authorizer?readonlyAuthRuleundefined-repo/repo.ts:116
dbreadonlyGoatDBundefined-repo/repo.ts:133
pathreadonlystringundefined-repo/repo.ts:134
priorityReporeadonlybooleanundefined-repo/repo.ts:111
storagereadonlySTundefined-repo/repo.ts:112
trustPoolreadonlyTrustPoolundefined-repo/repo.ts:113
callCountstaticnumber0-repo/repo.ts:725

Accessors

isActive

Get Signature

get isActive(): boolean

Defined in: base/emitter.ts:50

Returns

boolean

Inherited from

Emitter.isActive


orgId

Get Signature

get orgId(): string

Defined in: repo/repo.ts:191

Returns

string

Methods

attach()

attach<C, E>(e, c): () => void

Defined in: base/emitter.ts:90

Type Parameters

Type Parameter
C extends Function
E extends RepositoryEvent | EmitterEvent

Parameters

ParameterType
eE
cC

Returns

(): void

Returns

void

Inherited from

Emitter.attach


changedFieldsInCommit()

changedFieldsInCommit(commit): string[]

Defined in: repo/repo.ts:317

This method computes a quick diff between the given commit and all of its parents. It determines which fields were changed in this commit, rather than what the changes were.

Parameters

ParameterTypeDescription
commitstring | CommitThe commit to inspect.

Returns

string[]

An array of fields changed in this commit or null if the full information isn't yet available for this commit due to partial commit graph.


commitIsCorrupted()

commitIsCorrupted(c): boolean

Defined in: repo/repo.ts:665

Parameters

ParameterType
cCommit

Returns

boolean


commitIsHighProbabilityLeaf()

commitIsHighProbabilityLeaf(candidate): boolean

Defined in: repo/repo.ts:351

This method determines, to a high probability, whether the given commit is a leaf commit or not, even when the full graph isn't available.

It works by inspecting the bloom filters of the newest 2*log4(N) commits, and checking for the presence of the candidate commit. If present in all filters, the commit guaranteed not to be a leaf.

Parameters

ParameterTypeDescription
candidatestring | CommitThe commit to inspect.

Returns

boolean

true if the commit is a leaf and can be safely included in a merge commit, false otherwise.


commits()

commits(session?): Generator<Commit>

Defined in: repo/repo.ts:241

Parameters

ParameterType
session?Session

Returns

Generator<Commit>


commitsForKey()

commitsForKey(key, session?): Generator<Commit>

Defined in: repo/repo.ts:273

Parameters

ParameterType
keystring
session?Session

Returns

Generator<Commit>


create()

create<S>(key, value): Promise<Commit>

Defined in: repo/repo.ts:1235

Type Parameters

Type Parameter
S extends Schema

Parameters

ParameterType
keystring
valueItem<S>

Returns

Promise<Commit>


debugNetworkForKey()

debugNetworkForKey(key): ReadonlyJSONObject

Defined in: repo/repo.ts:1598

Parameters

ParameterType
keystring

Returns

ReadonlyJSONObject


detach()

detach<C, E>(e, c): void

Defined in: base/emitter.ts:123

Type Parameters

Type Parameter
C extends Function
E extends RepositoryEvent | EmitterEvent

Parameters

ParameterType
eE
cC

Returns

void

Inherited from

Emitter.detach


detachAll()

detachAll<E>(e?): void

Defined in: base/emitter.ts:154

Type Parameters

Type Parameter
E extends RepositoryEvent | EmitterEvent

Parameters

ParameterType
e?E

Returns

void

Inherited from

Emitter.detachAll


downloadDebugNetworkForKey()

downloadDebugNetworkForKey(key): void

Defined in: repo/repo.ts:1654

Parameters

ParameterType
keystring

Returns

void


emit()

emit<E>(e, ...args): void

Defined in: base/emitter.ts:54

Type Parameters

Type Parameter
E extends RepositoryEvent | EmitterEvent

Parameters

ParameterType
eE
...argsunknown[]

Returns

void

Inherited from

Emitter.emit


findLatestAncestorFromCommit()

findLatestAncestorFromCommit(commit, filter): Commit

Defined in: repo/repo.ts:1679

Parameters

ParameterType
commitstring | Commit
filter(c) => boolean

Returns

Commit


findLatestNonCorruptedCommitForKey()

findLatestNonCorruptedCommitForKey(key): Commit

Defined in: repo/repo.ts:715

Parameters

ParameterType
keystring

Returns

Commit


findMergeBase()

findMergeBase(commits): [Commit[], Commit, Schema, boolean]

Defined in: repo/repo.ts:450

Given an iterable of commits, this method returns their Lowest Common Ancestor or undefined if no such ancestor exists (meaning the commits belong to disconnected histories).

Parameters

ParameterTypeDescription
commitsCommit[]An iterable of commits.

Returns

[Commit[], Commit, Schema, boolean]

A tuple of 3 values:

  1. The commits to include in the merge. Commits with broken ancestry path are skipped from the merge if a common base can't be found.

  2. The base commit (LCA) to use for the merge, or undefined if one can't be found.

  3. The scheme to use for the merge.


findNonCorruptedParentsFromCommits()

findNonCorruptedParentsFromCommits(parents): Commit[]

Defined in: repo/repo.ts:690

Parameters

ParameterType
parents(string | Commit)[]

Returns

Commit[]


getCommit()

getCommit(id, session?): Commit

Defined in: repo/repo.ts:212

Parameters

ParameterType
idstring
session?Session

Returns

Commit


graphForKey()

graphForKey(key): CommitGraph[]

Defined in: repo/repo.ts:1575

Parameters

ParameterType
keystring

Returns

CommitGraph[]


hasCommit()

hasCommit(id): boolean

Defined in: repo/repo.ts:235

Parameters

ParameterType
idstring

Returns

boolean


hasItemForCommit()

hasItemForCommit(c): boolean

Defined in: repo/repo.ts:636

Parameters

ParameterType
cstring | Commit

Returns

boolean


hasKey()

hasKey(key): boolean

Defined in: repo/repo.ts:1355

Parameters

ParameterType
keystring

Returns

boolean


headForKey()

headForKey(key): Commit

Defined in: repo/repo.ts:858

This method finds and returns the head for the given key. This is a readonly operation and does not attempt to merge any leaves.

Parameters

ParameterTypeDescription
keystringThe key to search for.

Returns

Commit

The head commit, or undefined if no commit can be found for this key. Note that while this method may return undefined, some commits may still be present for this key. This happens when these commits are delta commits, and their base isn't present thus rendering them unreadable.


itemForCommit()

itemForCommit<S>(c): Item<S>

Defined in: repo/repo.ts:727

Type Parameters

Type Parameter
S extends Schema

Parameters

ParameterType
cstring | Commit

Returns

Item<S>


keyExists()

keyExists(key): boolean

Defined in: repo/repo.ts:300

Parameters

ParameterType
keystring

Returns

boolean


keys()

keys(session?): Iterable<string>

Defined in: repo/repo.ts:404

Parameters

ParameterType
session?Session

Returns

Iterable<string>


leavesForKey()

leavesForKey(key, session?): readonly Commit[]

Defined in: repo/repo.ts:386

Parameters

ParameterType
keystring
session?Session

Returns

readonly Commit[]


mergeIfNeeded()

mergeIfNeeded(key): Promise<Commit>

Defined in: repo/repo.ts:1074

Parameters

ParameterType
keystring

Returns

Promise<Commit>


mute()

mute(): void

Defined in: base/emitter.ts:195

Returns

void

Inherited from

Emitter.mute


numberOfCommits()

numberOfCommits(session?): number

Defined in: repo/repo.ts:195

Parameters

ParameterType
session?Session

Returns

number


once()

once<C, E>(e, c): () => void

Defined in: base/emitter.ts:182

Type Parameters

Type Parameter
C extends Function
E extends RepositoryEvent | EmitterEvent

Parameters

ParameterType
eE
cC

Returns

(): void

Returns

void

Inherited from

Emitter.once


paths()

paths(session?): Iterable<string>

Defined in: repo/repo.ts:426

Parameters

ParameterType
session?Session

Returns

Iterable<string>


persistCommits()

persistCommits(commits): Promise<Commit[]>

Defined in: repo/repo.ts:1441

Parameters

ParameterType
commitsIterable<Commit>

Returns

Promise<Commit[]>


persistVerifiedCommits()

persistVerifiedCommits(commits): Promise<Commit[]>

Defined in: repo/repo.ts:1476

Parameters

ParameterType
commitsIterable<Commit>

Returns

Promise<Commit[]>


rebase()

rebase<S>(key, record, headId): [Item<S>, string]

Defined in: repo/repo.ts:1253

Given a key and an edited record for this key, this method rebases the changes from the record on top of the any changes made concurrently for this key. Use it to merge remote changes with any local edits before committing them.

Type Parameters

Type Parameter
S extends Schema

Parameters

ParameterTypeDescription
keystringThe key to rebase.
recordItem<S>The locally edited record.
headIdstring | CommitThe commit from which the edited record was derived from.

Returns

[Item<S>, string]

A new record with local changes rebased on top of remote changes. This record can be used to safely update the UI, as well as update the repo value.


resume()

protected resume(): void

Defined in: base/emitter.ts:193

Returns

void

Inherited from

Emitter.resume


revertAllKeysToBefore()

revertAllKeysToBefore(ts): void

Defined in: repo/repo.ts:1661

Parameters

ParameterType
tsnumber

Returns

void


revertHeadsByConnectionId()

revertHeadsByConnectionId(connectionIds): void

Defined in: repo/repo.ts:1724

Parameters

ParameterType
connectionIdsstring | string[]

Returns

void


setValueForKey()

setValueForKey<S>(key, value, parentCommit): Promise<Commit>

Defined in: repo/repo.ts:1160

Updates the head record for a given key.

Type Parameters

Type Parameter
S extends Schema

Parameters

ParameterTypeDescription
keystringThe key who's head to update.
valueItem<S>The value to write.
parentCommitstring | Commit-

Returns

Promise<Commit>

Whether or not a new commit had been generated. Regardless of the returned value, future calls to valueForKey will return the updated record.


suspend()

protected suspend(): void

Defined in: base/emitter.ts:191

Returns

void

Inherited from

Emitter.suspend


unmute()

unmute(): void

Defined in: base/emitter.ts:199

Returns

void

Inherited from

Emitter.unmute


valueForKey()

valueForKey<T>(key): [Item<T>, Commit]

Defined in: repo/repo.ts:1133

Type Parameters

Type ParameterDefault type
T extends SchemaSchema

Parameters

ParameterType
keystring

Returns

[Item<T>, Commit]


verifyCommits()

verifyCommits(commits): Promise<Commit[]>

Defined in: repo/repo.ts:1362

Parameters

ParameterType
commitsIterable<Commit>

Returns

Promise<Commit[]>


normalizePath()

static normalizePath(id): string

Defined in: repo/repo.ts:181

Parameters

ParameterType
idstring

Returns

string


parseId()

static parseId(id): [string, string]

Defined in: repo/repo.ts:172

Parameters

ParameterType
idstring

Returns

[string, string]


path()

static path(storage, id): string

Defined in: repo/repo.ts:168

Parameters

ParameterType
storagestring
idstring

Returns

string