Introduce typing for extension API to prevent breakage

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton committed 2022-09-15 09:43:31 -04:00
1 parent dbd8e3bebc
commit 80dc137110
3 files changed
+24 -9

No files matched your search

+16 -4
View File
@@ -11,11 +11,25 @@ import isWindowsInjectable from "../../common/vars/is-windows.injectable";
import { asLegacyGlobalFunctionForExtensionApi } from "../as-legacy-globals-for-extension-api/as-legacy-global-function-for-extension-api";
import { getLegacyGlobalDiForExtensionApi } from "../as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api";
import getEnabledExtensionsInjectable from "./get-enabled-extensions/get-enabled-extensions.injectable";
import * as Preferences from "./user-preferences";
import type { UserPreferenceExtensionItems } from "./user-preferences";
import { Preferences } from "./user-preferences";
import { slackUrl, issuesTrackerUrl } from "../../common/vars";
import { buildVersionInjectionToken } from "../../common/vars/build-semantic-version.injectable";
const App = {
export interface AppExtensionItems {
readonly Preferences: UserPreferenceExtensionItems;
readonly version: string;
readonly appName: string;
readonly slackUrl: string;
readonly issuesTrackerUrl: string;
readonly isSnap: boolean;
readonly isWindows: boolean;
readonly isMac: boolean;
readonly isLinux: boolean;
getEnabledExtensions: () => string[];
}
export const App: AppExtensionItems = {
Preferences,
getEnabledExtensions: asLegacyGlobalFunctionForExtensionApi(getEnabledExtensionsInjectable),
get version() {
@@ -51,5 +65,3 @@ const App = {
slackUrl,
issuesTrackerUrl,
};
export default App;
+1 -1
View File
@@ -4,7 +4,7 @@
*/
// APIs
import App from "./app";
import { App } from "./app";
import * as EventBus from "./event-bus";
import * as Store from "./stores";
import * as Util from "./utils";
@@ -4,10 +4,13 @@
*/
import { UserStore } from "../../common/user-store";
/**
export interface UserPreferenceExtensionItems {
/**
* Get the configured kubectl binaries path.
*/
export function getKubectlPath(): string | undefined {
return UserStore.getInstance().kubectlBinariesPath;
getKubectlPath: () => string | undefined;
}
export const Preferences: UserPreferenceExtensionItems = {
getKubectlPath: () => UserStore.getInstance().kubectlBinariesPath,
};