@apistudio/apim-cli
Version:
CLI for API Management Products
43 lines (34 loc) • 1.52 kB
text/typescript
import { EditorTab } from "../../common/models/editor-tab.model.js";
import { VCSFileInfo } from "../../vcs/models/vcs-file-info.model.js";
import IlintResponse from "../../common/models/lint-response.model.js";
type NestedHashMap = {
[key: string]: string;
}
type HashMap = {
[key: string]: NestedHashMap;
}
type EditorState = {
editorId: number;
hm: HashMap;
activeTab: EditorTab | -1;
tabs: EditorTab[];
addExistingFile: File | null;
quickActionAddFile?: boolean;
};
type EditorAction = {
initialize: (editorId: number, activeTab: EditorTab | -1, tabs: EditorTab[], hm: HashMap, addExistingFile: File | null) => void;
loadDataFromIndexedDb: () => Promise<void>;
openFile: (file: FileSystemFileHandle, directoryHandle: FileSystemDirectoryHandle, index?: number) => Promise<void>;
removeFile: (id: number) => Promise<number>;
saveFile: (fileHandle: FileSystemFileHandle | VCSFileInfo, fileContent: string) => Promise<boolean>;
changeLine: (value: number, column: number) => void;
setActiveTab: (editorTab: EditorTab) => void;
setAddExistingFile: (addExistingFile: File | null) => void;
reset: () => void;
openVCSFile: (fileInfo: VCSFileInfo) => Promise<void>;
updateLintResult: (lintResponse: IlintResponse[]) => void;
resetActiveTab: (tab?: EditorTab) => void;
getEditorId: (file: FileSystemFileHandle | VCSFileInfo) => number;
setQuickActionsAddFile: () => void;
};
export type EditorStore = EditorState & EditorAction;