@apistudio/apim-cli
Version:
CLI for API Management Products
86 lines (83 loc) • 2.53 kB
text/typescript
/**
* Copyright IBM Corp. 2024, 2025
*/
import { Project } from '../../lfs/models/project.model.js';
import { VCSFileInfo } from '../models/vcs-file-info.model.js';
import { VCSProject } from '../models/vcs-project.model.js';
import { FileEntry } from '../../common/models/file-entry.model.js';
import { TreeEntry } from '../../common/models/tree-entry.model.js';
import { FileInfoWithPaths } from '../../common/file-info-with-paths.model.js';
import { VCShandle } from '../../common/interfaces/file-explorer-handler.interface.js';
import { VCSConfigData } from '../models/vcs-config-data.model.js';
export interface IVCSFileHandler {
createFile(
repoNameWithOwner: string,
projectName: string,
directoryPath: string | undefined,
fileName: string,
content?: string | any,
): Promise<TreeEntry>;
createDirectory(
repoNameWithOwner: string,
directoryPath: string | undefined,
directoryName: string,
): Promise<TreeEntry>;
moveVCSFile(
item: TreeEntry,
targetDirectory: VCShandle,
project: VCSProject,
): Promise<VCSFileInfo>;
moveVCSFolder(
item: TreeEntry,
targetDirectory: VCShandle,
project: VCSProject,
): Promise<FileInfoWithPaths | null>;
renameVCSFile(
item: TreeEntry,
repoNameWithOwner: string,
newName: string,
active: VCSProject | Project,
): Promise<VCSFileInfo | null>;
deleteVCSFile(
item: TreeEntry,
repoNameWithOwner: string,
active: VCSProject,
): Promise<VCSFileInfo | null>;
deleteVCSFolder(
item: TreeEntry,
repoNameWithOwner: string,
active: VCSProject,
): Promise<FileInfoWithPaths | null>;
duplicateVCSFile(
item: FileEntry,
active: VCSProject,
entries: FileEntry[],
): Promise<VCSFileInfo | null>;
saveVCSFile(
fileHandle: VCSFileInfo,
currentProject: VCSProject,
oldContent: string,
newContent: string,
): Promise<boolean>;
updateVCSFile(fileInfo: VCSFileInfo, newContent: string): Promise<boolean>;
getVCSFileContent(
vcsFile: VCSFileInfo,
fetchFromRemote?: boolean,
): Promise<any>;
handleAssetUpdate(
fileInfo: VCSFileInfo,
currentProject: VCSProject,
oldContent: string,
newContent?: string,
newPath?: string,
): Promise<void>;
existsInFolder(
sourcePath: string,
targetPath: string,
project: VCSProject,
): Promise<boolean>;
setVCSConfigDataInMFE(
configData: VCSConfigData,
): Promise<VCSConfigData | undefined>;
getVCSConfigDataInMFE(): Promise<VCSConfigData | undefined>;
}