mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
introduce applicationInformationToken
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
parent
586c94bb14
commit
22662dd716
@ -8,6 +8,7 @@
|
|||||||
"exports": {
|
"exports": {
|
||||||
"./main": "./static/build/library/main.js",
|
"./main": "./static/build/library/main.js",
|
||||||
"./renderer": "./static/build/library/renderer.js",
|
"./renderer": "./static/build/library/renderer.js",
|
||||||
|
"./common": "./static/build/library/common.js",
|
||||||
"./styles": "./static/build/library/renderer.css"
|
"./styles": "./static/build/library/renderer.css"
|
||||||
},
|
},
|
||||||
"typesVersions": {
|
"typesVersions": {
|
||||||
@ -17,6 +18,9 @@
|
|||||||
],
|
],
|
||||||
"renderer": [
|
"renderer": [
|
||||||
"./src/renderer/library.ts"
|
"./src/renderer/library.ts"
|
||||||
|
],
|
||||||
|
"common": [
|
||||||
|
"./src/common/library.ts"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -3,12 +3,12 @@
|
|||||||
* 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 { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import applicationInformationInjectable from "../../../vars/application-information.injectable";
|
import applicationInformationToken from "../../../vars/application-information-token.injectable";
|
||||||
|
|
||||||
const welcomeRouteConfigInjectable = getInjectable({
|
const welcomeRouteConfigInjectable = getInjectable({
|
||||||
id: "welcome-route-config",
|
id: "welcome-route-config",
|
||||||
|
|
||||||
instantiate: (di) => di.inject(applicationInformationInjectable).config.welcomeRoute,
|
instantiate: (di) => di.inject(applicationInformationToken).config.welcomeRoute,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default welcomeRouteConfigInjectable;
|
export default welcomeRouteConfigInjectable;
|
||||||
|
|||||||
9
src/common/library.ts
Normal file
9
src/common/library.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
|
*/
|
||||||
|
import applicationInformationToken from "./vars/application-information-token.injectable";
|
||||||
|
|
||||||
|
export {
|
||||||
|
applicationInformationToken,
|
||||||
|
};
|
||||||
@ -3,11 +3,11 @@
|
|||||||
* 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 { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import applicationInformationInjectable from "./application-information.injectable";
|
import applicationInformationToken from "./application-information-token.injectable";
|
||||||
|
|
||||||
const applicationCopyrightInjectable = getInjectable({
|
const applicationCopyrightInjectable = getInjectable({
|
||||||
id: "application-copyright",
|
id: "application-copyright",
|
||||||
instantiate: (di) => di.inject(applicationInformationInjectable).copyright,
|
instantiate: (di) => di.inject(applicationInformationToken).copyright,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default applicationCopyrightInjectable;
|
export default applicationCopyrightInjectable;
|
||||||
|
|||||||
@ -3,11 +3,11 @@
|
|||||||
* 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 { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import applicationInformationInjectable from "./application-information.injectable";
|
import applicationInformationToken from "./application-information-token.injectable";
|
||||||
|
|
||||||
const applicationDescriptionInjectable = getInjectable({
|
const applicationDescriptionInjectable = getInjectable({
|
||||||
id: "application-description",
|
id: "application-description",
|
||||||
instantiate: (di) => di.inject(applicationInformationInjectable).description,
|
instantiate: (di) => di.inject(applicationInformationToken).description,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default applicationDescriptionInjectable;
|
export default applicationDescriptionInjectable;
|
||||||
|
|||||||
@ -4,14 +4,12 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import packageJson from "../../../package.json";
|
import packageJson from "../../../package.json";
|
||||||
|
import applicationInformationToken from "./application-information-token.injectable";
|
||||||
export type ApplicationInformation = Pick<typeof packageJson, "version" | "config" | "productName" | "copyright" | "description" | "name"> & {
|
|
||||||
build: Partial<typeof packageJson["build"]> & { publish?: unknown[] };
|
|
||||||
};
|
|
||||||
|
|
||||||
const applicationInformationInjectable = getInjectable({
|
const applicationInformationInjectable = getInjectable({
|
||||||
id: "application-information",
|
id: "application-information",
|
||||||
instantiate: (): ApplicationInformation => {
|
injectionToken: applicationInformationToken,
|
||||||
|
instantiate: () => {
|
||||||
const { version, config, productName, build, copyright, description, name } = packageJson;
|
const { version, config, productName, build, copyright, description, name } = packageJson;
|
||||||
|
|
||||||
return { version, config, productName, build, copyright, description, name };
|
return { version, config, productName, build, copyright, description, name };
|
||||||
17
src/common/vars/application-information-token.injectable.ts
Normal file
17
src/common/vars/application-information-token.injectable.ts
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
/**
|
||||||
|
* 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: { publish?: unknown[] };
|
||||||
|
};
|
||||||
|
|
||||||
|
const applicationInformationToken = getInjectionToken<ApplicationInformation>({
|
||||||
|
id: "application-information-token",
|
||||||
|
});
|
||||||
|
|
||||||
|
export default applicationInformationToken;
|
||||||
@ -1,25 +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: {},
|
|
||||||
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",
|
|
||||||
extensions: [],
|
|
||||||
},
|
|
||||||
copyright: "some-copyright-information",
|
|
||||||
description: "some-descriptive-text",
|
|
||||||
}));
|
|
||||||
@ -0,0 +1,32 @@
|
|||||||
|
/**
|
||||||
|
* 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 "./application-information-token.injectable";
|
||||||
|
|
||||||
|
const applicationInformationForTestingInjectable = getInjectable({
|
||||||
|
id: "application-information-for-testing",
|
||||||
|
injectionToken: applicationInformationToken,
|
||||||
|
instantiate: () => ({
|
||||||
|
name: "some-product-name",
|
||||||
|
productName: "some-product-name",
|
||||||
|
version: "6.0.0",
|
||||||
|
build: {},
|
||||||
|
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",
|
||||||
|
extensions: [],
|
||||||
|
},
|
||||||
|
copyright: "some-copyright-information",
|
||||||
|
description: "some-descriptive-text",
|
||||||
|
}),
|
||||||
|
causesSideEffects: false,
|
||||||
|
});
|
||||||
|
|
||||||
|
export default applicationInformationForTestingInjectable;
|
||||||
@ -3,11 +3,11 @@
|
|||||||
* 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 { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import applicationInformationInjectable from "./application-information.injectable";
|
import applicationInformationToken from "./application-information-token.injectable";
|
||||||
|
|
||||||
const bundledKubectlVersionInjectable = getInjectable({
|
const bundledKubectlVersionInjectable = getInjectable({
|
||||||
id: "bundled-kubectl-version",
|
id: "bundled-kubectl-version",
|
||||||
instantiate: (di) => di.inject(applicationInformationInjectable).config.bundledKubectlVersion,
|
instantiate: (di) => di.inject(applicationInformationToken).config.bundledKubectlVersion,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default bundledKubectlVersionInjectable;
|
export default bundledKubectlVersionInjectable;
|
||||||
|
|||||||
@ -3,11 +3,11 @@
|
|||||||
* 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 { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import applicationInformationInjectable from "./application-information.injectable";
|
import applicationInformationToken from "./application-information-token.injectable";
|
||||||
|
|
||||||
const contentSecurityPolicyInjectable = getInjectable({
|
const contentSecurityPolicyInjectable = getInjectable({
|
||||||
id: "content-security-policy",
|
id: "content-security-policy",
|
||||||
instantiate: (di) => di.inject(applicationInformationInjectable).config.contentSecurityPolicy,
|
instantiate: (di) => di.inject(applicationInformationToken).config.contentSecurityPolicy,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default contentSecurityPolicyInjectable;
|
export default contentSecurityPolicyInjectable;
|
||||||
|
|||||||
@ -4,12 +4,12 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import { SemVer } from "semver";
|
import { SemVer } from "semver";
|
||||||
import applicationInformationInjectable from "./application-information.injectable";
|
import applicationInformationToken from "./application-information-token.injectable";
|
||||||
|
|
||||||
const extensionApiVersionInjectable = getInjectable({
|
const extensionApiVersionInjectable = getInjectable({
|
||||||
id: "extension-api-version",
|
id: "extension-api-version",
|
||||||
instantiate: (di) => {
|
instantiate: (di) => {
|
||||||
const { major, minor, patch } = new SemVer(di.inject(applicationInformationInjectable).version);
|
const { major, minor, patch } = new SemVer(di.inject(applicationInformationToken).version);
|
||||||
|
|
||||||
return `${major}.${minor}.${patch}`;
|
return `${major}.${minor}.${patch}`;
|
||||||
},
|
},
|
||||||
|
|||||||
@ -3,11 +3,11 @@
|
|||||||
* 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 { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import applicationInformationInjectable from "./application-information.injectable";
|
import applicationInformationToken from "./application-information-token.injectable";
|
||||||
|
|
||||||
const productNameInjectable = getInjectable({
|
const productNameInjectable = getInjectable({
|
||||||
id: "product-name",
|
id: "product-name",
|
||||||
instantiate: (di) => di.inject(applicationInformationInjectable).productName,
|
instantiate: (di) => di.inject(applicationInformationToken).productName,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default productNameInjectable;
|
export default productNameInjectable;
|
||||||
|
|||||||
@ -3,11 +3,11 @@
|
|||||||
* 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 { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import applicationInformationInjectable from "./application-information.injectable";
|
import applicationInformationToken from "./application-information-token.injectable";
|
||||||
|
|
||||||
const sentryDataSourceNameInjectable = getInjectable({
|
const sentryDataSourceNameInjectable = getInjectable({
|
||||||
id: "sentry-data-source-name",
|
id: "sentry-data-source-name",
|
||||||
instantiate: (di) => di.inject(applicationInformationInjectable).config.sentryDsn,
|
instantiate: (di) => di.inject(applicationInformationToken).config.sentryDsn,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default sentryDataSourceNameInjectable;
|
export default sentryDataSourceNameInjectable;
|
||||||
|
|||||||
@ -3,11 +3,11 @@
|
|||||||
* 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 { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import applicationInformationInjectable from "./application-information.injectable";
|
import applicationInformationToken from "./application-information-token.injectable";
|
||||||
|
|
||||||
const storeMigrationVersionInjectable = getInjectable({
|
const storeMigrationVersionInjectable = getInjectable({
|
||||||
id: "store-migration-version",
|
id: "store-migration-version",
|
||||||
instantiate: (di) => di.inject(applicationInformationInjectable).version,
|
instantiate: (di) => di.inject(applicationInformationToken).version,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default storeMigrationVersionInjectable;
|
export default storeMigrationVersionInjectable;
|
||||||
|
|||||||
@ -27,7 +27,7 @@ import getRelativePathInjectable from "../../common/path/get-relative-path.injec
|
|||||||
import joinPathsInjectable from "../../common/path/join-paths.injectable";
|
import joinPathsInjectable from "../../common/path/join-paths.injectable";
|
||||||
import removePathInjectable from "../../common/fs/remove-path.injectable";
|
import removePathInjectable from "../../common/fs/remove-path.injectable";
|
||||||
import homeDirectoryPathInjectable from "../../common/os/home-directory-path.injectable";
|
import homeDirectoryPathInjectable from "../../common/os/home-directory-path.injectable";
|
||||||
import applicationInformationInjectable from "../../common/vars/application-information.injectable";
|
import applicationInformationToken from "../../common/vars/application-information-token.injectable";
|
||||||
import lensResourcesDirInjectable from "../../common/vars/lens-resources-dir.injectable";
|
import lensResourcesDirInjectable from "../../common/vars/lens-resources-dir.injectable";
|
||||||
|
|
||||||
const extensionDiscoveryInjectable = getInjectable({
|
const extensionDiscoveryInjectable = getInjectable({
|
||||||
@ -58,7 +58,7 @@ const extensionDiscoveryInjectable = getInjectable({
|
|||||||
getRelativePath: di.inject(getRelativePathInjectable),
|
getRelativePath: di.inject(getRelativePathInjectable),
|
||||||
joinPaths: di.inject(joinPathsInjectable),
|
joinPaths: di.inject(joinPathsInjectable),
|
||||||
homeDirectoryPath: di.inject(homeDirectoryPathInjectable),
|
homeDirectoryPath: di.inject(homeDirectoryPathInjectable),
|
||||||
applicationInformation: di.inject(applicationInformationInjectable),
|
applicationInformation: di.inject(applicationInformationToken),
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -30,7 +30,7 @@ import type { GetDirnameOfPath } from "../../common/path/get-dirname.injectable"
|
|||||||
import type { GetRelativePath } from "../../common/path/get-relative-path.injectable";
|
import type { GetRelativePath } from "../../common/path/get-relative-path.injectable";
|
||||||
import type { RemovePath } from "../../common/fs/remove-path.injectable";
|
import type { RemovePath } from "../../common/fs/remove-path.injectable";
|
||||||
import type TypedEventEmitter from "typed-emitter";
|
import type TypedEventEmitter from "typed-emitter";
|
||||||
import type { ApplicationInformation } from "../../common/vars/application-information.injectable";
|
import type { ApplicationInformation } from "../../common/vars/application-information-injectable";
|
||||||
|
|
||||||
interface Dependencies {
|
interface Dependencies {
|
||||||
readonly extensionLoader: ExtensionLoader;
|
readonly extensionLoader: ExtensionLoader;
|
||||||
|
|||||||
@ -3,11 +3,11 @@
|
|||||||
* 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 { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import applicationInformationInjectable from "../../../../../common/vars/application-information.injectable";
|
import applicationInformationToken from "../../../../../common/vars/application-information-token.injectable";
|
||||||
|
|
||||||
const publishIsConfiguredInjectable = getInjectable({
|
const publishIsConfiguredInjectable = getInjectable({
|
||||||
id: "publish-is-configured",
|
id: "publish-is-configured",
|
||||||
instantiate: (di) => Boolean(di.inject(applicationInformationInjectable).build.publish?.length),
|
instantiate: (di) => Boolean(di.inject(applicationInformationToken).build.publish?.length),
|
||||||
});
|
});
|
||||||
|
|
||||||
export default publishIsConfiguredInjectable;
|
export default publishIsConfiguredInjectable;
|
||||||
|
|||||||
@ -80,6 +80,7 @@ import kubectlDownloadingNormalizedArchInjectable from "./kubectl/normalized-arc
|
|||||||
import initializeClusterManagerInjectable from "./cluster/initialize-manager.injectable";
|
import initializeClusterManagerInjectable from "./cluster/initialize-manager.injectable";
|
||||||
import addKubeconfigSyncAsEntitySourceInjectable from "./start-main-application/runnables/kube-config-sync/add-source.injectable";
|
import addKubeconfigSyncAsEntitySourceInjectable from "./start-main-application/runnables/kube-config-sync/add-source.injectable";
|
||||||
import type { GlobalOverride } from "../common/test-utils/get-global-override";
|
import type { GlobalOverride } from "../common/test-utils/get-global-override";
|
||||||
|
import applicationInformationForTestingInjectable from "../common/vars/application-information.injectable-for-testing";
|
||||||
|
|
||||||
export function getDiForUnitTesting(opts: { doGeneralOverrides?: boolean } = {}) {
|
export function getDiForUnitTesting(opts: { doGeneralOverrides?: boolean } = {}) {
|
||||||
const {
|
const {
|
||||||
@ -102,6 +103,7 @@ export function getDiForUnitTesting(opts: { doGeneralOverrides?: boolean } = {})
|
|||||||
|
|
||||||
runInAction(() => {
|
runInAction(() => {
|
||||||
registerMobX(di);
|
registerMobX(di);
|
||||||
|
di.register(applicationInformationForTestingInjectable);
|
||||||
|
|
||||||
chunk(100)(injectables).forEach(chunkInjectables => {
|
chunk(100)(injectables).forEach(chunkInjectables => {
|
||||||
di.register(...chunkInjectables);
|
di.register(...chunkInjectables);
|
||||||
|
|||||||
@ -6,19 +6,17 @@ import { getInjectable } from "@ogre-tools/injectable";
|
|||||||
import httpProxy from "http-proxy";
|
import httpProxy from "http-proxy";
|
||||||
import { webpackDevServerPort } from "../../../../webpack/vars";
|
import { webpackDevServerPort } from "../../../../webpack/vars";
|
||||||
import { publicPath } from "../../../common/vars";
|
import { publicPath } from "../../../common/vars";
|
||||||
import appNameInjectable from "../../../common/vars/app-name.injectable";
|
|
||||||
import type { LensApiRequest, RouteResponse } from "../../router/route";
|
import type { LensApiRequest, RouteResponse } from "../../router/route";
|
||||||
|
|
||||||
const devStaticFileRouteHandlerInjectable = getInjectable({
|
const devStaticFileRouteHandlerInjectable = getInjectable({
|
||||||
id: "dev-static-file-route-handler",
|
id: "dev-static-file-route-handler",
|
||||||
instantiate: (di) => {
|
instantiate: () => {
|
||||||
const proxy = httpProxy.createProxy();
|
const proxy = httpProxy.createProxy();
|
||||||
const appName = di.inject(appNameInjectable);
|
|
||||||
const proxyTarget = `http://127.0.0.1:${webpackDevServerPort}`;
|
const proxyTarget = `http://127.0.0.1:${webpackDevServerPort}`;
|
||||||
|
|
||||||
return async ({ raw: { req, res }}: LensApiRequest<"/{path*}">): Promise<RouteResponse<Buffer>> => {
|
return async ({ raw: { req, res }}: LensApiRequest<"/{path*}">): Promise<RouteResponse<Buffer>> => {
|
||||||
if (req.url === "/" || !req.url) {
|
if (req.url === "/" || !req.url) {
|
||||||
req.url = `${publicPath}/${appName}.html`;
|
req.url = `${publicPath}/index.html`;
|
||||||
} else if (!req.url.startsWith("/build/")) {
|
} else if (!req.url.startsWith("/build/")) {
|
||||||
return { statusCode: 404 };
|
return { statusCode: 404 };
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,7 +6,6 @@ import { getInjectable } from "@ogre-tools/injectable";
|
|||||||
import readFileBufferInjectable from "../../../common/fs/read-file-buffer.injectable";
|
import readFileBufferInjectable from "../../../common/fs/read-file-buffer.injectable";
|
||||||
import joinPathsInjectable from "../../../common/path/join-paths.injectable";
|
import joinPathsInjectable from "../../../common/path/join-paths.injectable";
|
||||||
import staticFilesDirectoryInjectable from "../../../common/vars/static-files-directory.injectable";
|
import staticFilesDirectoryInjectable from "../../../common/vars/static-files-directory.injectable";
|
||||||
import appNameInjectable from "../../../common/vars/app-name.injectable";
|
|
||||||
import type { LensApiRequest } from "../../router/route";
|
import type { LensApiRequest } from "../../router/route";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
import type { SupportedFileExtension } from "../../router/router-content-types";
|
import type { SupportedFileExtension } from "../../router/router-content-types";
|
||||||
@ -20,7 +19,6 @@ const prodStaticFileRouteHandlerInjectable = getInjectable({
|
|||||||
const readFileBuffer = di.inject(readFileBufferInjectable);
|
const readFileBuffer = di.inject(readFileBufferInjectable);
|
||||||
const joinPaths = di.inject(joinPathsInjectable);
|
const joinPaths = di.inject(joinPathsInjectable);
|
||||||
const staticFilesDirectory = di.inject(staticFilesDirectoryInjectable);
|
const staticFilesDirectory = di.inject(staticFilesDirectoryInjectable);
|
||||||
const appName = di.inject(appNameInjectable);
|
|
||||||
const logger = di.inject(loggerInjectable);
|
const logger = di.inject(loggerInjectable);
|
||||||
|
|
||||||
return async ({ params }: LensApiRequest<"/{path*}">) => {
|
return async ({ params }: LensApiRequest<"/{path*}">) => {
|
||||||
@ -49,7 +47,7 @@ const prodStaticFileRouteHandlerInjectable = getInjectable({
|
|||||||
return { statusCode: 404 };
|
return { statusCode: 404 };
|
||||||
}
|
}
|
||||||
|
|
||||||
filePath = `${publicPath}/${appName}.html`;
|
filePath = `${publicPath}/index.html`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -13,7 +13,7 @@ import getAbsolutePathInjectable from "../../../../common/path/get-absolute-path
|
|||||||
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 fsInjectable from "../../../../common/fs/fs.injectable";
|
import fsInjectable from "../../../../common/fs/fs.injectable";
|
||||||
import applicationInformationInjectable from "../../../../common/vars/application-information.injectable";
|
import applicationInformationToken from "../../../../common/vars/application-information-token.injectable";
|
||||||
|
|
||||||
|
|
||||||
export type ElectronWindowTitleBarStyle = "hiddenInset" | "hidden" | "default" | "customButtonsOnHover";
|
export type ElectronWindowTitleBarStyle = "hiddenInset" | "hidden" | "default" | "customButtonsOnHover";
|
||||||
@ -54,7 +54,7 @@ const createElectronWindowInjectable = getInjectable({
|
|||||||
const getAbsolutePath = di.inject(getAbsolutePathInjectable);
|
const getAbsolutePath = di.inject(getAbsolutePathInjectable);
|
||||||
const lensResourcesDir = di.inject(lensResourcesDirInjectable);
|
const lensResourcesDir = di.inject(lensResourcesDirInjectable);
|
||||||
const isLinux = di.inject(isLinuxInjectable);
|
const isLinux = di.inject(isLinuxInjectable);
|
||||||
const applicationInformation = di.inject(applicationInformationInjectable);
|
const applicationInformation = di.inject(applicationInformationToken);
|
||||||
|
|
||||||
return (configuration) => {
|
return (configuration) => {
|
||||||
const applicationWindowState = di.inject(
|
const applicationWindowState = di.inject(
|
||||||
|
|||||||
@ -51,6 +51,7 @@ import storageSaveDelayInjectable from "./utils/create-storage/storage-save-dela
|
|||||||
import environmentVariablesInjectable from "../common/utils/environment-variables.injectable";
|
import environmentVariablesInjectable from "../common/utils/environment-variables.injectable";
|
||||||
import type { GlobalOverride } from "../common/test-utils/get-global-override";
|
import type { GlobalOverride } from "../common/test-utils/get-global-override";
|
||||||
import type { PartialDeep } from "type-fest";
|
import type { PartialDeep } from "type-fest";
|
||||||
|
import applicationInformationForTestingInjectable from "../common/vars/application-information.injectable-for-testing";
|
||||||
|
|
||||||
export const getDiForUnitTesting = (
|
export const getDiForUnitTesting = (
|
||||||
opts: { doGeneralOverrides?: boolean } = {},
|
opts: { doGeneralOverrides?: boolean } = {},
|
||||||
@ -74,6 +75,8 @@ export const getDiForUnitTesting = (
|
|||||||
runInAction(() => {
|
runInAction(() => {
|
||||||
registerMobX(di);
|
registerMobX(di);
|
||||||
|
|
||||||
|
di.register(applicationInformationForTestingInjectable);
|
||||||
|
|
||||||
chunk(100)(injectables).forEach((chunkInjectables) => {
|
chunk(100)(injectables).forEach((chunkInjectables) => {
|
||||||
di.register(...chunkInjectables);
|
di.register(...chunkInjectables);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -17,7 +17,9 @@ const config = [
|
|||||||
main: path.resolve(__dirname, "..", "src", "main", "library.ts"),
|
main: path.resolve(__dirname, "..", "src", "main", "library.ts"),
|
||||||
},
|
},
|
||||||
output: {
|
output: {
|
||||||
libraryTarget: "commonjs",
|
library: {
|
||||||
|
type: "commonjs2",
|
||||||
|
},
|
||||||
path: path.resolve(buildDir, "library"),
|
path: path.resolve(buildDir, "library"),
|
||||||
},
|
},
|
||||||
optimization: {
|
optimization: {
|
||||||
@ -32,11 +34,33 @@ const config = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
...renderer,
|
...renderer,
|
||||||
|
entry: {
|
||||||
|
common: path.resolve(__dirname, "..", "src", "common", "library.ts"),
|
||||||
|
},
|
||||||
|
output: {
|
||||||
|
library: {
|
||||||
|
type: "commonjs2",
|
||||||
|
},
|
||||||
|
path: path.resolve(buildDir, "library"),
|
||||||
|
},
|
||||||
|
optimization: {
|
||||||
|
minimize: false,
|
||||||
|
},
|
||||||
|
externals: [
|
||||||
|
nodeExternals(),
|
||||||
|
],
|
||||||
|
plugins: [],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
...renderer,
|
||||||
|
name: "lens-app-common",
|
||||||
entry: {
|
entry: {
|
||||||
renderer: path.resolve(__dirname, "..", "src", "renderer", "library.ts"),
|
renderer: path.resolve(__dirname, "..", "src", "renderer", "library.ts"),
|
||||||
},
|
},
|
||||||
output: {
|
output: {
|
||||||
libraryTarget: "commonjs",
|
library: {
|
||||||
|
type: "commonjs2",
|
||||||
|
},
|
||||||
path: path.resolve(buildDir, "library"),
|
path: path.resolve(buildDir, "library"),
|
||||||
},
|
},
|
||||||
optimization: {
|
optimization: {
|
||||||
|
|||||||
@ -5,16 +5,11 @@
|
|||||||
|
|
||||||
import path from "path";
|
import path from "path";
|
||||||
import type webpack from "webpack";
|
import type webpack from "webpack";
|
||||||
import type { WebpackPluginInstance } from "webpack";
|
|
||||||
import { DefinePlugin } from "webpack";
|
|
||||||
import nodeExternals from "webpack-node-externals";
|
import nodeExternals from "webpack-node-externals";
|
||||||
import ForkTsCheckerPlugin from "fork-ts-checker-webpack-plugin";
|
|
||||||
import CircularDependencyPlugin from "circular-dependency-plugin";
|
|
||||||
import MonacoWebpackPlugin from "monaco-editor-webpack-plugin";
|
import MonacoWebpackPlugin from "monaco-editor-webpack-plugin";
|
||||||
import getTypeScriptLoader from "./get-typescript-loader";
|
import getTypeScriptLoader from "./get-typescript-loader";
|
||||||
import rendererConfig, { iconsAndImagesWebpackRules } from "./renderer";
|
import rendererConfig, { iconsAndImagesWebpackRules } from "./renderer";
|
||||||
import { appName, assetsFolderName, buildDir, htmlTemplate, isDevelopment, mainDir, publicPath } from "./vars";
|
import { assetsFolderName, buildDir, htmlTemplate, isDevelopment, mainDir, publicPath } from "./vars";
|
||||||
import { platform } from "process";
|
|
||||||
import HtmlWebpackPlugin from "html-webpack-plugin";
|
import HtmlWebpackPlugin from "html-webpack-plugin";
|
||||||
import MiniCssExtractPlugin from "mini-css-extract-plugin";
|
import MiniCssExtractPlugin from "mini-css-extract-plugin";
|
||||||
|
|
||||||
@ -29,7 +24,7 @@ const renderer: webpack.Configuration = ({
|
|||||||
globalAPI: isDevelopment,
|
globalAPI: isDevelopment,
|
||||||
}),
|
}),
|
||||||
new HtmlWebpackPlugin({
|
new HtmlWebpackPlugin({
|
||||||
filename: `${appName}.html`,
|
filename: "index.html",
|
||||||
template: htmlTemplate,
|
template: htmlTemplate,
|
||||||
inject: true,
|
inject: true,
|
||||||
hash: true,
|
hash: true,
|
||||||
@ -73,18 +68,7 @@ const main: webpack.Configuration = ({
|
|||||||
...iconsAndImagesWebpackRules(),
|
...iconsAndImagesWebpackRules(),
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [],
|
||||||
new DefinePlugin({
|
|
||||||
CONTEXT_MATCHER_FOR_NON_FEATURES: `/\\.injectable(\\.${platform})?\\.tsx?$/`,
|
|
||||||
CONTEXT_MATCHER_FOR_FEATURES: `/\\/(main|common)\\/.+\\.injectable(\\.${platform})?\\.tsx?$/`,
|
|
||||||
}),
|
|
||||||
new ForkTsCheckerPlugin(),
|
|
||||||
new CircularDependencyPlugin({
|
|
||||||
cwd: __dirname,
|
|
||||||
exclude: /node_modules/,
|
|
||||||
failOnError: true,
|
|
||||||
}) as unknown as WebpackPluginInstance,
|
|
||||||
],
|
|
||||||
});
|
});
|
||||||
|
|
||||||
export {
|
export {
|
||||||
|
|||||||
@ -103,7 +103,7 @@ export function webpackLensRenderer({ showVars = true } = {}): webpack.Configura
|
|||||||
}),
|
}),
|
||||||
|
|
||||||
new HtmlWebpackPlugin({
|
new HtmlWebpackPlugin({
|
||||||
filename: `${appName}.html`,
|
filename: "index.html",
|
||||||
template: htmlTemplate,
|
template: htmlTemplate,
|
||||||
inject: true,
|
inject: true,
|
||||||
hash: true,
|
hash: true,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user