diff --git a/src/renderer/lens-app.tsx b/src/renderer/lens-app.tsx index 35151dcee2..e2da03e8f2 100644 --- a/src/renderer/lens-app.tsx +++ b/src/renderer/lens-app.tsx @@ -36,6 +36,25 @@ import { registerIpcHandlers } from "./ipc"; import { ipcRenderer } from "electron"; import { IpcRendererNavigationEvents } from "./navigation/events"; import { catalogEntityRegistry } from "./api/catalog-entity-registry"; +import { dsn } from "../common/vars"; +import { CaptureConsole, Dedupe, Offline } from "@sentry/integrations"; + +// Initializing Sentry +const Sentry = + // prevent `TypeError: mod.require is not a function` + // see https://docs.sentry.io/platforms/javascript/guides/electron/#webpack-configuration + process.type === "main" + ? require("@sentry/electron/dist/main") + : require("@sentry/electron/dist/renderer"); + +Sentry.init({ + dsn, + integrations: [ + new CaptureConsole({ levels: ["error"] }), + new Dedupe(), + new Offline() + ], +}); @observer export class LensApp extends React.Component { diff --git a/webpack.main.ts b/webpack.main.ts index ae78d06d09..b7df6879da 100755 --- a/webpack.main.ts +++ b/webpack.main.ts @@ -20,7 +20,7 @@ */ import path from "path"; -import type webpack from "webpack"; +import webpack from "webpack"; import ForkTsCheckerPlugin from "fork-ts-checker-webpack-plugin"; import { isProduction, mainDir, buildDir, isDevelopment } from "./src/common/vars"; import nodeExternals from "webpack-node-externals"; @@ -62,6 +62,9 @@ export default function (): webpack.Configuration { plugins: [ new ProgressBarPlugin(), new ForkTsCheckerPlugin(), + new webpack.DefinePlugin({ + "process.type": '"main"', + }), ].filter(Boolean) }; } diff --git a/webpack.renderer.ts b/webpack.renderer.ts index 027d18ac08..9d019298be 100755 --- a/webpack.renderer.ts +++ b/webpack.renderer.ts @@ -175,6 +175,10 @@ export function webpackLensRenderer({ showVars = true } = {}): webpack.Configura isDevelopment && new webpack.HotModuleReplacementPlugin(), isDevelopment && new ReactRefreshWebpackPlugin(), + new webpack.DefinePlugin({ + "process.type": '"renderer"', + }), + ].filter(Boolean), }; }