diff --git a/docs/src/js/classes/BranchContents.md b/docs/src/js/classes/BranchContents.md new file mode 100644 index 000000000..47339d7ab --- /dev/null +++ b/docs/src/js/classes/BranchContents.md @@ -0,0 +1,43 @@ +[**@lancedb/lancedb**](../README.md) • **Docs** + +*** + +[@lancedb/lancedb](../globals.md) / BranchContents + +# Class: BranchContents + +## Constructors + +### new BranchContents() + +```ts +new BranchContents(): BranchContents +``` + +#### Returns + +[`BranchContents`](BranchContents.md) + +## Properties + +### manifestSize + +```ts +manifestSize: number; +``` + +*** + +### parentBranch? + +```ts +optional parentBranch: string; +``` + +*** + +### parentVersion + +```ts +parentVersion: number; +``` diff --git a/docs/src/js/classes/Branches.md b/docs/src/js/classes/Branches.md new file mode 100644 index 000000000..ea4d72f07 --- /dev/null +++ b/docs/src/js/classes/Branches.md @@ -0,0 +1,90 @@ +[**@lancedb/lancedb**](../README.md) • **Docs** + +*** + +[@lancedb/lancedb](../globals.md) / Branches + +# Class: Branches + +Branch manager for a [Table](Table.md). + +Unlike tags, `create` and `checkout` return a new [Table](Table.md) handle scoped +to the branch; writes on it do not affect `main`. + +## Methods + +### checkout() + +```ts +checkout(name): Promise +``` + +Check out an existing branch and return a handle scoped to it. + +#### Parameters + +* **name**: `string` + +#### Returns + +`Promise`<[`Table`](Table.md)> + +*** + +### create() + +```ts +create( + name, + fromRef?, + fromVersion?): Promise
+``` + +Create a branch and return a handle scoped to it. + +#### Parameters + +* **name**: `string` + Name of the new branch. + +* **fromRef?**: `string` + Source branch to fork from. Defaults to `main`. + +* **fromVersion?**: `number` + A specific version on `fromRef`. Defaults to latest. + +#### Returns + +`Promise`<[`Table`](Table.md)> + +*** + +### delete() + +```ts +delete(name): Promise +``` + +Delete a branch. + +#### Parameters + +* **name**: `string` + +#### Returns + +`Promise`<`void`> + +*** + +### list() + +```ts +list(): Promise> +``` + +List all branches, mapping name to branch metadata. + +#### Returns + +`Promise`<`Record`<`string`, [`BranchContents`](BranchContents.md)>> diff --git a/docs/src/js/classes/Table.md b/docs/src/js/classes/Table.md index 1675f2c93..a7a4dfafc 100644 --- a/docs/src/js/classes/Table.md +++ b/docs/src/js/classes/Table.md @@ -110,6 +110,23 @@ containing the new version number of the table after altering the columns. *** +### branches() + +```ts +abstract branches(): Promise +``` + +Get the branch manager for this table. + +Branches are isolated, writable lines of history forked from another +branch (or version). Writes on a branch do not affect `main`. + +#### Returns + +`Promise`<[`Branches`](Branches.md)> + +*** + ### checkout() ```ts diff --git a/docs/src/js/globals.md b/docs/src/js/globals.md index 7d26fd75b..3efa3a360 100644 --- a/docs/src/js/globals.md +++ b/docs/src/js/globals.md @@ -19,6 +19,8 @@ - [BooleanQuery](classes/BooleanQuery.md) - [BoostQuery](classes/BoostQuery.md) +- [BranchContents](classes/BranchContents.md) +- [Branches](classes/Branches.md) - [Connection](classes/Connection.md) - [HeaderProvider](classes/HeaderProvider.md) - [Index](classes/Index.md) diff --git a/nodejs/lancedb/index.ts b/nodejs/lancedb/index.ts index f4f724e8a..c74cf1caa 100644 --- a/nodejs/lancedb/index.ts +++ b/nodejs/lancedb/index.ts @@ -38,6 +38,7 @@ export { FragmentSummaryStats, Tags, TagContents, + BranchContents, MergeResult, AddResult, AddColumnsResult, @@ -111,6 +112,7 @@ export { export { Table, + Branches, AddDataOptions, UpdateOptions, OptimizeOptions, diff --git a/nodejs/lancedb/table.ts b/nodejs/lancedb/table.ts index 10b486bf9..fce768f74 100644 --- a/nodejs/lancedb/table.ts +++ b/nodejs/lancedb/table.ts @@ -1260,15 +1260,19 @@ export interface FieldMetadataUpdate { * to the branch; writes on it do not affect `main`. */ export class Branches { - private readonly inner: NativeBranches; + #inner: NativeBranches; + /** + * Construct a Branches manager. Internal use only. + * @hidden + */ constructor(inner: NativeBranches) { - this.inner = inner; + this.#inner = inner; } /** List all branches, mapping name to branch metadata. */ async list(): Promise> { - return await this.inner.list(); + return await this.#inner.list(); } /** @@ -1283,16 +1287,16 @@ export class Branches { fromRef?: string, fromVersion?: number, ): Promise
{ - return new LocalTable(await this.inner.create(name, fromRef, fromVersion)); + return new LocalTable(await this.#inner.create(name, fromRef, fromVersion)); } /** Check out an existing branch and return a handle scoped to it. */ async checkout(name: string): Promise
{ - return new LocalTable(await this.inner.checkout(name)); + return new LocalTable(await this.#inner.checkout(name)); } /** Delete a branch. */ async delete(name: string): Promise { - return await this.inner.delete(name); + return await this.#inner.delete(name); } }