diff --git a/package-lock.json b/package-lock.json index c7e53e085c..dddbecb296 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34371,14 +34371,17 @@ "dev": true }, "packages/cluster-settings": { - "version": "6.5.0-alpha.", + "name": "@k8slens/cluster-settings", + "version": "6.5.0-alpha.1", "license": "MIT", "devDependencies": { + "@ogre-tools/injectable": "^15.1.2", "@swc/cli": "^0.1.61", "@swc/core": "^1.3.37", "@types/node": "^16.18.11", "@types/semver": "^7.3.13", - "rimraf": "^4.1.2" + "rimraf": "^4.1.2", + "typescript": "^5.0.2" } }, "packages/cluster-settings/node_modules/@types/node": { @@ -34387,6 +34390,19 @@ "integrity": "sha512-fwGw1uvQAzabxL1pyoknPlJIF2t7+K90uTqynleKRx24n3lYcxWa3+KByLhgkF8GEAK2c7hC8Ki0RkNM5H15jQ==", "dev": true }, + "packages/cluster-settings/node_modules/typescript": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.2.tgz", + "integrity": "sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=12.20" + } + }, "packages/core": { "name": "@k8slens/core", "version": "6.5.0-alpha.3", @@ -34395,6 +34411,7 @@ "@astronautlabs/jsonpath": "^1.1.0", "@hapi/call": "^9.0.1", "@hapi/subtext": "^7.1.0", + "@k8slens/cluster-settings": "^6.5.0-alpha.1", "@k8slens/node-fetch": "^6.5.0-alpha.1", "@kubernetes/client-node": "^0.18.1", "@material-ui/styles": "^4.11.5", diff --git a/packages/cluster-settings/package.json b/packages/cluster-settings/package.json index 467e38ad52..0f73a6849b 100644 --- a/packages/cluster-settings/package.json +++ b/packages/cluster-settings/package.json @@ -1,10 +1,10 @@ { "name": "@k8slens/cluster-settings", - "version": "6.5.0-alpha.", - "description": "Injection tokens exporter for cluster settings configuration", + "version": "6.5.0-alpha.1", + "description": "Injection token exporter for cluster settings configuration", "license": "MIT", "private": false, - "mode": "production", + "mode": "production", "publishConfig": { "access": "public", "registry": "https://registry.npmjs.org/" @@ -16,13 +16,16 @@ ], "scripts": { "clean": "rimraf dist/", - "build": "swc ./src/index.ts -d ./dist" + "generate-types": "tsc --d --declarationDir ./dist --declarationMap --emitDeclarationOnly", + "build": "npm run generate-types && swc ./src/index.ts -d ./dist" }, "devDependencies": { + "@ogre-tools/injectable": "^15.1.2", "@swc/cli": "^0.1.61", "@swc/core": "^1.3.37", "@types/node": "^16.18.11", "@types/semver": "^7.3.13", - "rimraf": "^4.1.2" + "rimraf": "^4.1.2", + "typescript": "^5.0.2" } } diff --git a/packages/cluster-settings/src/index.ts b/packages/cluster-settings/src/index.ts index 907fb41146..f3e7cb1db8 100644 --- a/packages/cluster-settings/src/index.ts +++ b/packages/cluster-settings/src/index.ts @@ -1,2 +1,30 @@ -export * from "../../core/src/renderer/components/cluster-settings/cluster-settings-menu-injection-token"; -export * from "../../core/src/renderer/components/cluster-settings/cluster-settings-component-injection-token"; +import { getInjectionToken } from "@ogre-tools/injectable"; + +type ClusterPreferences = { + clusterName?: string; + icon?: string | null; +} + +export interface ClusterIconMenuItem { + id: string; + title: string; + disabled?: (preferences: ClusterPreferences) => boolean; + onClick: (preferences: ClusterPreferences) => void; +} + +export const clusterIconSettingsMenuInjectionToken = getInjectionToken({ + id: "cluster-icon-settings-menu-injection-token", +}); + +export interface ClusterIconSettingComponentProps { + preferences: ClusterPreferences; +} + +export interface ClusterIconSettingsComponent { + id: string; + Component: React.ComponentType; +} + +export const clusterIconSettingsComponentInjectionToken = getInjectionToken({ + id: "cluster-icon-settings-component-injection-token", +}); \ No newline at end of file