@apistudio/apim-cli
Version:
CLI for API Management Products
87 lines (79 loc) • 2.4 kB
text/typescript
/**
* Copyright IBM Corp. 2024, 2025
*/
import { EditorTab } from './editor-tab.model.js';
import {
AssetKinds,
AssetModelKindConstants,
NANO_GW_POLICY_KINDS,
POLICY_KINDS,
} from './base-asset.model.js';
export interface EditorTabsInfo {
editorId: number;
tabs: EditorTab[];
activeTab: EditorTab | -1;
hm: HashMap;
}
export interface EditorTabItem {
activeEditor: boolean;
editorTab: EditorTab;
position: { line: number; column: number };
tabsHeight: number;
width: number;
setUnSavedTabs: React.Dispatch<React.SetStateAction<number[]>>;
fileName: string;
unSavedTabs?: number[];
}
interface HashMap {
[key: string]: NestedHashMap;
}
interface NestedHashMap {
[key: string]: string;
}
export const FormViewSupportedKinds = [
AssetModelKindConstants.API,
AssetModelKindConstants.Test,
AssetModelKindConstants.Assertion,
AssetModelKindConstants.Environment,
AssetModelKindConstants.PolicySequence,
AssetModelKindConstants.GlobalPolicy,
'Product',
AssetModelKindConstants.Plan,
AssetModelKindConstants.Quota,
'OPENAPI',
'POLICY',
'SWAGGER',
'CountLimit'
];
export const FormViewUnsupportedKinds: Record<string, string> = {
swagger: 'Swagger',
multiyaml: 'Multi YAML',
[AssetModelKindConstants.MockEndpoint.toLowerCase()]: 'Mock endpoint',
[AssetModelKindConstants.MockResponse.toLowerCase()]: 'Mock response',
};
export const API_FORM_VIEW_VALID_KINDS = [
AssetModelKindConstants.API.toLowerCase(),
'openapi',
'swagger',
];
// TODO: COMMON_MODEL: remove the support for policy sequence
export const POLICY_FORM_VIEW_VALID_KINDS = [
AssetModelKindConstants.PolicySequence.toLowerCase(),
AssetKinds.StagedPolicySequence.toLowerCase(),
AssetKinds.FreeFlowPolicySequence.toLowerCase(),
...POLICY_KINDS.map((kind) => kind.toLowerCase()),
AssetModelKindConstants.GlobalPolicy.toLowerCase(),
AssetModelKindConstants.Plan.toLowerCase(),
'product',
'requestlimit',
AssetKinds.URISchemes.toLowerCase(),
AssetKinds.Log.toLowerCase(),
AssetKinds.MonitorTraffic.toLowerCase(),
...NANO_GW_POLICY_KINDS.map((kind) => kind.toLowerCase()),
];
export const TEST_FORM_VIEW_VALID_KINDS = [
AssetModelKindConstants.Assertion.toLowerCase(),
AssetModelKindConstants.Environment.toLowerCase(),
AssetModelKindConstants.Test.toLowerCase(),
];
export const DATAPOWERASSEMBLY_VALID_KINDS = ['datapowerassembly'];