UNPKG

@apistudio/apim-cli

Version:

CLI for API Management Products

63 lines (57 loc) 1.93 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 { AssetInfo } from '../../lfs/models/asset-info.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 { OpenApiSpecDocument } from '../interfaces/api-spec-handler.interface.js'; import { OpenApiTypesEnum } from '../models/openapi-types.enum.js'; export type APIAdditionalPropertyKeys = 'uriSchemes' | 'properties' | 'cors'; export type APIContext = { data: OpenApiSpecDocument | null; context: { file: FileSystemFileHandle | VCSFileInfo | APICFileInfo | null; }; selectedItems: Array<SelectionItem>; apiVersion: OpenApiTypesEnum | null; policySequences: AssetInfo[]; apiAdditionalProperties: { active?: APIAdditionalPropertyKeys; isDetailedFormViewOpen: boolean; properties: { [key in APIAdditionalPropertyKeys]?: ProjectAssetInfo; }; }; loadingInfo: LoadingInfo; }; export interface ProjectAssetInfo extends AssetInfo { project: Project | VCSProject | APICProject; } export type SelectionType = | 'module' | 'path' | 'operation' | 'component' | 'response' | 'security'; export type SelectionItem = { position: number; type: SelectionType; value: string | number; showBreadCrumbs: boolean; displayNameForBreadCrumbs: string; onBreadCrumbClick?: () => void; }; export type LoadingInfo = { // 1. Tracks the actual data fetching status isFetchingData: boolean; // 2. Tracks whether the loader should *visually* be shown (Delayed state) showDelayedLoader: boolean; // Internal timer reference showTimer?: NodeJS.Timeout; minDisplayTimer?: NodeJS.Timeout; shownAt?: number; };