mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
migration additions -- part 4 (isolate mobx for app & extensions)
Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
parent
08787dce1f
commit
a7ebf7cb3c
@ -18,7 +18,6 @@ module.exports = [
|
|||||||
externals: [
|
externals: [
|
||||||
{
|
{
|
||||||
"@k8slens/extensions": "var global.LensExtensions",
|
"@k8slens/extensions": "var global.LensExtensions",
|
||||||
"mobx": "var global.Mobx",
|
|
||||||
"react": "var global.React"
|
"react": "var global.React"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -49,7 +48,6 @@ module.exports = [
|
|||||||
{
|
{
|
||||||
"@k8slens/extensions": "var global.LensExtensions",
|
"@k8slens/extensions": "var global.LensExtensions",
|
||||||
"react": "var global.React",
|
"react": "var global.React",
|
||||||
"mobx": "var global.Mobx"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
resolve: {
|
resolve: {
|
||||||
|
|||||||
@ -19,7 +19,6 @@ module.exports = [
|
|||||||
{
|
{
|
||||||
"@k8slens/extensions": "var global.LensExtensions",
|
"@k8slens/extensions": "var global.LensExtensions",
|
||||||
"react": "var global.React",
|
"react": "var global.React",
|
||||||
"mobx": "var global.Mobx"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
resolve: {
|
resolve: {
|
||||||
|
|||||||
@ -19,7 +19,6 @@ export default [
|
|||||||
},
|
},
|
||||||
externals: {
|
externals: {
|
||||||
"@k8slens/extensions": "var global.LensExtensions",
|
"@k8slens/extensions": "var global.LensExtensions",
|
||||||
"mobx": "var global.Mobx",
|
|
||||||
},
|
},
|
||||||
resolve: {
|
resolve: {
|
||||||
extensions: [".tsx", ".ts", ".js"],
|
extensions: [".tsx", ".ts", ".js"],
|
||||||
|
|||||||
@ -19,7 +19,6 @@ module.exports = [
|
|||||||
{
|
{
|
||||||
"@k8slens/extensions": "var global.LensExtensions",
|
"@k8slens/extensions": "var global.LensExtensions",
|
||||||
"react": "var global.React",
|
"react": "var global.React",
|
||||||
"mobx": "var global.Mobx"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
resolve: {
|
resolve: {
|
||||||
|
|||||||
@ -19,7 +19,6 @@ module.exports = [
|
|||||||
{
|
{
|
||||||
"@k8slens/extensions": "var global.LensExtensions",
|
"@k8slens/extensions": "var global.LensExtensions",
|
||||||
"react": "var global.React",
|
"react": "var global.React",
|
||||||
"mobx": "var global.Mobx"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
resolve: {
|
resolve: {
|
||||||
|
|||||||
@ -19,7 +19,6 @@ module.exports = [
|
|||||||
{
|
{
|
||||||
"@k8slens/extensions": "var global.LensExtensions",
|
"@k8slens/extensions": "var global.LensExtensions",
|
||||||
"react": "var global.React",
|
"react": "var global.React",
|
||||||
"mobx": "var global.Mobx"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
resolve: {
|
resolve: {
|
||||||
|
|||||||
21
extensions/survey/package-lock.json
generated
21
extensions/survey/package-lock.json
generated
@ -5159,6 +5159,27 @@
|
|||||||
"minimist": "^1.2.5"
|
"minimist": "^1.2.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"mobx": {
|
||||||
|
"version": "6.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/mobx/-/mobx-6.2.0.tgz",
|
||||||
|
"integrity": "sha512-j5f16JIq2v4flvYCqaAB9tMtJt/y5efR2OO5Xy+w4/MBMeQ1WeGR0T8BtiNgmxM/OQzPFUKb5DTex9Y8a/yk+g==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"mobx-react": {
|
||||||
|
"version": "6.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/mobx-react/-/mobx-react-6.3.1.tgz",
|
||||||
|
"integrity": "sha512-IOxdJGnRSNSJrL2uGpWO5w9JH5q5HoxEqwOF4gye1gmZYdjoYkkMzSGMDnRCUpN/BNzZcFoMdHXrjvkwO7KgaQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"mobx-react-lite": "^2.2.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mobx-react-lite": {
|
||||||
|
"version": "2.2.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-2.2.2.tgz",
|
||||||
|
"integrity": "sha512-2SlXALHIkyUPDsV4VTKVR9DW7K3Ksh1aaIv3NrNJygTbhXe2A9GrcKHZ2ovIiOp/BXilOcTYemfHHZubP431dg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"move-concurrently": {
|
"move-concurrently": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
|
||||||
|
|||||||
@ -13,11 +13,12 @@
|
|||||||
"dev": "webpack --watch",
|
"dev": "webpack --watch",
|
||||||
"test": "jest --passWithNoTests --env=jsdom src $@"
|
"test": "jest --passWithNoTests --env=jsdom src $@"
|
||||||
},
|
},
|
||||||
"dependencies": {},
|
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@k8slens/extensions": "file:../../src/extensions/npm/extensions",
|
"@k8slens/extensions": "file:../../src/extensions/npm/extensions",
|
||||||
"got": "^11.8.1",
|
"got": "^11.8.1",
|
||||||
"jest": "^26.6.3",
|
"jest": "^26.6.3",
|
||||||
|
"mobx": "^6.2.0",
|
||||||
|
"mobx-react": "^6.2.2",
|
||||||
"node-machine-id": "^1.1.12",
|
"node-machine-id": "^1.1.12",
|
||||||
"react": "^16.13.1",
|
"react": "^16.13.1",
|
||||||
"refiner-js": "^1.0.1",
|
"refiner-js": "^1.0.1",
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { Store } from "@k8slens/extensions";
|
import { Store } from "@k8slens/extensions";
|
||||||
import { observable, toJS, when, makeObservable } from "mobx";
|
import { observable, toJS, when } from "mobx";
|
||||||
|
|
||||||
export type SurveyPreferencesModel = {
|
export type SurveyPreferencesModel = {
|
||||||
enabled: boolean;
|
enabled: boolean;
|
||||||
@ -18,7 +18,6 @@ export class SurveyPreferencesStore extends Store.ExtensionStore<SurveyPreferenc
|
|||||||
enabled: true
|
enabled: true
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
makeObservable(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected fromStore({ enabled }: SurveyPreferencesModel): void {
|
protected fromStore({ enabled }: SurveyPreferencesModel): void {
|
||||||
|
|||||||
@ -19,7 +19,6 @@ module.exports = [
|
|||||||
{
|
{
|
||||||
"@k8slens/extensions": "var global.LensExtensions",
|
"@k8slens/extensions": "var global.LensExtensions",
|
||||||
"react": "var global.React",
|
"react": "var global.React",
|
||||||
"mobx": "var global.Mobx"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
resolve: {
|
resolve: {
|
||||||
@ -50,8 +49,6 @@ module.exports = [
|
|||||||
{
|
{
|
||||||
"@k8slens/extensions": "var global.LensExtensions",
|
"@k8slens/extensions": "var global.LensExtensions",
|
||||||
"react": "var global.React",
|
"react": "var global.React",
|
||||||
"mobx": "var global.Mobx",
|
|
||||||
"mobx-react": "var global.MobxReact"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
resolve: {
|
resolve: {
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { Store } from "@k8slens/extensions";
|
import { Store } from "@k8slens/extensions";
|
||||||
import { observable, toJS, makeObservable } from "mobx";
|
import { observable, toJS } from "mobx";
|
||||||
|
|
||||||
export type TelemetryPreferencesModel = {
|
export type TelemetryPreferencesModel = {
|
||||||
enabled: boolean;
|
enabled: boolean;
|
||||||
@ -16,7 +16,6 @@ export class TelemetryPreferencesStore extends Store.ExtensionStore<TelemetryPre
|
|||||||
enabled: true
|
enabled: true
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
makeObservable(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected fromStore({ enabled }: TelemetryPreferencesModel): void {
|
protected fromStore({ enabled }: TelemetryPreferencesModel): void {
|
||||||
|
|||||||
@ -19,7 +19,6 @@ module.exports = [
|
|||||||
{
|
{
|
||||||
"@k8slens/extensions": "var global.LensExtensions",
|
"@k8slens/extensions": "var global.LensExtensions",
|
||||||
"react": "var global.React",
|
"react": "var global.React",
|
||||||
"mobx": "var global.Mobx"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
resolve: {
|
resolve: {
|
||||||
@ -50,8 +49,6 @@ module.exports = [
|
|||||||
{
|
{
|
||||||
"@k8slens/extensions": "var global.LensExtensions",
|
"@k8slens/extensions": "var global.LensExtensions",
|
||||||
"react": "var global.React",
|
"react": "var global.React",
|
||||||
"mobx": "var global.Mobx",
|
|
||||||
"mobx-react": "var global.MobxReact"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
resolve: {
|
resolve: {
|
||||||
|
|||||||
@ -5,10 +5,10 @@ import { enableMapSet, setAutoFreeze } from "immer";
|
|||||||
|
|
||||||
// Mobx
|
// Mobx
|
||||||
configure({
|
configure({
|
||||||
isolateGlobalState: true, // might allow to use different versions of mobx in extensions
|
isolateGlobalState: true, // allow to use different versions of mobx in app & extensions
|
||||||
enforceActions: "never", // skip usage of @action for class methods
|
enforceActions: "never", // skip usage of @action for class methods
|
||||||
});
|
});
|
||||||
|
|
||||||
// Immer
|
// Immer
|
||||||
setAutoFreeze(false); // allow to merge observables
|
setAutoFreeze(false); // allow to merge observables
|
||||||
enableMapSet(); // allow merging maps and sets
|
enableMapSet(); // allow to merge Map() and Set()
|
||||||
|
|||||||
@ -2,7 +2,6 @@
|
|||||||
import type { IconProps } from "../../renderer/components/icon";
|
import type { IconProps } from "../../renderer/components/icon";
|
||||||
import type React from "react";
|
import type React from "react";
|
||||||
import type { PageTarget, RegisteredPage } from "./page-registry";
|
import type { PageTarget, RegisteredPage } from "./page-registry";
|
||||||
import { action, makeObservable } from "mobx";
|
|
||||||
import { BaseRegistry } from "./base-registry";
|
import { BaseRegistry } from "./base-registry";
|
||||||
import { LensExtension } from "../lens-extension";
|
import { LensExtension } from "../lens-extension";
|
||||||
|
|
||||||
@ -22,12 +21,6 @@ export interface PageMenuComponents {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class PageMenuRegistry<T extends PageMenuRegistration> extends BaseRegistry<T> {
|
export class PageMenuRegistry<T extends PageMenuRegistration> extends BaseRegistry<T> {
|
||||||
constructor() {
|
|
||||||
super();
|
|
||||||
|
|
||||||
makeObservable(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
add(items: T[], ext: LensExtension) {
|
add(items: T[], ext: LensExtension) {
|
||||||
const normalizedItems = items.map(menuItem => {
|
const normalizedItems = items.map(menuItem => {
|
||||||
menuItem.target = {
|
menuItem.target = {
|
||||||
|
|||||||
@ -3,7 +3,6 @@
|
|||||||
import "../common/system-ca";
|
import "../common/system-ca";
|
||||||
import "../common/libs-config";
|
import "../common/libs-config";
|
||||||
import "../common/prometheus-providers";
|
import "../common/prometheus-providers";
|
||||||
import * as Mobx from "mobx";
|
|
||||||
import * as LensExtensions from "../extensions/core-api";
|
import * as LensExtensions from "../extensions/core-api";
|
||||||
import { app, autoUpdater, ipcMain, dialog, powerMonitor } from "electron";
|
import { app, autoUpdater, ipcMain, dialog, powerMonitor } from "electron";
|
||||||
import { appName, isMac } from "../common/vars";
|
import { appName, isMac } from "../common/vars";
|
||||||
@ -254,6 +253,5 @@ export const LensExtensionsApi = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export {
|
export {
|
||||||
Mobx,
|
|
||||||
LensExtensionsApi as LensExtensions,
|
LensExtensionsApi as LensExtensions,
|
||||||
};
|
};
|
||||||
|
|||||||
@ -139,7 +139,7 @@ export class Router {
|
|||||||
res.end();
|
res.end();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (retryCount > 5) {
|
if (retryCount > 5) {
|
||||||
logger.error("handleStaticFile:", err.toString());
|
logger.error("handleStaticFile:", err);
|
||||||
res.statusCode = 404;
|
res.statusCode = 404;
|
||||||
res.end();
|
res.end();
|
||||||
|
|
||||||
|
|||||||
@ -1,16 +1,14 @@
|
|||||||
import "./components/app.scss";
|
import "./components/app.scss";
|
||||||
import "../common/libs-config";
|
import "../common/libs-config";
|
||||||
import React from "react";
|
import * as React from "react";
|
||||||
import * as Mobx from "mobx";
|
|
||||||
import * as MobxReact from "mobx-react";
|
|
||||||
import * as ReactRouter from "react-router";
|
import * as ReactRouter from "react-router";
|
||||||
import * as ReactRouterDom from "react-router-dom";
|
import * as ReactRouterDom from "react-router-dom";
|
||||||
|
import * as LensExtensions from "../extensions/extension-api";
|
||||||
import { render, unmountComponentAtNode } from "react-dom";
|
import { render, unmountComponentAtNode } from "react-dom";
|
||||||
import { clusterStore } from "../common/cluster-store";
|
import { clusterStore } from "../common/cluster-store";
|
||||||
import { userStore } from "../common/user-store";
|
import { userStore } from "../common/user-store";
|
||||||
import { delay } from "../common/utils";
|
import { delay } from "../common/utils";
|
||||||
import { isMac, isDevelopment } from "../common/vars";
|
import { isDevelopment, isMac } from "../common/vars";
|
||||||
import * as LensExtensions from "../extensions/extension-api";
|
|
||||||
import { extensionDiscovery } from "../extensions/extension-discovery";
|
import { extensionDiscovery } from "../extensions/extension-discovery";
|
||||||
import { extensionLoader } from "../extensions/extension-loader";
|
import { extensionLoader } from "../extensions/extension-loader";
|
||||||
import { extensionsStore } from "../extensions/extensions-store";
|
import { extensionsStore } from "../extensions/extensions-store";
|
||||||
@ -39,8 +37,6 @@ export {
|
|||||||
React,
|
React,
|
||||||
ReactRouter,
|
ReactRouter,
|
||||||
ReactRouterDom,
|
ReactRouterDom,
|
||||||
Mobx,
|
|
||||||
MobxReact,
|
|
||||||
LensExtensions
|
LensExtensions
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -79,8 +75,8 @@ export async function bootstrap(App: AppComponent) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
render(<>
|
render(<>
|
||||||
{isMac && <div id="draggable-top" />}
|
{isMac && <div id="draggable-top"/>}
|
||||||
<App />
|
<App/>
|
||||||
</>, rootElem);
|
</>, rootElem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user