openRepository
Open an existing git repository from a @catmint-fs/core layer. The layer must already contain a valid .git directory.
Import
import { openRepository } from "@catmint-fs/git";
Signature
function openRepository(layer: Layer): Promise<Repository>;
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
layer | Layer | Yes | A @catmint-fs/core layer containing an existing git repository |
Return Value
Returns a Promise<Repository> — a Repository instance.
Throws an error if the layer does not contain a valid git repository (i.e., no .git/HEAD found).
Examples
Open From Memory
import { createMemoryLayer } from "@catmint-fs/core";
import { initRepository, openRepository } from "@catmint-fs/git";
// Create a repo first
const layer = createMemoryLayer();
await initRepository(layer);
// Later, re-open it
const repo = await openRepository(layer);
const branch = await repo.currentBranch();
console.log(branch); // "main"
Open From the Filesystem
import { createNodeLayer } from "@catmint-fs/core";
import { openRepository } from "@catmint-fs/git";
const layer = createNodeLayer("/path/to/existing-project");
const repo = await openRepository(layer);
const commits = await repo.log();
console.log(`Repository has ${commits.length} commits`);
Open From SQLite
import { createSqliteLayer } from "@catmint-fs/sqlite-adapter";
import { openRepository } from "@catmint-fs/git";
const layer = createSqliteLayer("repo.db");
const repo = await openRepository(layer);
Error Handling
import { createMemoryLayer } from "@catmint-fs/core";
import { openRepository } from "@catmint-fs/git";
const layer = createMemoryLayer(); // Empty layer, no repo
try {
await openRepository(layer);
} catch (err) {
console.error("Not a git repository");
}
