UNPKG

@apistudio/apim-cli

Version:

CLI for API Management Products

77 lines 6.54 kB
/** * Copyright IBM Corp. 2024, 2025 */ import { APICFileInfo } from '../../apic-mode/models/apic-file-info.model.js'; import { APICProject } from '../../apic-mode/models/apic-project.model.js'; 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 { FileAccessType, ProjectType, SpecObject } from '../../index.js'; import { Project } from '../../lfs/models/project.model.js'; import { AssetDependencies } from '../../store/model/asset-dependency.model.js'; import { VCSFileInfo } from '../../vcs/models/vcs-file-info.model.js'; import { VCSProject } from '../../vcs/models/vcs-project.model.js'; import { BaseAsset, KindMetadata, 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 APIChandle { orgId: string; name: string; } export interface FormOperationResponse { data: string; file: FileSystemFileHandle | VCSFileInfo | APICFileInfo; } export interface ApiFormOperationResponse { api: FormOperationResponse; spec: FormOperationResponse; datapowerAssembly?: FormOperationResponse | null; freeFlowPolicySequence?: FormOperationResponse | null; cors?: FormOperationResponse | null; properties?: FormOperationResponse | null; } 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 | APIChandle, parentFolderEntity: FileSystemDirectoryHandle | VCShandle | APIChandle, id?: string, project?: APICProject): Promise<Response<FileExplorerNode>>; createFile(parentNode: FileExplorerNode, fileName: string, project: Project | VCSProject | APICProject): Promise<Response<FileExplorerNode>>; createDirectory(parentNode: FileExplorerNode, directoryName: string, project: Project | VCSProject | APICProject): Promise<Response<FileExplorerNode>>; deleteFile(node: FileExplorerNode, project: Project | VCSProject | APICProject): Promise<Response>; deleteDirectory(node: FileExplorerNode, project: Project | VCSProject | APICProject): Promise<Response>; renameFile(node: FileExplorerNode, newName: string, project: Project | VCSProject | APICProject): Promise<Response<FileExplorerNode>>; duplicateFile(parentNode: FileExplorerNode, node: FileExplorerNode, project: Project | VCSProject): Promise<Response<FileExplorerNode>>; getSelectedFolderPath(fileExplorerInfo: { selectedNode: FileExplorerNode | null; }): string; createAPIFileFromScratch(ApiFormData: AddApiFromScratchFormData, active: Project | VCSProject | APICProject, selectedFolder?: string): Promise<ApiFormOperationResponse>; createAPIFileFromFile(ApiFormData: AddApiFromFileFormData, active: Project | VCSProject | APICProject, selectedFolder?: string): Promise<ApiFormOperationResponse>; createAPIFileFromUrl(ApiFormData: AddApiFromUrlFormData, active: Project | VCSProject | APICProject, selectedFolder?: string): Promise<ApiFormOperationResponse>; createTestFileFromScratch(TestFormData: Metadata, active: Project | VCSProject | APICProject, kind: string, selectedFolder?: string): Promise<FileSystemFileHandle | VCSFileInfo | APICFileInfo>; createCountLimitDefFromScratch(countLimitDefData: KindMetadata, active: Project | VCSProject | APICProject, spec: object, selectedFolder?: string): Promise<FileSystemFileHandle | VCSFileInfo | APICFileInfo>; createPolicyFileFromScratch(policyFromData: KindMetadata, active: Project | VCSProject | APICProject, selectedFolder?: string): Promise<FormOperationResponse>; createFreeFlowPolicyFileFromScratch(policyFromData: KindMetadata, active: Project | VCSProject | APICProject, selectedFolder?: string): Promise<FormOperationResponse>; createGlobalPolicyFileFromScratch(policyFromData: KindMetadata, active: Project | VCSProject | APICProject, selectedFolder?: string): Promise<FormOperationResponse>; createPolicyKindFileFromScratch(policyKind: string, policyFromData: KindMetadata, active: Project | VCSProject | APICProject, selectedFolder?: string): Promise<FormOperationResponse>; createDatapowerAssemblyFileFromScratch(datapowerFormData: KindMetadata, active: Project | VCSProject | APICProject, selectedFolder?: string): Promise<FormOperationResponse>; generateGatewayPolicyFileFromFile(active: Project | VCSProject | APICProject, datapowerContent: string, selectedFolder?: string): Promise<FormOperationResponse>; createMcpKindFileFromScratch(asset: BaseAsset, active: Project | VCSProject | APICProject): Promise<FormOperationResponse>; updateApiMetadata(newFormData: AddApiFromScratchFormData, existingApiFileHandle: FileSystemFileHandle | VCSFileInfo | APICFileInfo, active: Project | VCSProject | APICProject): Promise<FormOperationResponse>; generateXSLT(fileName: string, active: Project | VCSProject | APICProject, content: string): Promise<FormOperationResponse>; handleDragAndDrop(sourceNode: FileExplorerNode, targetNode: FileExplorerNode, onError: (title: string, subtitle: string) => void, getEditorId: (file: FileSystemFileHandle | VCSFileInfo | APICFileInfo) => number, handleCloseTab: (id: number) => Promise<void>, active: Project | VCSProject | APICProject, data: AssetDependencies, saveFile: (file: FileSystemFileHandle | VCSFileInfo | APICFileInfo, fileContent: string) => Promise<boolean>): Promise<void>; /** * Returns the spec object template for a given policy kind */ getSpecForKind(policyKind: string): SpecObject; /** * Wrapper function to write across all supported project modes. */ writeToFile(project: ProjectType, file: FileAccessType, fileContent: string): Promise<void>; } //# sourceMappingURL=file-explorer-handler.interface.d.ts.map