From 0276078d1f863426ee1a05de36163e75eff5fb14 Mon Sep 17 00:00:00 2001 From: Janne Savolainen Date: Wed, 27 Apr 2022 11:15:16 +0300 Subject: [PATCH] Reimplement setup for immer using runnables instead of non-OCP in index.ts Co-authored-by: Mikko Aspiala Signed-off-by: Janne Savolainen --- .../implementations/setup-immer.injectable.ts | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/main/start-main-application/before-application-is-ready/implementations/setup-immer.injectable.ts diff --git a/src/main/start-main-application/before-application-is-ready/implementations/setup-immer.injectable.ts b/src/main/start-main-application/before-application-is-ready/implementations/setup-immer.injectable.ts new file mode 100644 index 0000000000..27fb7cb87b --- /dev/null +++ b/src/main/start-main-application/before-application-is-ready/implementations/setup-immer.injectable.ts @@ -0,0 +1,24 @@ +/** + * 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 Immer from "immer"; +import { beforeApplicationIsReadyInjectionToken } from "../before-application-is-ready-injection-token"; + +const setupImmerInjectable = getInjectable({ + id: "setup-immer", + + instantiate: () => ({ + run: () => { + // Docs: https://immerjs.github.io/immer/ + // Required in `utils/storage-helper.ts` + Immer.setAutoFreeze(false); // allow to merge mobx observables + Immer.enableMapSet(); // allow to merge maps and sets + }, + }), + + injectionToken: beforeApplicationIsReadyInjectionToken, +}); + +export default setupImmerInjectable;