UNPKG

@softwareventures/maintain-project

Version:

Automatically create and maintain TypeScript projects with standard settings for Software Ventures Limited

35 lines (34 loc) 1.57 kB
import type { FsStage, InsertResult } from "../fs-stage/fs-stage.js"; import type { Result } from "../result/result.js"; import type { CommitFailureReason } from "../fs-stage/commit.js"; import type { YarnFixFailureReason } from "../yarn/fix.js"; import type { PrettierFixFailureReason } from "../prettier/fix.js"; import type { Project } from "./project.js"; export type Update = FsStageUpdate | DirectUpdate; export interface FsStageUpdate { readonly type: "fs-stage-update"; readonly log: string; readonly breaking?: readonly string[] | undefined; readonly apply: (stage: FsStage) => Promise<InsertResult>; readonly updatedProject?: Project | undefined; } export interface DirectUpdate { readonly type: "direct-update"; readonly log: string; readonly breaking?: readonly string[] | undefined; readonly apply: () => Promise<Result<UpdateStepFailureReason>>; readonly updatedProject?: Project | undefined; } export type UpdateResult = Result<UpdateFailureReason, Project>; export type UpdateFailureReason = GitNotClean | CommitFailureReason | UpdateStepFailureReason; export type UpdateStepFailureReason = YarnFixFailureReason | PrettierFixFailureReason; export interface UpdateProjectOptions { readonly project: Project; readonly breaking?: boolean | undefined; } export declare function updateProject(options: UpdateProjectOptions): Promise<UpdateResult>; export interface GitNotClean { readonly type: "git-not-clean"; readonly path: string; } export declare function gitNotClean(path: string): GitNotClean;