@apistudio/apim-cli
Version:
CLI for API Management Products
61 lines (58 loc) • 2.37 kB
text/typescript
/**
* Copyright IBM Corp. 2024, 2025
*/
import { AssetMetadata } from '../../lfs/models/asset-metadata.model.js';
import { Assets } from '../../lfs/models/assets.model.js';
import { APICProject } from '../../apic-mode/models/apic-project.model.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 type ProjectState = {
projects: (Project | VCSProject | APICProject)[];
active: Project | VCSProject | APICProject | null;
repoWorkingBranch: string | null;
isApicProjectsLoading: boolean;
activeTabIndex: number;
apicProjectNameToIdMap: Map<string, string>;
};
export type ProjectAssetKeys = keyof Omit<Assets, 'otherFiles'>;
export type ProjectActions = {
intializeStore: () => Promise<void>;
initializeAPICStore: () => Promise<void>;
loadProjectsForParentsFolder: (
rootDirectoryInfo: RootDirectoryInfo,
) => Promise<void>;
loadProjectsForParentsFolders: (
rootDirectories: RootDirectoryInfo[],
) => Promise<void>;
addProject: (newProject: Project | VCSProject | APICProject) => void;
createProject: (
newProject: Project | VCSProject,
fileList?: File[],
) => Promise<void>;
updateProject: (
prevProject: Project | VCSProject,
updatedProject: Project | VCSProject,
) => void;
openProject: (project: Project | VCSProject | APICProject) => Promise<void>;
refreshProject: (
project: Project | VCSProject | APICProject,
) => Promise<void>;
toggleIsPinnedProject: (
projectName: string,
rootDirectoryAlias: string,
) => void;
deleteProjects: (parentFolderAlias: string[]) => void;
removeProjects: (projects: (Project | VCSProject | APICProject)[]) => void;
addProjects: (
newProject: (Project | VCSProject | APICProject)[],
) => Promise<void>;
setActive: (project: Project | VCSProject | APICProject | null) => void;
setLastUpdatedForActiveProject: (lastUpdated?: number) => void;
intializeVcsStore: () => Promise<void>;
removeAllVCSProject: () => void;
refreshActiveProject: () => Promise<void>;
setActiveOnVcsCommitAndPush: (project: Project | VCSProject | null) => void;
resetProjectsForEmbeddedMode: () => void;
getAllAssetsInfo: (assetAccessKey: ProjectAssetKeys) => AssetMetadata[];
};