mirror of
https://github.com/ivabus/gui
synced 2025-04-23 14:07:14 +03:00
Error to sentry (#499)
* send error to sentry --------- Co-authored-by: neil molina <neil@neils-MacBook-Pro.local>
This commit is contained in:
parent
28c1142872
commit
45828b3f40
22 changed files with 108 additions and 21 deletions
|
@ -4,7 +4,7 @@ import { setupTitlebar, attachTitlebarToWindow } from "custom-electron-titlebar/
|
|||
import * as Sentry from "@sentry/electron";
|
||||
import contextMenu from "electron-context-menu";
|
||||
import serve from "electron-serve";
|
||||
import * as log from "electron-log";
|
||||
import log, { setSentryLogging } from "./libs/logger";
|
||||
import path from "path";
|
||||
import { nameToSlug } from "./libs/package";
|
||||
import { checkUpdater } from "./libs/auto-updater";
|
||||
|
@ -26,11 +26,11 @@ if (app.isPackaged) {
|
|||
maxQueueCount: 30,
|
||||
beforeSend: async () => {
|
||||
const ol = await net.isOnline();
|
||||
log.log("isOnline", ol);
|
||||
return ol ? "send" : "queue";
|
||||
}
|
||||
}
|
||||
});
|
||||
setSentryLogging(Sentry);
|
||||
}
|
||||
|
||||
init();
|
||||
|
|
|
@ -3,7 +3,7 @@ import path from "path";
|
|||
import fs from "fs";
|
||||
import { getTeaPath } from "./tea-dir";
|
||||
import { app } from "electron";
|
||||
import * as log from "electron-log";
|
||||
import log from "./logger";
|
||||
import axios from "axios";
|
||||
|
||||
const sessionFilePath = path.join(getTeaPath(), "tea.xyz/gui/tmp.dat");
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { type AppUpdater, autoUpdater } from "electron-updater";
|
||||
import * as log from "electron-log";
|
||||
import log from "./logger";
|
||||
import { BrowserWindow } from "electron";
|
||||
|
||||
type AutoUpdateStatus = {
|
||||
|
|
|
@ -5,7 +5,7 @@ import path from "path";
|
|||
import initializeTeaCli from "./initialize";
|
||||
|
||||
import { app } from "electron";
|
||||
import * as log from "electron-log";
|
||||
import log from "./logger";
|
||||
import { MainWindowNotifier } from "./types";
|
||||
|
||||
const destinationDirectory = getGuiPath();
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import fs from "fs";
|
||||
import { getGuiPath } from "./tea-dir";
|
||||
import * as log from "electron-log";
|
||||
import log from "./logger";
|
||||
import semver from "semver";
|
||||
import { cliBinPath, asyncExec } from "./cli";
|
||||
import { createInitialSessionFile } from "./auth";
|
||||
|
|
|
@ -2,7 +2,7 @@ import { ipcMain, app, BrowserWindow } from "electron";
|
|||
import { deletePackageFolder, getInstalledPackages, cacheImage } from "./tea-dir";
|
||||
import { readSessionData, writeSessionData } from "./auth";
|
||||
import type { Packages, Session } from "../../src/libs/types";
|
||||
import * as log from "electron-log";
|
||||
import log from "./logger";
|
||||
import { syncLogsAt } from "./v1-client";
|
||||
import { installPackage, openTerminal, syncPantry } from "./cli";
|
||||
|
||||
|
|
13
modules/desktop/electron/libs/logger.ts
Normal file
13
modules/desktop/electron/libs/logger.ts
Normal file
|
@ -0,0 +1,13 @@
|
|||
import log from "electron-log";
|
||||
|
||||
export const setSentryLogging = (sentry: any) => {
|
||||
const oldError = log.error;
|
||||
|
||||
log.error = (...params: any[]) => {
|
||||
oldError(params);
|
||||
sentry.captureException(params[0].message);
|
||||
};
|
||||
};
|
||||
|
||||
// Export the log object to use it throughout the app
|
||||
export default log;
|
|
@ -1,7 +1,7 @@
|
|||
import path from "path";
|
||||
import { mkdirp } from "mkdirp";
|
||||
import fs from "fs";
|
||||
import * as log from "electron-log";
|
||||
import log from "./logger";
|
||||
import { getTeaPath } from "./tea-dir";
|
||||
import { Packages } from "../../src/libs/types";
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import Pushy from "pushy-electron";
|
||||
import { readSessionData } from "./auth";
|
||||
import { post } from "./v1-client";
|
||||
import * as log from "electron-log";
|
||||
import log from "./logger";
|
||||
import { Notification, BrowserWindow } from "electron";
|
||||
import { nameToSlug } from "./package";
|
||||
import {
|
||||
|
|
|
@ -3,7 +3,7 @@ import fs from "fs";
|
|||
import path from "path";
|
||||
import { app } from "electron";
|
||||
import semver, { SemVer } from "semver";
|
||||
import * as log from "electron-log";
|
||||
import log from "./logger";
|
||||
import type { InstalledPackage } from "../../src/libs/types";
|
||||
import semverCompare from "semver/functions/compare";
|
||||
import { mkdirp } from "mkdirp";
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { app } from "electron";
|
||||
import axios from "axios";
|
||||
import path from "path";
|
||||
import * as log from "electron-log";
|
||||
import log from "./logger";
|
||||
import bcrypt from "bcryptjs";
|
||||
import { createReadStream, statSync } from "fs";
|
||||
import { deepReadDir } from "./tea-dir";
|
||||
|
|
|
@ -75,6 +75,7 @@
|
|||
"dependencies": {
|
||||
"@crowdin/ota-client": "^0.7.0",
|
||||
"@electron/asar": "^3.2.3",
|
||||
"@sentry/browser": "^7.49.0",
|
||||
"@sentry/electron": "^4.4.0",
|
||||
"@sentry/svelte": "^7.47.0",
|
||||
"@types/electron": "^1.6.10",
|
||||
|
|
10
modules/desktop/src/libs/logger.ts
Normal file
10
modules/desktop/src/libs/logger.ts
Normal file
|
@ -0,0 +1,10 @@
|
|||
const log = window ? window.require("electron-log") : console;
|
||||
import { captureException } from "./sentry";
|
||||
|
||||
// TODO: figure out how to detect if pkaged
|
||||
const oldError = log.error;
|
||||
log.error = (...params: any[]) => {
|
||||
oldError(params);
|
||||
captureException(params[0].message);
|
||||
};
|
||||
export default log;
|
|
@ -27,8 +27,7 @@ import { PackageStates, type InstalledPackage } from "./types";
|
|||
import { get as apiGet } from "$libs/v1-client";
|
||||
import axios from "axios";
|
||||
import withRetry from "./utils/retry";
|
||||
|
||||
const log = window.require("electron-log");
|
||||
import log from "./logger";
|
||||
const { ipcRenderer, shell } = window.require("electron");
|
||||
|
||||
export async function getDistPackages(): Promise<Package[]> {
|
||||
|
|
11
modules/desktop/src/libs/sentry.ts
Normal file
11
modules/desktop/src/libs/sentry.ts
Normal file
|
@ -0,0 +1,11 @@
|
|||
import * as Sentry from "@sentry/browser";
|
||||
|
||||
export function initSentry() {
|
||||
Sentry.init({
|
||||
dsn: "https://5ff29bb5b3b64cd4bd4f4960ef1db2e3@o4504750197899264.ingest.sentry.io/4504750206746624"
|
||||
});
|
||||
}
|
||||
|
||||
export function captureException(exception: any) {
|
||||
Sentry.captureException(exception);
|
||||
}
|
|
@ -1,8 +1,5 @@
|
|||
import { writable } from "svelte/store";
|
||||
import { goto } from "$app/navigation";
|
||||
import { updateSession } from "@native";
|
||||
|
||||
const log = window.require("electron-log");
|
||||
|
||||
export default function initNavStore() {
|
||||
const historyStore = writable<string[]>(["/"]);
|
||||
|
|
|
@ -26,7 +26,7 @@ import { trimGithubSlug } from "$libs/github";
|
|||
import { notificationStore } from "$libs/stores";
|
||||
import withRetry from "$libs/utils/retry";
|
||||
|
||||
const log = window.require("electron-log");
|
||||
import log from "$libs/logger";
|
||||
|
||||
const packageRefreshInterval = 1000 * 60 * 60; // 1 hour
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
const log = window.require("electron-log");
|
||||
import log from "$libs/logger";
|
||||
|
||||
type DebounceableFunc = (...args: any[]) => void;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
const log = window.require("electron-log");
|
||||
import log from "$libs/logger";
|
||||
|
||||
export type RetryOptions = {
|
||||
// Number of times to retry. default 10
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<script lang="ts">
|
||||
import "$appcss";
|
||||
import { goto } from "$app/navigation";
|
||||
import { initSentry } from "$libs/sentry";
|
||||
import { navigating } from "$app/stores";
|
||||
import { afterNavigate } from "$app/navigation";
|
||||
import TopBar from "$components/top-bar/top-bar.svelte";
|
||||
|
@ -49,6 +50,7 @@
|
|||
return false;
|
||||
});
|
||||
packagesStore.init();
|
||||
initSentry();
|
||||
});
|
||||
|
||||
onDestroy(() => {
|
||||
|
|
|
@ -13,8 +13,7 @@
|
|||
import NotificationBar from "$components/notification-bar/notification-bar.svelte";
|
||||
import WelcomeModal from "$components/welcome-modal/welcome-modal.svelte";
|
||||
import Button from "@tea/ui/button/button.svelte";
|
||||
|
||||
const log = window.require("electron-log");
|
||||
import log from "$libs/logger";
|
||||
|
||||
const { packageList } = packagesStore;
|
||||
const { session } = authStore;
|
||||
|
|
|
@ -19,6 +19,7 @@ importers:
|
|||
'@electron/notarize': ^1.2.3
|
||||
'@playwright/experimental-ct-svelte': ^1.29.2
|
||||
'@playwright/test': 1.25.0
|
||||
'@sentry/browser': ^7.49.0
|
||||
'@sentry/electron': ^4.4.0
|
||||
'@sentry/svelte': ^7.47.0
|
||||
'@sveltejs/adapter-auto': ^1.0.0
|
||||
|
@ -92,6 +93,7 @@ importers:
|
|||
dependencies:
|
||||
'@crowdin/ota-client': 0.7.0
|
||||
'@electron/asar': 3.2.3
|
||||
'@sentry/browser': 7.49.0
|
||||
'@sentry/electron': 4.4.0
|
||||
'@sentry/svelte': 7.47.0_svelte@3.55.1
|
||||
'@types/electron': 1.6.10
|
||||
|
@ -2457,6 +2459,16 @@ packages:
|
|||
tslib: 1.14.1
|
||||
dev: false
|
||||
|
||||
/@sentry-internal/tracing/7.49.0:
|
||||
resolution: {integrity: sha512-ESh3+ZneQk/3HESTUmIPNrW5GVPu/HrRJU+eAJJto74vm+6vP7zDn2YV2gJ1w18O/37nc7W/bVCgZJlhZ3cwew==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
'@sentry/core': 7.49.0
|
||||
'@sentry/types': 7.49.0
|
||||
'@sentry/utils': 7.49.0
|
||||
tslib: 1.14.1
|
||||
dev: false
|
||||
|
||||
/@sentry/browser/7.46.0:
|
||||
resolution: {integrity: sha512-4rX9hKPjxzfH5LhZzO5DlS5NXQ8qZg2ibepaqEgcDHrpYh5813mjjnE4OQA8wiZ6WuG3xKFgHBrGeliD5jXz9w==}
|
||||
engines: {node: '>=8'}
|
||||
|
@ -2481,6 +2493,18 @@ packages:
|
|||
tslib: 1.14.1
|
||||
dev: false
|
||||
|
||||
/@sentry/browser/7.49.0:
|
||||
resolution: {integrity: sha512-x2DekKkQoY7/dhBzE4J25mdQ978NtPBTVQb+uZqlF/t5mp4K44TAszmPqy8lC/CmVHkp7qcpRGSCIzeboUL4KA==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
'@sentry-internal/tracing': 7.49.0
|
||||
'@sentry/core': 7.49.0
|
||||
'@sentry/replay': 7.49.0
|
||||
'@sentry/types': 7.49.0
|
||||
'@sentry/utils': 7.49.0
|
||||
tslib: 1.14.1
|
||||
dev: false
|
||||
|
||||
/@sentry/core/7.46.0:
|
||||
resolution: {integrity: sha512-BnNHGh/ZTztqQedFko7vb2u6yLs/kWesOQNivav32ZbsEpVCjcmG1gOJXh2YmGIvj3jXOC9a4xfIuh+lYFcA6A==}
|
||||
engines: {node: '>=8'}
|
||||
|
@ -2499,6 +2523,15 @@ packages:
|
|||
tslib: 1.14.1
|
||||
dev: false
|
||||
|
||||
/@sentry/core/7.49.0:
|
||||
resolution: {integrity: sha512-AlSnCYgfEbvK8pkNluUkmdW/cD9UpvOVCa+ERQswXNRkAv5aDGCL6Ihv6fnIajE++BYuwZh0+HwZUBVKTFzoZg==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
'@sentry/types': 7.49.0
|
||||
'@sentry/utils': 7.49.0
|
||||
tslib: 1.14.1
|
||||
dev: false
|
||||
|
||||
/@sentry/electron/4.4.0:
|
||||
resolution: {integrity: sha512-E6uggv/aujDMImO3JE46MIVrE9uZXWwR5Pm2EWwaqVYEY4+twnH4pWX/NG0PheGKSW1177FjPkcvEyCwq0pElg==}
|
||||
dependencies:
|
||||
|
@ -2547,6 +2580,15 @@ packages:
|
|||
'@sentry/utils': 7.47.0
|
||||
dev: false
|
||||
|
||||
/@sentry/replay/7.49.0:
|
||||
resolution: {integrity: sha512-UY3bHoBDPOu4Dpq3m3oxNjLrq09NiFVYUfrTN4QOq1Am2SA04XbuCj/YZ+jNVy/NrFtoz9cTovK6oQbNw53jog==}
|
||||
engines: {node: '>=12'}
|
||||
dependencies:
|
||||
'@sentry/core': 7.49.0
|
||||
'@sentry/types': 7.49.0
|
||||
'@sentry/utils': 7.49.0
|
||||
dev: false
|
||||
|
||||
/@sentry/svelte/7.47.0_svelte@3.55.1:
|
||||
resolution: {integrity: sha512-oxuefbpCs+aVAyLIDZM2jyayJzSnCo39/MI800442uS+sOR0MXq/OKcfbiqytwbjX4zvsj4m+E0/pL9rY1yOMw==}
|
||||
engines: {node: '>=8'}
|
||||
|
@ -2571,6 +2613,11 @@ packages:
|
|||
engines: {node: '>=8'}
|
||||
dev: false
|
||||
|
||||
/@sentry/types/7.49.0:
|
||||
resolution: {integrity: sha512-9yXXh7iv76+O6h2ONUVx0wsL1auqJFWez62mTjWk4350SgMmWp/zUkBxnVXhmcYqscz/CepC+Loz9vITLXtgxg==}
|
||||
engines: {node: '>=8'}
|
||||
dev: false
|
||||
|
||||
/@sentry/utils/7.46.0:
|
||||
resolution: {integrity: sha512-elRezDAF84guMG0OVIIZEWm6wUpgbda4HGks98CFnPsrnMm3N1bdBI9XdlxYLtf+ir5KsGR5YlEIf/a0kRUwAQ==}
|
||||
engines: {node: '>=8'}
|
||||
|
@ -2587,6 +2634,14 @@ packages:
|
|||
tslib: 1.14.1
|
||||
dev: false
|
||||
|
||||
/@sentry/utils/7.49.0:
|
||||
resolution: {integrity: sha512-JdC9yGnOgev4ISJVwmIoFsk8Zx0psDZJAj2DV7x4wMZsO6QK+YjC7G3mUED/S5D5lsrkBZ/3uvQQhr8DQI4UcQ==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
'@sentry/types': 7.49.0
|
||||
tslib: 1.14.1
|
||||
dev: false
|
||||
|
||||
/@sinclair/typebox/0.24.51:
|
||||
resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==}
|
||||
dev: true
|
||||
|
|
Loading…
Reference in a new issue