mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Extract injection token for application information to separate NPM package (#7211)
* Introduce dummy package for application Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Introduce application information token in application Feature Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Switch to using applicationInformationToken from application feature Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> --------- Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
parent
4e02bdce6d
commit
688336647d
19
package-lock.json
generated
19
package-lock.json
generated
@ -3281,6 +3281,10 @@
|
|||||||
"@jridgewell/sourcemap-codec": "1.4.14"
|
"@jridgewell/sourcemap-codec": "1.4.14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@k8slens/application": {
|
||||||
|
"resolved": "packages/technical-features/application",
|
||||||
|
"link": true
|
||||||
|
},
|
||||||
"node_modules/@k8slens/bump-version-for-cron": {
|
"node_modules/@k8slens/bump-version-for-cron": {
|
||||||
"resolved": "packages/bump-version-for-cron",
|
"resolved": "packages/bump-version-for-cron",
|
||||||
"link": true
|
"link": true
|
||||||
@ -32254,7 +32258,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@astronautlabs/jsonpath": "^1.1.0",
|
"@astronautlabs/jsonpath": "^1.1.0",
|
||||||
"@hapi/call": "^9.0.1",
|
"@hapi/call": "^9.0.1",
|
||||||
"@hapi/subtext": "^7.0.4",
|
"@hapi/subtext": "^7.1.0",
|
||||||
"@k8slens/node-fetch": "^6.4.0-beta.13",
|
"@k8slens/node-fetch": "^6.4.0-beta.13",
|
||||||
"@kubernetes/client-node": "^0.18.1",
|
"@kubernetes/client-node": "^0.18.1",
|
||||||
"@material-ui/styles": "^4.11.5",
|
"@material-ui/styles": "^4.11.5",
|
||||||
@ -32461,6 +32465,7 @@
|
|||||||
"node": ">=16 <17"
|
"node": ">=16 <17"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
|
"@k8slens/application": "^6.4.0-beta.13",
|
||||||
"@types/byline": "^4.2.33",
|
"@types/byline": "^4.2.33",
|
||||||
"@types/chart.js": "^2.9.36",
|
"@types/chart.js": "^2.9.36",
|
||||||
"@types/color": "^3.0.3",
|
"@types/color": "^3.0.3",
|
||||||
@ -34095,6 +34100,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packages/infrastructure/webpack": {
|
"packages/infrastructure/webpack": {
|
||||||
|
"name": "@k8slens/webpack",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -34291,6 +34297,7 @@
|
|||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@k8slens/application": "^6.4.0-beta.13",
|
||||||
"@k8slens/core": "^6.4.0-beta.13",
|
"@k8slens/core": "^6.4.0-beta.13",
|
||||||
"@k8slens/ensure-binaries": "^6.4.0-beta.13",
|
"@k8slens/ensure-binaries": "^6.4.0-beta.13",
|
||||||
"@k8slens/generate-tray-icons": "^6.4.0-beta.13",
|
"@k8slens/generate-tray-icons": "^6.4.0-beta.13",
|
||||||
@ -34534,6 +34541,16 @@
|
|||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.12.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.12.tgz",
|
||||||
"integrity": "sha512-vzLe5NaNMjIE3mcddFVGlAXN1LEWueUsMsOJWaT6wWMJGyljHAWHznqfnKUQWGzu7TLPrGvWdNAsvQYW+C0xtw==",
|
"integrity": "sha512-vzLe5NaNMjIE3mcddFVGlAXN1LEWueUsMsOJWaT6wWMJGyljHAWHznqfnKUQWGzu7TLPrGvWdNAsvQYW+C0xtw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
|
},
|
||||||
|
"packages/technical-features/application": {
|
||||||
|
"name": "@k8slens/application",
|
||||||
|
"version": "6.4.0-beta.13",
|
||||||
|
"license": "MIT",
|
||||||
|
"peerDependencies": {
|
||||||
|
"@ogre-tools/fp": "^12.0.1",
|
||||||
|
"@ogre-tools/injectable": "^12.0.1",
|
||||||
|
"lodash": "^4.17.15"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -330,6 +330,7 @@
|
|||||||
"xterm-addon-fit": "^0.5.0"
|
"xterm-addon-fit": "^0.5.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
|
"@k8slens/application": "^6.4.0-beta.13",
|
||||||
"@types/byline": "^4.2.33",
|
"@types/byline": "^4.2.33",
|
||||||
"@types/chart.js": "^2.9.36",
|
"@types/chart.js": "^2.9.36",
|
||||||
"@types/color": "^3.0.3",
|
"@types/color": "^3.0.3",
|
||||||
|
|||||||
@ -2,13 +2,13 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
|
import { applicationInformationToken } from "@k8slens/application";
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import { applicationInformationToken } from "../../../vars/application-information-token";
|
|
||||||
|
|
||||||
const welcomeRouteConfigInjectable = getInjectable({
|
const welcomeRouteConfigInjectable = getInjectable({
|
||||||
id: "welcome-route-config",
|
id: "welcome-route-config",
|
||||||
|
|
||||||
instantiate: (di) => di.inject(applicationInformationToken).config.welcomeRoute,
|
instantiate: (di) => di.inject(applicationInformationToken).welcomeRoute,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default welcomeRouteConfigInjectable;
|
export default welcomeRouteConfigInjectable;
|
||||||
|
|||||||
@ -4,6 +4,4 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// @experimental
|
// @experimental
|
||||||
export { applicationInformationToken } from "./vars/application-information-token";
|
|
||||||
export type { ApplicationInformation } from "./vars/application-information-token";
|
|
||||||
export { bundledExtensionInjectionToken } from "../extensions/extension-discovery/bundled-extension-token";
|
export { bundledExtensionInjectionToken } from "../extensions/extension-discovery/bundled-extension-token";
|
||||||
|
|||||||
@ -2,8 +2,8 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
|
import { applicationInformationToken } from "@k8slens/application";
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import { applicationInformationToken } from "./application-information-token";
|
|
||||||
|
|
||||||
const applicationCopyrightInjectable = getInjectable({
|
const applicationCopyrightInjectable = getInjectable({
|
||||||
id: "application-copyright",
|
id: "application-copyright",
|
||||||
|
|||||||
@ -2,8 +2,8 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
|
import { applicationInformationToken } from "@k8slens/application";
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import { applicationInformationToken } from "./application-information-token";
|
|
||||||
|
|
||||||
const applicationDescriptionInjectable = getInjectable({
|
const applicationDescriptionInjectable = getInjectable({
|
||||||
id: "application-description",
|
id: "application-description",
|
||||||
|
|||||||
@ -0,0 +1,30 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
|
import { applicationInformationToken } from "@k8slens/application";
|
||||||
|
|
||||||
|
export const applicationInformationFakeInjectable = getInjectable({
|
||||||
|
id: "application-information-fake",
|
||||||
|
|
||||||
|
instantiate: () => ({
|
||||||
|
name: "some-product-name",
|
||||||
|
productName: "some-product-name",
|
||||||
|
version: "6.0.0",
|
||||||
|
updatingIsEnabled: false,
|
||||||
|
k8sProxyVersion: "0.2.1",
|
||||||
|
bundledKubectlVersion: "1.23.3",
|
||||||
|
bundledHelmVersion: "3.7.2",
|
||||||
|
sentryDsn: "",
|
||||||
|
contentSecurityPolicy:
|
||||||
|
"script-src 'unsafe-eval' 'self'; frame-src http://*.localhost:*/; img-src * data:",
|
||||||
|
|
||||||
|
welcomeRoute: "/welcome",
|
||||||
|
copyright: "some-copyright-information",
|
||||||
|
description: "some-descriptive-text",
|
||||||
|
}),
|
||||||
|
|
||||||
|
injectionToken: applicationInformationToken,
|
||||||
|
});
|
||||||
@ -1,20 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
||||||
*/
|
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
|
||||||
import packageJson from "../../../package.json";
|
|
||||||
import { applicationInformationToken } from "../../common/vars/application-information-token";
|
|
||||||
|
|
||||||
const applicationInformationInjectable = getInjectable({
|
|
||||||
id: "application-information",
|
|
||||||
injectionToken: applicationInformationToken,
|
|
||||||
instantiate: () => {
|
|
||||||
const { version, config, productName, build, copyright, description, name } = packageJson;
|
|
||||||
|
|
||||||
return { version, config, productName, build, copyright, description, name };
|
|
||||||
},
|
|
||||||
causesSideEffects: true,
|
|
||||||
});
|
|
||||||
|
|
||||||
export default applicationInformationInjectable;
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { getInjectionToken } from "@ogre-tools/injectable";
|
|
||||||
import type packageJson from "../../../package.json";
|
|
||||||
|
|
||||||
export type ApplicationInformation = Pick<typeof packageJson, "version" | "config" | "productName" | "copyright" | "description" | "name"> & {
|
|
||||||
build: Partial<typeof packageJson["build"]> & { publish?: unknown[] };
|
|
||||||
};
|
|
||||||
|
|
||||||
export const applicationInformationToken = getInjectionToken<ApplicationInformation>({
|
|
||||||
id: "application-information-token",
|
|
||||||
});
|
|
||||||
@ -1,24 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { getGlobalOverride } from "../test-utils/get-global-override";
|
|
||||||
import applicationInformationInjectable from "./application-information-injectable";
|
|
||||||
|
|
||||||
export default getGlobalOverride(applicationInformationInjectable, () => ({
|
|
||||||
name: "some-product-name",
|
|
||||||
productName: "some-product-name",
|
|
||||||
version: "6.0.0",
|
|
||||||
build: {} as any,
|
|
||||||
config: {
|
|
||||||
k8sProxyVersion: "0.2.1",
|
|
||||||
bundledKubectlVersion: "1.23.3",
|
|
||||||
bundledHelmVersion: "3.7.2",
|
|
||||||
sentryDsn: "",
|
|
||||||
contentSecurityPolicy: "script-src 'unsafe-eval' 'self'; frame-src http://*.localhost:*/; img-src * data:",
|
|
||||||
welcomeRoute: "/welcome",
|
|
||||||
},
|
|
||||||
copyright: "some-copyright-information",
|
|
||||||
description: "some-descriptive-text",
|
|
||||||
}));
|
|
||||||
@ -2,12 +2,12 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
|
import { applicationInformationToken } from "@k8slens/application";
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import { applicationInformationToken } from "./application-information-token";
|
|
||||||
|
|
||||||
const bundledKubectlVersionInjectable = getInjectable({
|
const bundledKubectlVersionInjectable = getInjectable({
|
||||||
id: "bundled-kubectl-version",
|
id: "bundled-kubectl-version",
|
||||||
instantiate: (di) => di.inject(applicationInformationToken).config.bundledKubectlVersion,
|
instantiate: (di) => di.inject(applicationInformationToken).bundledKubectlVersion,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default bundledKubectlVersionInjectable;
|
export default bundledKubectlVersionInjectable;
|
||||||
|
|||||||
@ -2,12 +2,12 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
|
import { applicationInformationToken } from "@k8slens/application";
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import { applicationInformationToken } from "./application-information-token";
|
|
||||||
|
|
||||||
const contentSecurityPolicyInjectable = getInjectable({
|
const contentSecurityPolicyInjectable = getInjectable({
|
||||||
id: "content-security-policy",
|
id: "content-security-policy",
|
||||||
instantiate: (di) => di.inject(applicationInformationToken).config.contentSecurityPolicy,
|
instantiate: (di) => di.inject(applicationInformationToken).contentSecurityPolicy,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default contentSecurityPolicyInjectable;
|
export default contentSecurityPolicyInjectable;
|
||||||
|
|||||||
@ -2,8 +2,8 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
|
import { applicationInformationToken } from "@k8slens/application";
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import { applicationInformationToken } from "./application-information-token";
|
|
||||||
|
|
||||||
const productNameInjectable = getInjectable({
|
const productNameInjectable = getInjectable({
|
||||||
id: "product-name",
|
id: "product-name",
|
||||||
|
|||||||
@ -2,12 +2,12 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
|
import { applicationInformationToken } from "@k8slens/application";
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import { applicationInformationToken } from "./application-information-token";
|
|
||||||
|
|
||||||
const sentryDataSourceNameInjectable = getInjectable({
|
const sentryDataSourceNameInjectable = getInjectable({
|
||||||
id: "sentry-data-source-name",
|
id: "sentry-data-source-name",
|
||||||
instantiate: (di) => di.inject(applicationInformationToken).config.sentryDsn,
|
instantiate: (di) => di.inject(applicationInformationToken).sentryDsn,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default sentryDataSourceNameInjectable;
|
export default sentryDataSourceNameInjectable;
|
||||||
|
|||||||
@ -2,8 +2,8 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
|
import { applicationInformationToken } from "@k8slens/application";
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import { applicationInformationToken } from "./application-information-token";
|
|
||||||
|
|
||||||
const storeMigrationVersionInjectable = getInjectable({
|
const storeMigrationVersionInjectable = getInjectable({
|
||||||
id: "store-migration-version",
|
id: "store-migration-version",
|
||||||
|
|||||||
@ -2,12 +2,12 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
|
import { applicationInformationToken } from "@k8slens/application";
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import { applicationInformationToken } from "../../../../../common/vars/application-information-token";
|
|
||||||
|
|
||||||
const publishIsConfiguredInjectable = getInjectable({
|
const publishIsConfiguredInjectable = getInjectable({
|
||||||
id: "publish-is-configured",
|
id: "publish-is-configured",
|
||||||
instantiate: (di) => Boolean(di.inject(applicationInformationToken).build.publish?.length),
|
instantiate: (di) => Boolean(di.inject(applicationInformationToken).updatingIsEnabled),
|
||||||
});
|
});
|
||||||
|
|
||||||
export default publishIsConfiguredInjectable;
|
export default publishIsConfiguredInjectable;
|
||||||
|
|||||||
@ -6,12 +6,12 @@
|
|||||||
// Fix embedded kubeconfig paths under snap config
|
// Fix embedded kubeconfig paths under snap config
|
||||||
|
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import { applicationInformationToken } from "../../../common/vars/application-information-token";
|
|
||||||
import { clusterStoreMigrationInjectionToken } from "../../../common/cluster-store/migration-token";
|
import { clusterStoreMigrationInjectionToken } from "../../../common/cluster-store/migration-token";
|
||||||
import loggerInjectable from "../../../common/logger.injectable";
|
import loggerInjectable from "../../../common/logger.injectable";
|
||||||
import isSnapPackageInjectable from "../../../common/vars/is-snap-package.injectable";
|
import isSnapPackageInjectable from "../../../common/vars/is-snap-package.injectable";
|
||||||
import type { ClusterModel } from "../../../common/cluster-types";
|
import type { ClusterModel } from "../../../common/cluster-types";
|
||||||
import pathExistsSyncInjectable from "../../../common/fs/path-exists-sync.injectable";
|
import pathExistsSyncInjectable from "../../../common/fs/path-exists-sync.injectable";
|
||||||
|
import { applicationInformationToken } from "@k8slens/application";
|
||||||
|
|
||||||
const clusterStoreSnapMigrationInjectable = getInjectable({
|
const clusterStoreSnapMigrationInjectable = getInjectable({
|
||||||
id: "cluster-store-snap-migration",
|
id: "cluster-store-snap-migration",
|
||||||
|
|||||||
@ -3,15 +3,5 @@
|
|||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
import { createContainer } from "@ogre-tools/injectable";
|
import { createContainer } from "@ogre-tools/injectable";
|
||||||
import { runInAction } from "mobx";
|
|
||||||
import applicationInformationInjectable from "../common/vars/application-information-injectable";
|
|
||||||
|
|
||||||
export const getDi = () => {
|
export const getDi = () => createContainer("main");
|
||||||
const di = createContainer("main");
|
|
||||||
|
|
||||||
runInAction(() => {
|
|
||||||
di.register(applicationInformationInjectable);
|
|
||||||
});
|
|
||||||
|
|
||||||
return di;
|
|
||||||
};
|
|
||||||
|
|||||||
@ -29,9 +29,9 @@ import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx";
|
|||||||
import electronInjectable from "./utils/resolve-system-proxy/electron.injectable";
|
import electronInjectable from "./utils/resolve-system-proxy/electron.injectable";
|
||||||
import initializeClusterManagerInjectable from "./cluster/initialize-manager.injectable";
|
import initializeClusterManagerInjectable from "./cluster/initialize-manager.injectable";
|
||||||
import type { GlobalOverride } from "../common/test-utils/get-global-override";
|
import type { GlobalOverride } from "../common/test-utils/get-global-override";
|
||||||
import applicationInformationInjectable from "../common/vars/application-information-injectable";
|
|
||||||
import nodeEnvInjectionToken from "../common/vars/node-env-injection-token";
|
import nodeEnvInjectionToken from "../common/vars/node-env-injection-token";
|
||||||
import { getOverrideFsWithFakes } from "../test-utils/override-fs-with-fakes";
|
import { getOverrideFsWithFakes } from "../test-utils/override-fs-with-fakes";
|
||||||
|
import { applicationInformationFakeInjectable } from "../common/vars/application-information-fake-injectable";
|
||||||
|
|
||||||
export function getDiForUnitTesting(opts: { doGeneralOverrides?: boolean } = {}) {
|
export function getDiForUnitTesting(opts: { doGeneralOverrides?: boolean } = {}) {
|
||||||
const {
|
const {
|
||||||
@ -57,9 +57,10 @@ export function getDiForUnitTesting(opts: { doGeneralOverrides?: boolean } = {})
|
|||||||
.filter(isInjectable)
|
.filter(isInjectable)
|
||||||
) as Injectable<any, any, any>[];
|
) as Injectable<any, any, any>[];
|
||||||
|
|
||||||
runInAction(() => {
|
|
||||||
registerMobX(di);
|
registerMobX(di);
|
||||||
di.register(applicationInformationInjectable);
|
|
||||||
|
runInAction(() => {
|
||||||
|
di.register(applicationInformationFakeInjectable);
|
||||||
|
|
||||||
chunk(100)(injectables).forEach(chunkInjectables => {
|
chunk(100)(injectables).forEach(chunkInjectables => {
|
||||||
di.register(...chunkInjectables);
|
di.register(...chunkInjectables);
|
||||||
|
|||||||
@ -13,9 +13,9 @@ import openLinkInBrowserInjectable from "../../../../common/utils/open-link-in-b
|
|||||||
import getAbsolutePathInjectable from "../../../../common/path/get-absolute-path.injectable";
|
import getAbsolutePathInjectable from "../../../../common/path/get-absolute-path.injectable";
|
||||||
import lensResourcesDirInjectable from "../../../../common/vars/lens-resources-dir.injectable";
|
import lensResourcesDirInjectable from "../../../../common/vars/lens-resources-dir.injectable";
|
||||||
import isLinuxInjectable from "../../../../common/vars/is-linux.injectable";
|
import isLinuxInjectable from "../../../../common/vars/is-linux.injectable";
|
||||||
import { applicationInformationToken } from "../../../../common/vars/application-information-token";
|
|
||||||
import pathExistsSyncInjectable from "../../../../common/fs/path-exists-sync.injectable";
|
import pathExistsSyncInjectable from "../../../../common/fs/path-exists-sync.injectable";
|
||||||
import lensProxyCertificateInjectable from "../../../../common/certificate/lens-proxy-certificate.injectable";
|
import lensProxyCertificateInjectable from "../../../../common/certificate/lens-proxy-certificate.injectable";
|
||||||
|
import { applicationInformationToken } from "@k8slens/application";
|
||||||
|
|
||||||
export type ElectronWindowTitleBarStyle = "hiddenInset" | "hidden" | "default" | "customButtonsOnHover";
|
export type ElectronWindowTitleBarStyle = "hiddenInset" | "hidden" | "default" | "customButtonsOnHover";
|
||||||
|
|
||||||
|
|||||||
@ -7,8 +7,8 @@ import { docsUrl, slackUrl } from "../../../common/vars";
|
|||||||
import type { WeblinkData } from "../../../common/weblinks-store/weblink-store";
|
import type { WeblinkData } from "../../../common/weblinks-store/weblink-store";
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import { weblinkStoreMigrationInjectionToken } from "../../../common/weblinks-store/migration-token";
|
import { weblinkStoreMigrationInjectionToken } from "../../../common/weblinks-store/migration-token";
|
||||||
import { applicationInformationToken } from "../../../common/vars/application-information-token";
|
|
||||||
import { lensDocumentationWeblinkId, lensSlackWeblinkId } from "../links";
|
import { lensDocumentationWeblinkId, lensSlackWeblinkId } from "../links";
|
||||||
|
import { applicationInformationToken } from "@k8slens/application";
|
||||||
|
|
||||||
const currentVersionWeblinkStoreMigrationInjectable = getInjectable({
|
const currentVersionWeblinkStoreMigrationInjectable = getInjectable({
|
||||||
id: "current-version-weblink-store-migration",
|
id: "current-version-weblink-store-migration",
|
||||||
|
|||||||
@ -4,15 +4,5 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { createContainer } from "@ogre-tools/injectable";
|
import { createContainer } from "@ogre-tools/injectable";
|
||||||
import { runInAction } from "mobx";
|
|
||||||
import applicationInformationInjectable from "../common/vars/application-information-injectable";
|
|
||||||
|
|
||||||
export const getDi = () => {
|
export const getDi = () => createContainer("renderer");
|
||||||
const di = createContainer("renderer");
|
|
||||||
|
|
||||||
runInAction(() => {
|
|
||||||
di.register(applicationInformationInjectable);
|
|
||||||
});
|
|
||||||
|
|
||||||
return di;
|
|
||||||
};
|
|
||||||
|
|||||||
@ -18,8 +18,8 @@ import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx";
|
|||||||
import watchHistoryStateInjectable from "./remote-helpers/watch-history-state.injectable";
|
import watchHistoryStateInjectable from "./remote-helpers/watch-history-state.injectable";
|
||||||
import legacyOnChannelListenInjectable from "./ipc/legacy-channel-listen.injectable";
|
import legacyOnChannelListenInjectable from "./ipc/legacy-channel-listen.injectable";
|
||||||
import type { GlobalOverride } from "../common/test-utils/get-global-override";
|
import type { GlobalOverride } from "../common/test-utils/get-global-override";
|
||||||
import applicationInformationInjectable from "../common/vars/application-information-injectable";
|
|
||||||
import nodeEnvInjectionToken from "../common/vars/node-env-injection-token";
|
import nodeEnvInjectionToken from "../common/vars/node-env-injection-token";
|
||||||
|
import { applicationInformationFakeInjectable } from "../common/vars/application-information-fake-injectable";
|
||||||
|
|
||||||
export const getDiForUnitTesting = (
|
export const getDiForUnitTesting = (
|
||||||
opts: { doGeneralOverrides?: boolean } = {},
|
opts: { doGeneralOverrides?: boolean } = {},
|
||||||
@ -45,9 +45,10 @@ export const getDiForUnitTesting = (
|
|||||||
.filter(isInjectable)
|
.filter(isInjectable)
|
||||||
) as Injectable<any, any, any>[];
|
) as Injectable<any, any, any>[];
|
||||||
|
|
||||||
runInAction(() => {
|
|
||||||
registerMobX(di);
|
registerMobX(di);
|
||||||
di.register(applicationInformationInjectable);
|
|
||||||
|
runInAction(() => {
|
||||||
|
di.register(applicationInformationFakeInjectable);
|
||||||
|
|
||||||
chunk(100)(injectables).forEach((chunkInjectables) => {
|
chunk(100)(injectables).forEach((chunkInjectables) => {
|
||||||
di.register(...chunkInjectables);
|
di.register(...chunkInjectables);
|
||||||
|
|||||||
@ -195,6 +195,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@k8slens/application": "^6.4.0-beta.13",
|
||||||
"@k8slens/core": "^6.4.0-beta.13",
|
"@k8slens/core": "^6.4.0-beta.13",
|
||||||
"@k8slens/ensure-binaries": "^6.4.0-beta.13",
|
"@k8slens/ensure-binaries": "^6.4.0-beta.13",
|
||||||
"@k8slens/generate-tray-icons": "^6.4.0-beta.13",
|
"@k8slens/generate-tray-icons": "^6.4.0-beta.13",
|
||||||
|
|||||||
@ -1,15 +1,49 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import { applicationInformationToken, ApplicationInformation } from "@k8slens/core/common";
|
|
||||||
import packageJson from "../../package.json";
|
import packageJson from "../../package.json";
|
||||||
|
import { applicationInformationToken } from "@k8slens/application";
|
||||||
|
|
||||||
const applicationInformationInjectable = getInjectable({
|
const applicationInformationInjectable = getInjectable({
|
||||||
id: "application-information",
|
id: "application-information",
|
||||||
injectionToken: applicationInformationToken,
|
injectionToken: applicationInformationToken,
|
||||||
instantiate: () => {
|
|
||||||
const { version, config, productName, build, copyright, description, name } = packageJson;
|
|
||||||
|
|
||||||
return { version, config, productName, build, copyright, description, name } as ApplicationInformation;
|
instantiate: () => {
|
||||||
|
const {
|
||||||
|
version,
|
||||||
|
|
||||||
|
config: {
|
||||||
|
bundledHelmVersion,
|
||||||
|
bundledKubectlVersion,
|
||||||
|
contentSecurityPolicy,
|
||||||
|
k8sProxyVersion,
|
||||||
|
sentryDsn,
|
||||||
|
welcomeRoute,
|
||||||
|
},
|
||||||
|
|
||||||
|
productName,
|
||||||
|
build,
|
||||||
|
copyright,
|
||||||
|
description,
|
||||||
|
name,
|
||||||
|
} = packageJson;
|
||||||
|
|
||||||
|
return {
|
||||||
|
version,
|
||||||
|
productName,
|
||||||
|
copyright,
|
||||||
|
description,
|
||||||
|
name,
|
||||||
|
k8sProxyVersion,
|
||||||
|
bundledKubectlVersion,
|
||||||
|
bundledHelmVersion,
|
||||||
|
sentryDsn,
|
||||||
|
contentSecurityPolicy,
|
||||||
|
welcomeRoute,
|
||||||
|
updatingIsEnabled: (build as any)?.publish?.length > 0,
|
||||||
|
};
|
||||||
},
|
},
|
||||||
causesSideEffects: true,
|
causesSideEffects: true,
|
||||||
});
|
});
|
||||||
|
|||||||
18
packages/technical-features/application/README.md
Normal file
18
packages/technical-features/application/README.md
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# @k8slens/application
|
||||||
|
|
||||||
|
This package contains stuff related to creating Lens-applications.
|
||||||
|
|
||||||
|
In the beginning it will contain just the injection tokens used to configure the application.
|
||||||
|
|
||||||
|
## Install
|
||||||
|
```bash
|
||||||
|
$ npm install @k8slens/application
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
As of now, this package doesn't do anything alone. It just provides you way to register implementation for contract.
|
||||||
|
|
||||||
|
Future ambition is that all stuff related to how applications are built will be relocated here.
|
||||||
|
|
||||||
3
packages/technical-features/application/index.ts
Normal file
3
packages/technical-features/application/index.ts
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
export { applicationInformationToken } from "./src/application-information-token";
|
||||||
|
export type { ApplicationInformation } from "./src/application-information-token";
|
||||||
|
|
||||||
2
packages/technical-features/application/jest.config.js
Normal file
2
packages/technical-features/application/jest.config.js
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
module.exports =
|
||||||
|
require("@k8slens/jest").monorepoPackageConfig(__dirname).configForReact;
|
||||||
34
packages/technical-features/application/package.json
Normal file
34
packages/technical-features/application/package.json
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"name": "@k8slens/application",
|
||||||
|
"private": false,
|
||||||
|
"version": "6.4.0-beta.13",
|
||||||
|
"description": "Package for creating Lens applications",
|
||||||
|
"type": "commonjs",
|
||||||
|
"files": [
|
||||||
|
"dist"
|
||||||
|
],
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/lensapp/monorepo.git"
|
||||||
|
},
|
||||||
|
"main": "dist/index.js",
|
||||||
|
"types": "dist/index.d.ts",
|
||||||
|
"author": {
|
||||||
|
"name": "OpenLens Authors",
|
||||||
|
"email": "info@k8slens.dev"
|
||||||
|
},
|
||||||
|
"license": "MIT",
|
||||||
|
"homepage": "https://github.com/lensapp/lens",
|
||||||
|
"scripts": {
|
||||||
|
"build": "lens-build",
|
||||||
|
"build:remove": "lens-remove-build",
|
||||||
|
"code-style:fix": "lens-fix-code-style",
|
||||||
|
"code-style:verify": "lens-verify-code-style",
|
||||||
|
"test": "lens-test"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@ogre-tools/fp": "^12.0.1",
|
||||||
|
"@ogre-tools/injectable": "^12.0.1",
|
||||||
|
"lodash": "^4.17.15"
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
|
*/
|
||||||
|
import { getInjectionToken } from "@ogre-tools/injectable";
|
||||||
|
|
||||||
|
export type ApplicationInformation = {
|
||||||
|
name: string;
|
||||||
|
version: string;
|
||||||
|
productName: string;
|
||||||
|
copyright: string;
|
||||||
|
description: string;
|
||||||
|
k8sProxyVersion: string,
|
||||||
|
bundledKubectlVersion: string,
|
||||||
|
bundledHelmVersion: string,
|
||||||
|
sentryDsn: string,
|
||||||
|
contentSecurityPolicy: string,
|
||||||
|
welcomeRoute: string,
|
||||||
|
updatingIsEnabled: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const applicationInformationToken = getInjectionToken<ApplicationInformation>({
|
||||||
|
id: "application-information-token",
|
||||||
|
});
|
||||||
3
packages/technical-features/application/tsconfig.json
Normal file
3
packages/technical-features/application/tsconfig.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"extends": "@k8slens/typescript/config/base.json"
|
||||||
|
}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
module.exports = require("@k8slens/webpack").configForNode;
|
||||||
Loading…
Reference in New Issue
Block a user