From 95794af5b288c243ab7e5812d347876075c831dc Mon Sep 17 00:00:00 2001 From: Roman Date: Mon, 19 Apr 2021 18:15:48 +0300 Subject: [PATCH] migration additions -- part 2 Signed-off-by: Roman --- src/common/libs-config.ts | 13 +++++++++++++ src/jest.setup.ts | 2 ++ src/main/index.ts | 1 + src/renderer/bootstrap.tsx | 2 +- src/renderer/utils/storageHelper.ts | 5 +---- 5 files changed, 18 insertions(+), 5 deletions(-) create mode 100644 src/common/libs-config.ts diff --git a/src/common/libs-config.ts b/src/common/libs-config.ts new file mode 100644 index 0000000000..d0d304721e --- /dev/null +++ b/src/common/libs-config.ts @@ -0,0 +1,13 @@ +// Global configuration setup for external packages. +// Should be imported at the top of app's entry points. +import { configure } from "mobx"; +import { enableMapSet, setAutoFreeze } from "immer"; + +// Mobx +configure({ + enforceActions: "never", // allows to skip using @action when class-method updates some state +}); + +// Immer +setAutoFreeze(false); // allow to merge observables +enableMapSet(); // allow merging maps and sets diff --git a/src/jest.setup.ts b/src/jest.setup.ts index d8c6ce9161..833e2b8bbd 100644 --- a/src/jest.setup.ts +++ b/src/jest.setup.ts @@ -1,4 +1,6 @@ +import "./common/libs-config"; import fetchMock from "jest-fetch-mock"; + // rewire global.fetch to call 'fetchMock' fetchMock.enableMocks(); diff --git a/src/main/index.ts b/src/main/index.ts index 2ba462ce0c..652b28338c 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -1,6 +1,7 @@ // Main process import "../common/system-ca"; +import "../common/libs-config" import "../common/prometheus-providers"; import * as Mobx from "mobx"; import * as LensExtensions from "../extensions/core-api"; diff --git a/src/renderer/bootstrap.tsx b/src/renderer/bootstrap.tsx index c9ef607871..3bb853678f 100644 --- a/src/renderer/bootstrap.tsx +++ b/src/renderer/bootstrap.tsx @@ -1,5 +1,5 @@ import "./components/app.scss"; - +import "../common/libs-config"; import React from "react"; import * as Mobx from "mobx"; import * as MobxReact from "mobx-react"; diff --git a/src/renderer/utils/storageHelper.ts b/src/renderer/utils/storageHelper.ts index 98df93814e..7b284edce0 100755 --- a/src/renderer/utils/storageHelper.ts +++ b/src/renderer/utils/storageHelper.ts @@ -1,13 +1,10 @@ // Helper for working with storages (e.g. window.localStorage, NodeJS/file-system, etc.) import { action, comparer, CreateObservableOptions, IObservableValue, observable, reaction, toJS, when } from "mobx"; -import produce, { Draft, enableMapSet, setAutoFreeze } from "immer"; +import produce, { Draft } from "immer"; import { isEqual, isFunction, isPlainObject, merge } from "lodash"; import logger from "../../main/logger"; -setAutoFreeze(false); // allow to merge observables -enableMapSet(); // allow merging maps and sets - export interface StorageAdapter { [metadata: string]: any; getItem(key: string): T | Promise;