@apistudio/apim-cli
Version:
CLI for API Management Products
34 lines (31 loc) • 1.69 kB
text/typescript
/**
* Copyright Super iPaaS Integration LLC, an IBM Company 2024
*/
import { TFunction } from "i18next";
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 type ProjectState = {
projects: (Project | VCSProject)[];
active: Project | VCSProject | null;
};
export type ProjectActions = {
intializeStore: () => Promise<void>;
loadProjectsForParentsFolder: (rootDirectoryInfo: RootDirectoryInfo) => Promise<void>;
loadProjectsForParentsFolders: (rootDirectories: RootDirectoryInfo[]) => Promise<void>;
addProject: (newProject: Project | VCSProject) => void;
createProject: (newProject: Project | VCSProject, fileList?: File[]) => Promise<void>;
updateProject: (prevProject: Project | VCSProject, updatedProject: Project | VCSProject) => void;
openProject: (project: Project | VCSProject) => Promise<void>;
refreshProject: (project: Project | VCSProject) => Promise<void>;
toggleIsPinnedProject: (projectName: string, rootDirectoryAlias: string) => void;
deleteProjects: (parentFolderAlias: string[]) => void;
removeProjects: (projects: (Project | VCSProject)[]) => void;
addProjects: (newProject: (Project | VCSProject)[]) => void;
setActive: (project: Project | VCSProject | null) => void;
setLastUpdatedForActiveProject: (lastUpdated?: number) => void;
intializeVcsStore: () => Promise<void>;
removeAllVCSProject: () => void;
refreshActiveProject: () => void;
setActiveOnVcsCommitAndPush: (project: Project | VCSProject | null) => void;
};