Documentation
¶
Index ¶
- func IsGitInstalled() bool
- type Config
- type Repository
- func (r *Repository) Begin(ctx context.Context) (core.Transaction, error)
- func (r *Repository) Delete(ctx context.Context, id string) error
- func (r *Repository) Get(ctx context.Context, id string) (core.Document, error)
- func (r *Repository) Initialize(ctx context.Context) error
- func (r *Repository) List(ctx context.Context) ([]core.Document, error)
- func (r *Repository) Save(ctx context.Context, doc core.Document) error
- func (r *Repository) Sync(ctx context.Context) error
- type Transaction
- func (t *Transaction) Commit(ctx context.Context, changeReason string) error
- func (t *Transaction) Delete(ctx context.Context, id string) error
- func (t *Transaction) Get(ctx context.Context, id string) (core.Document, error)
- func (t *Transaction) Rollback(ctx context.Context) error
- func (t *Transaction) Save(ctx context.Context, doc core.Document) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsGitInstalled ¶
func IsGitInstalled() bool
IsGitInstalled checks if git is available in the system path.
Types ¶
type Config ¶
type Config struct {
Path string
AutoInit bool
Gitless bool
MustExist bool
Logger *slog.Logger
SystemDir string // e.g. ".loam"
IDMap map[string]string // Map filename -> ID column name (e.g. "users.csv": "email"). User must ensure uniqueness of values in this column.
}
Config holds the configuration for the filesystem repository.
type Repository ¶
type Repository struct {
Path string
// contains filtered or unexported fields
}
Repository implements core.Repository using the filesystem and Git.
func NewRepository ¶
func NewRepository(config Config) *Repository
NewRepository creates a new filesystem-backed repository.
func (*Repository) Begin ¶
func (r *Repository) Begin(ctx context.Context) (core.Transaction, error)
Begin starts a new transaction.
func (*Repository) Delete ¶
func (r *Repository) Delete(ctx context.Context, id string) error
Delete removes a document.
func (*Repository) Initialize ¶
func (r *Repository) Initialize(ctx context.Context) error
Initialize performs the necessary setup for the repository (mkdir, git init).
type Transaction ¶
type Transaction struct {
// contains filtered or unexported fields
}
Transaction implements core.Transaction for the filesystem.
func NewTransaction ¶
func NewTransaction(repo *Repository) *Transaction
NewTransaction creates a new transaction.
func (*Transaction) Commit ¶
func (t *Transaction) Commit(ctx context.Context, changeReason string) error
Commit applies all staged changes.
func (*Transaction) Delete ¶
func (t *Transaction) Delete(ctx context.Context, id string) error
Delete stages a document for deletion.
Click to show internal directories.
Click to hide internal directories.