@apistudio/apim-cli
Version:
CLI for API Management Products
46 lines • 3.38 kB
TypeScript
/**
* Copyright Super iPaaS Integration LLC, an IBM Company 2024
*/
import { AddApiFromFileFormData } from "../../component-models/models/add-api-from-file-form-data.model.js";
import { AddApiFromScratchFormData } from "../../component-models/models/add-api-from-scratch-form-data.model.js";
import { AddApiFromUrlFormData } from "../../component-models/models/add-api-from-url-form-data.model.js";
import { Project } from "../../lfs/models/project.model.js";
import { VCSFileInfo } from "../../vcs/models/vcs-file-info.model.js";
import { VCSProject } from "../../vcs/models/vcs-project.model.js";
import { Metadata } from "../models/base-asset.model.js";
import { FileExplorerNode } from "../models/file-explorer.model.js";
import { Response } from "../models/response-wrapper.js";
export interface VCShandle {
repoNameWithOwner: string;
name: string;
}
export interface FormOperationResponse {
data: string;
file: FileSystemFileHandle | VCSFileInfo;
}
export interface ApiFormOperationResponse {
api: FormOperationResponse;
spec: FormOperationResponse;
}
export interface IFileExplorerOperationsHandler {
/**
* Generates the tree of objects with required info to construct the file explorer window.
* @param projectFolderEntity The parent entity to build file explorer tree from. The projectFolderEntity can either be a directory handle or a vcs tree entry.
* @returns A file explorer node representing the transformed equivalent of the given folder to be used for rendering the File explorer.
*/
buildTree(projectFolderEntity: FileSystemDirectoryHandle | VCShandle): Promise<Response<FileExplorerNode>>;
createFile(parentNode: FileExplorerNode, fileName: string, project: Project | VCSProject): Promise<Response<FileExplorerNode>>;
createDirectory(parentNode: FileExplorerNode, directoryName: string, project: Project | VCSProject): Promise<Response<FileExplorerNode>>;
deleteFile(node: FileExplorerNode, project: Project | VCSProject): Promise<Response>;
deleteDirectory(node: FileExplorerNode, project: Project | VCSProject): Promise<Response>;
renameFile(node: FileExplorerNode, newName: string, project: Project | VCSProject): Promise<Response<FileExplorerNode>>;
duplicateFile(parentNode: FileExplorerNode, node: FileExplorerNode, project: Project | VCSProject): Promise<Response<FileExplorerNode>>;
createAPIFileFromScratch(ApiFormData: AddApiFromScratchFormData, active: Project | VCSProject): Promise<ApiFormOperationResponse>;
createAPIFileFromFile(ApiFormData: AddApiFromFileFormData, active: Project | VCSProject): Promise<ApiFormOperationResponse>;
createAPIFileFromUrl(ApiFormData: AddApiFromUrlFormData, active: Project | VCSProject): Promise<ApiFormOperationResponse>;
createTestFileFromScratch(TestFormData: Metadata, active: Project | VCSProject, kind: string): Promise<FileSystemFileHandle | VCSFileInfo>;
createPolicyFileFromScratch(policyFromData: Metadata, active: Project | VCSProject): Promise<FormOperationResponse>;
createGlobalPolicyFileFromScratch(policyFromData: Metadata, active: Project | VCSProject): Promise<FormOperationResponse>;
createPolicyKindFileFromScratch(policyKind: string, policyFromData: Metadata, active: Project | VCSProject): Promise<FormOperationResponse>;
}
//# sourceMappingURL=file-explorer-handler.interface.d.ts.map