Class: Repository<ST>
Defined in: repo/repo.ts:108
Extends
Emitter<RepositoryEvent>
Type Parameters
| Type Parameter | Default type |
|---|---|
ST extends RepoStorage<ST> | MemRepoStorage |
Constructors
Constructor
new Repository<
ST>(db,path,trustPool,__namedParameters?):Repository<ST>
Defined in: repo/repo.ts:132
Parameters
| Parameter | Type |
|---|---|
db | GoatDB |
path | string |
trustPool | TrustPool |
__namedParameters | RepositoryConfig<ST> |
Returns
Repository<ST>
Overrides
Properties
| Property | Modifier | Type | Default value | Inherited from | Defined in |
|---|---|---|---|---|---|
allowedNamespaces | readonly | string[] | undefined | - | repo/repo.ts:114 |
allowMerge | public | boolean | true | - | repo/repo.ts:130 |
alwaysActive | readonly | boolean | undefined | Emitter.alwaysActive | base/emitter.ts:9 |
authorizer? | readonly | AuthRule | undefined | - | repo/repo.ts:116 |
db | readonly | GoatDB | undefined | - | repo/repo.ts:133 |
path | readonly | string | undefined | - | repo/repo.ts:134 |
priorityRepo | readonly | boolean | undefined | - | repo/repo.ts:111 |
storage | readonly | ST | undefined | - | repo/repo.ts:112 |
trustPool | readonly | TrustPool | undefined | - | repo/repo.ts:113 |
callCount | static | number | 0 | - | repo/repo.ts:725 |
Accessors
isActive
Get Signature
get isActive():
boolean
Defined in: base/emitter.ts:50
Returns
boolean
Inherited from
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
| Parameter | Type |
|---|---|
e | E |
c | C |
Returns
():
void
Returns
void
Inherited from
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
| Parameter | Type | Description |
|---|---|---|
commit | string | Commit | The 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
| Parameter | Type |
|---|---|
c | Commit |
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
| Parameter | Type | Description |
|---|---|---|
candidate | string | Commit | The 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
| Parameter | Type |
|---|---|
session? | Session |
Returns
Generator<Commit>
commitsForKey()
commitsForKey(
key,session?):Generator<Commit>
Defined in: repo/repo.ts:273
Parameters
| Parameter | Type |
|---|---|
key | string |
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
| Parameter | Type |
|---|---|
key | string |
value | Item<S> |
Returns
Promise<Commit>
debugNetworkForKey()
debugNetworkForKey(
key):ReadonlyJSONObject
Defined in: repo/repo.ts:1598
Parameters
| Parameter | Type |
|---|---|
key | string |
Returns
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
| Parameter | Type |
|---|---|
e | E |
c | C |
Returns
void
Inherited from
detachAll()
detachAll<
E>(e?):void
Defined in: base/emitter.ts:154
Type Parameters
| Type Parameter |
|---|
E extends RepositoryEvent | EmitterEvent |
Parameters
| Parameter | Type |
|---|---|
e? | E |
Returns
void
Inherited from
downloadDebugNetworkForKey()
downloadDebugNetworkForKey(
key):void
Defined in: repo/repo.ts:1654
Parameters
| Parameter | Type |
|---|---|
key | string |
Returns
void
emit()
emit<
E>(e, ...args):void
Defined in: base/emitter.ts:54
Type Parameters
| Type Parameter |
|---|
E extends RepositoryEvent | EmitterEvent |
Parameters
| Parameter | Type |
|---|---|
e | E |
...args | unknown[] |
Returns
void
Inherited from
findLatestAncestorFromCommit()
findLatestAncestorFromCommit(
commit,filter):Commit
Defined in: repo/repo.ts:1679
Parameters
| Parameter | Type |
|---|---|
commit | string | Commit |
filter | (c) => boolean |
Returns
Commit
findLatestNonCorruptedCommitForKey()
findLatestNonCorruptedCommitForKey(
key):Commit
Defined in: repo/repo.ts:715
Parameters
| Parameter | Type |
|---|---|
key | string |
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
| Parameter | Type | Description |
|---|---|---|
commits | Commit[] | An iterable of commits. |
Returns
[Commit[], Commit, Schema, boolean]
A tuple of 3 values:
-
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.
-
The base commit (LCA) to use for the merge, or undefined if one can't be found.
-
The scheme to use for the merge.
findNonCorruptedParentsFromCommits()
findNonCorruptedParentsFromCommits(
parents):Commit[]
Defined in: repo/repo.ts:690
Parameters
| Parameter | Type |
|---|---|
parents | (string | Commit)[] |
Returns
Commit[]
getCommit()
getCommit(
id,session?):Commit
Defined in: repo/repo.ts:212
Parameters
| Parameter | Type |
|---|---|
id | string |
session? | Session |
Returns
Commit
graphForKey()
graphForKey(
key):CommitGraph[]
Defined in: repo/repo.ts:1575
Parameters
| Parameter | Type |
|---|---|
key | string |
Returns
CommitGraph[]
hasCommit()
hasCommit(
id):boolean
Defined in: repo/repo.ts:235
Parameters
| Parameter | Type |
|---|---|
id | string |
Returns
boolean
hasItemForCommit()
hasItemForCommit(
c):boolean
Defined in: repo/repo.ts:636
Parameters
| Parameter | Type |
|---|---|
c | string | Commit |
Returns
boolean
hasKey()
hasKey(
key):boolean
Defined in: repo/repo.ts:1355
Parameters
| Parameter | Type |
|---|---|
key | string |
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
| Parameter | Type | Description |
|---|---|---|
key | string | The 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
| Parameter | Type |
|---|---|
c | string | Commit |
Returns
Item<S>
keyExists()
keyExists(
key):boolean
Defined in: repo/repo.ts:300
Parameters
| Parameter | Type |
|---|---|
key | string |
Returns
boolean
keys()
keys(
session?):Iterable<string>
Defined in: repo/repo.ts:404
Parameters
| Parameter | Type |
|---|---|
session? | Session |
Returns
Iterable<string>
leavesForKey()
leavesForKey(
key,session?): readonlyCommit[]
Defined in: repo/repo.ts:386
Parameters
| Parameter | Type |
|---|---|
key | string |
session? | Session |
Returns
readonly Commit[]
mergeIfNeeded()
mergeIfNeeded(
key):Promise<Commit>
Defined in: repo/repo.ts:1074
Parameters
| Parameter | Type |
|---|---|
key | string |
Returns
Promise<Commit>
mute()
mute():
void
Defined in: base/emitter.ts:195
Returns
void
Inherited from
numberOfCommits()
numberOfCommits(
session?):number
Defined in: repo/repo.ts:195
Parameters
| Parameter | Type |
|---|---|
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
| Parameter | Type |
|---|---|
e | E |
c | C |
Returns
():
void
Returns
void
Inherited from
paths()
paths(
session?):Iterable<string>
Defined in: repo/repo.ts:426
Parameters
| Parameter | Type |
|---|---|
session? | Session |
Returns
Iterable<string>
persistCommits()
persistCommits(
commits):Promise<Commit[]>
Defined in: repo/repo.ts:1441
Parameters
| Parameter | Type |
|---|---|
commits | Iterable<Commit> |
Returns
Promise<Commit[]>
persistVerifiedCommits()
persistVerifiedCommits(
commits):Promise<Commit[]>
Defined in: repo/repo.ts:1476
Parameters
| Parameter | Type |
|---|---|
commits | Iterable<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
| Parameter | Type | Description |
|---|---|---|
key | string | The key to rebase. |
record | Item<S> | The locally edited record. |
headId | string | Commit | The 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()
protectedresume():void
Defined in: base/emitter.ts:193
Returns
void
Inherited from
revertAllKeysToBefore()
revertAllKeysToBefore(
ts):void
Defined in: repo/repo.ts:1661
Parameters
| Parameter | Type |
|---|---|
ts | number |
Returns
void
revertHeadsByConnectionId()
revertHeadsByConnectionId(
connectionIds):void
Defined in: repo/repo.ts:1724
Parameters
| Parameter | Type |
|---|---|
connectionIds | string | 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
| Parameter | Type | Description |
|---|---|---|
key | string | The key who's head to update. |
value | Item<S> | The value to write. |
parentCommit | string | 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()
protectedsuspend():void
Defined in: base/emitter.ts:191
Returns
void
Inherited from
unmute()
unmute():
void
Defined in: base/emitter.ts:199
Returns
void
Inherited from
valueForKey()
valueForKey<
T>(key): [Item<T>,Commit]
Defined in: repo/repo.ts:1133
Type Parameters
| Type Parameter | Default type |
|---|---|
T extends Schema | Schema |
Parameters
| Parameter | Type |
|---|---|
key | string |
Returns
[Item<T>, Commit]
verifyCommits()
verifyCommits(
commits):Promise<Commit[]>
Defined in: repo/repo.ts:1362
Parameters
| Parameter | Type |
|---|---|
commits | Iterable<Commit> |
Returns
Promise<Commit[]>
normalizePath()
staticnormalizePath(id):string
Defined in: repo/repo.ts:181
Parameters
| Parameter | Type |
|---|---|
id | string |
Returns
string
parseId()
staticparseId(id): [string,string]
Defined in: repo/repo.ts:172
Parameters
| Parameter | Type |
|---|---|
id | string |
Returns
[string, string]
path()
staticpath(storage,id):string
Defined in: repo/repo.ts:168
Parameters
| Parameter | Type |
|---|---|
storage | string |
id | string |
Returns
string