1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

setup nodejs module paths so that extensions can import things from others

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
Jari Kolehmainen 2022-08-24 12:23:49 +03:00
parent 4771c7755c
commit 2f2ec7f28c

View File

@ -0,0 +1,34 @@
/**
* 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 * as path from "path";
import { beforeApplicationIsLoadingInjectionToken } from "../../start-main-application/runnable-tokens/before-application-is-loading-injection-token";
import directoryForUserDataInjectable from "../../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable";
const setupModulePathsInjectable = getInjectable({
id: "setup-module-paths",
instantiate: (di) => {
const userDataDir = di.inject(directoryForUserDataInjectable);
return {
run: () => {
const module = __non_webpack_require__("module");
if (module?._nodeModulePaths) {
const nodeModulePaths = module._nodeModulePaths;
module._nodeModulePaths = (from: string[]) => {
return nodeModulePaths(from).concat([path.join(userDataDir, "node_modules")]);
};
}
},
};
},
injectionToken: beforeApplicationIsLoadingInjectionToken,
});
export default setupModulePathsInjectable;