Skip to content

Commit

Permalink
Extract injection token for application information to separate NPM p…
Browse files Browse the repository at this point in the history
…ackage (#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>
  • Loading branch information
jansav committed Feb 22, 2023
1 parent 4e02bdc commit 6883366
Show file tree
Hide file tree
Showing 32 changed files with 200 additions and 111 deletions.
19 changes: 18 additions & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -330,6 +330,7 @@
"xterm-addon-fit": "^0.5.0"
},
"peerDependencies": {
"@k8slens/application": "^6.4.0-beta.13",
"@types/byline": "^4.2.33",
"@types/chart.js": "^2.9.36",
"@types/color": "^3.0.3",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { applicationInformationToken } from "@k8slens/application";
import { getInjectable } from "@ogre-tools/injectable";
import { applicationInformationToken } from "../../../vars/application-information-token";

const welcomeRouteConfigInjectable = getInjectable({
id: "welcome-route-config",

instantiate: (di) => di.inject(applicationInformationToken).config.welcomeRoute,
instantiate: (di) => di.inject(applicationInformationToken).welcomeRoute,
});

export default welcomeRouteConfigInjectable;
2 changes: 0 additions & 2 deletions packages/core/src/common/library.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,4 @@
*/

// @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";
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { applicationInformationToken } from "@k8slens/application";
import { getInjectable } from "@ogre-tools/injectable";
import { applicationInformationToken } from "./application-information-token";

const applicationCopyrightInjectable = getInjectable({
id: "application-copyright",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { applicationInformationToken } from "@k8slens/application";
import { getInjectable } from "@ogre-tools/injectable";
import { applicationInformationToken } from "./application-information-token";

const applicationDescriptionInjectable = getInjectable({
id: "application-description",
Expand Down
Original file line number Diff line number Diff line change
@@ -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,
});

This file was deleted.

15 changes: 0 additions & 15 deletions packages/core/src/common/vars/application-information-token.ts

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { applicationInformationToken } from "@k8slens/application";
import { getInjectable } from "@ogre-tools/injectable";
import { applicationInformationToken } from "./application-information-token";

const bundledKubectlVersionInjectable = getInjectable({
id: "bundled-kubectl-version",
instantiate: (di) => di.inject(applicationInformationToken).config.bundledKubectlVersion,
instantiate: (di) => di.inject(applicationInformationToken).bundledKubectlVersion,
});

export default bundledKubectlVersionInjectable;
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { applicationInformationToken } from "@k8slens/application";
import { getInjectable } from "@ogre-tools/injectable";
import { applicationInformationToken } from "./application-information-token";

const contentSecurityPolicyInjectable = getInjectable({
id: "content-security-policy",
instantiate: (di) => di.inject(applicationInformationToken).config.contentSecurityPolicy,
instantiate: (di) => di.inject(applicationInformationToken).contentSecurityPolicy,
});

export default contentSecurityPolicyInjectable;
2 changes: 1 addition & 1 deletion packages/core/src/common/vars/product-name.injectable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { applicationInformationToken } from "@k8slens/application";
import { getInjectable } from "@ogre-tools/injectable";
import { applicationInformationToken } from "./application-information-token";

const productNameInjectable = getInjectable({
id: "product-name",
Expand Down
4 changes: 2 additions & 2 deletions packages/core/src/common/vars/sentry-dsn-url.injectable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { applicationInformationToken } from "@k8slens/application";
import { getInjectable } from "@ogre-tools/injectable";
import { applicationInformationToken } from "./application-information-token";

const sentryDataSourceNameInjectable = getInjectable({
id: "sentry-data-source-name",
instantiate: (di) => di.inject(applicationInformationToken).config.sentryDsn,
instantiate: (di) => di.inject(applicationInformationToken).sentryDsn,
});

export default sentryDataSourceNameInjectable;
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { applicationInformationToken } from "@k8slens/application";
import { getInjectable } from "@ogre-tools/injectable";
import { applicationInformationToken } from "./application-information-token";

const storeMigrationVersionInjectable = getInjectable({
id: "store-migration-version",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { applicationInformationToken } from "@k8slens/application";
import { getInjectable } from "@ogre-tools/injectable";
import { applicationInformationToken } from "../../../../../common/vars/application-information-token";

const publishIsConfiguredInjectable = getInjectable({
id: "publish-is-configured",
instantiate: (di) => Boolean(di.inject(applicationInformationToken).build.publish?.length),
instantiate: (di) => Boolean(di.inject(applicationInformationToken).updatingIsEnabled),
});

export default publishIsConfiguredInjectable;
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@
// Fix embedded kubeconfig paths under snap config

import { getInjectable } from "@ogre-tools/injectable";
import { applicationInformationToken } from "../../../common/vars/application-information-token";
import { clusterStoreMigrationInjectionToken } from "../../../common/cluster-store/migration-token";
import loggerInjectable from "../../../common/logger.injectable";
import isSnapPackageInjectable from "../../../common/vars/is-snap-package.injectable";
import type { ClusterModel } from "../../../common/cluster-types";
import pathExistsSyncInjectable from "../../../common/fs/path-exists-sync.injectable";
import { applicationInformationToken } from "@k8slens/application";

const clusterStoreSnapMigrationInjectable = getInjectable({
id: "cluster-store-snap-migration",
Expand Down
12 changes: 1 addition & 11 deletions packages/core/src/main/getDi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,5 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { createContainer } from "@ogre-tools/injectable";
import { runInAction } from "mobx";
import applicationInformationInjectable from "../common/vars/application-information-injectable";

export const getDi = () => {
const di = createContainer("main");

runInAction(() => {
di.register(applicationInformationInjectable);
});

return di;
};
export const getDi = () => createContainer("main");
7 changes: 4 additions & 3 deletions packages/core/src/main/getDiForUnitTesting.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx";
import electronInjectable from "./utils/resolve-system-proxy/electron.injectable";
import initializeClusterManagerInjectable from "./cluster/initialize-manager.injectable";
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 { getOverrideFsWithFakes } from "../test-utils/override-fs-with-fakes";
import { applicationInformationFakeInjectable } from "../common/vars/application-information-fake-injectable";

export function getDiForUnitTesting(opts: { doGeneralOverrides?: boolean } = {}) {
const {
Expand All @@ -57,9 +57,10 @@ export function getDiForUnitTesting(opts: { doGeneralOverrides?: boolean } = {})
.filter(isInjectable)
) as Injectable<any, any, any>[];

registerMobX(di);

runInAction(() => {
registerMobX(di);
di.register(applicationInformationInjectable);
di.register(applicationInformationFakeInjectable);

chunk(100)(injectables).forEach(chunkInjectables => {
di.register(...chunkInjectables);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ import openLinkInBrowserInjectable from "../../../../common/utils/open-link-in-b
import getAbsolutePathInjectable from "../../../../common/path/get-absolute-path.injectable";
import lensResourcesDirInjectable from "../../../../common/vars/lens-resources-dir.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 lensProxyCertificateInjectable from "../../../../common/certificate/lens-proxy-certificate.injectable";
import { applicationInformationToken } from "@k8slens/application";

export type ElectronWindowTitleBarStyle = "hiddenInset" | "hidden" | "default" | "customButtonsOnHover";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import { docsUrl, slackUrl } from "../../../common/vars";
import type { WeblinkData } from "../../../common/weblinks-store/weblink-store";
import { getInjectable } from "@ogre-tools/injectable";
import { weblinkStoreMigrationInjectionToken } from "../../../common/weblinks-store/migration-token";
import { applicationInformationToken } from "../../../common/vars/application-information-token";
import { lensDocumentationWeblinkId, lensSlackWeblinkId } from "../links";
import { applicationInformationToken } from "@k8slens/application";

const currentVersionWeblinkStoreMigrationInjectable = getInjectable({
id: "current-version-weblink-store-migration",
Expand Down
12 changes: 1 addition & 11 deletions packages/core/src/renderer/getDi.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,5 @@
*/

import { createContainer } from "@ogre-tools/injectable";
import { runInAction } from "mobx";
import applicationInformationInjectable from "../common/vars/application-information-injectable";

export const getDi = () => {
const di = createContainer("renderer");

runInAction(() => {
di.register(applicationInformationInjectable);
});

return di;
};
export const getDi = () => createContainer("renderer");

0 comments on commit 6883366

Please sign in to comment.