UNPKG

@apistudio/apim-cli

Version:

CLI for API Management Products

46 lines (40 loc) 1.56 kB
/** * Copyright IBM Corp. 2024, 2025 */ import { APICAssetInfo } from "../../apic-mode/models/apic-asset-info.model.js"; import { APICFileInfo } from "../../apic-mode/models/apic-file-info.model.js"; import { APICProject } from "../../apic-mode/models/apic-project.model.js"; import { AssetInfo } from "../../lfs/models/asset-info.model.js"; import { Project } from "../../lfs/models/project.model.js"; import { VCSAssetInfo } from "../../vcs/models/vcs-asset-info.model.js"; import { VCSFileInfo } from "../../vcs/models/vcs-file-info.model.js"; import { VCSProject } from "../../vcs/models/vcs-project.model.js"; export interface PathDependencyModel { key: string; fileHandle: FileSystemFileHandle | VCSFileInfo | APICFileInfo; } export interface AssetDependencyInfo { assetInfo: AssetInfo | VCSAssetInfo | APICAssetInfo; absolutePath: string; rootDirAlias: string; projectName: string; pathReferences: PathDependencyModel[]; } export interface AssetDependencies { apis: AssetDependencyInfo[]; policies: AssetDependencyInfo[]; } export interface AssetDependencyContext { data: AssetDependencies; } export interface AssetDependencyActions { loadAssetDependencies: () => Promise<void>; addAssetDependency: ( assetInfo: AssetDependencyInfo, ) => void; removeDependentAsset: ( assetInfo: AssetDependencyInfo, ) => void; refreshProject: (project: Project | VCSProject | APICProject) => Promise<void>; removeProject: (project: Project | VCSProject | APICProject) => void; }