31 lines · 1.2 KB · TypeScript
RawDownload
import { Context, type Effect } from "effect"; import type {  VcsDriverCapabilities,  VcsError,  VcsInitInput,  VcsListRemotesResult,  VcsListWorkspaceFilesResult,  VcsRepositoryIdentity,} from "@t3tools/contracts";import * as VcsProcess from "./VcsProcess.ts"; export interface VcsDriverShape {  readonly capabilities: VcsDriverCapabilities;  readonly execute: (    input: Omit<VcsProcess.VcsProcessInput, "command">,  ) => Effect.Effect<VcsProcess.VcsProcessOutput, VcsError>;  readonly detectRepository: (cwd: string) => Effect.Effect<VcsRepositoryIdentity | null, VcsError>;  readonly isInsideWorkTree: (cwd: string) => Effect.Effect<boolean, VcsError>;  readonly listWorkspaceFiles: (    cwd: string,  ) => Effect.Effect<VcsListWorkspaceFilesResult, VcsError>;  readonly listRemotes: (cwd: string) => Effect.Effect<VcsListRemotesResult, VcsError>;  readonly filterIgnoredPaths: (    cwd: string,    relativePaths: ReadonlyArray<string>,  ) => Effect.Effect<ReadonlyArray<string>, VcsError>;  readonly initRepository: (input: VcsInitInput) => Effect.Effect<void, VcsError>;} export class VcsDriver extends Context.Service<VcsDriver, VcsDriverShape>()("t3/vcs/VcsDriver") {}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t