@apistudio/apim-cli
Version:
CLI for API Management Products
40 lines (36 loc) • 1.74 kB
text/typescript
/**
* Copyright Super iPaaS Integration LLC, an IBM Company 2024
*/
import { Response } from "../../common/models/response-wrapper.js";
import { Project } from "../../lfs/models/project.model.js";
import { RootDirectoryInfo } from "../../lfs/models/root-directory-info.model.js";
import { VCSProject } from "../../vcs/models/vcs-project.model.js";
export interface ILocalProjectsHandler {
/**
* Loads projects from root directory handles from indexed db
*/
getProjectsFromAllRootDirectories(): Promise<Response<Project[]>>;
/**
* Loads projects from given root directory handles
* @param rootDirectories List of root directories to fetch projects from
*/
getProjectsFromRootDirectories(rootDirectories: RootDirectoryInfo[]): Promise<Response<Project[]>>;
/**
* Loads projects from given root directory handle
* @param rootDirectory Root directory to fetch project from
*/
getProjectsFromRootDirectory(rootDirectory: RootDirectoryInfo): Promise<Response<Project[]>>;
createNewAPIProject(newProject: Project, fileList?: File[]): Promise<Response<Project>>;
getProjectDirHandle(project: Project): Promise<FileSystemDirectoryHandle | null>; // get project directory handle from project
/**
* Updates the project in .apistudio-projects file and renames project folder if project name is updated.
* @param existingProject The original version of project
* @param updatedProject Project with updated metadata
*/
updateProject(existingProject: Project, updatedProject: Project): Promise<void>;
/**
* Deletes the given list of local projects.
* @param projects List of local projects that have been selected for delete
*/
deleteProjects(projects: Project[]): Promise<void>;
}