From 29bd34f30db7987db230e30d58a1e711f8882c4c Mon Sep 17 00:00:00 2001 From: Bobby Galli Date: Mon, 21 Oct 2024 14:57:18 -0400 Subject: [PATCH] chore: fix build issues --- package-lock.json | 1 + src/main.ts | 50 ++++++++++++++++++++++++++--------------------- tsconfig.json | 2 +- 3 files changed, 30 insertions(+), 23 deletions(-) diff --git a/package-lock.json b/package-lock.json index 50c3aae..02154be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "license": "CC0-1.0", "dependencies": { "bugsplat-node": "^3.0.2", + "dotenv": "^16.4.5", "node-addon-api": "^3.2.1" }, "devDependencies": { diff --git a/src/main.ts b/src/main.ts index 97319d4..9f07ce3 100644 --- a/src/main.ts +++ b/src/main.ts @@ -3,7 +3,13 @@ import * as path from "path"; import { unhandledRejection } from "./crasher"; const { database, name, version } = require("../../package.json"); -const { add } = require('../addon.node'); + +let add: (a: number, b: number) => number; +try { + add = require("../addon.node"); +} catch (e) { + console.warn("Failed to load addon.node, please run `npm run build:cpp`"); +} // Required: Handle native crashes in Electron and native add-ins crashReporter.start({ @@ -12,32 +18,32 @@ crashReporter.start({ uploadToServer: true, rateLimit: false, globalExtra: { - "product": name, - "version": version, - "key": "en-US", - "email": "fred@bugsplat.com", - "comments": "BugSplat rocks!", - } -}) + product: name, + version: version, + key: "en-US", + email: "fred@bugsplat.com", + comments: "BugSplat rocks!", + }, +}); // Recommended: Initialize BugSplat with database name, app name, and version to catch JavaScript errors -import { BugSplatNode as BugSplat } from "bugsplat-node" -const bugsplat = new BugSplat(database, name, version) +import { BugSplatNode as BugSplat } from "bugsplat-node"; +const bugsplat = new BugSplat(database, name, version); // Recommended: The following methods allow further customization -bugsplat.setDefaultAppKey("main") -bugsplat.setDefaultUser("Fred") -bugsplat.setDefaultEmail("fred@bedrock.com") -bugsplat.setDefaultDescription("description") -bugsplat.setDefaultAdditionalFilePaths(["./src/assets/attachment.txt"]) +bugsplat.setDefaultAppKey("main"); +bugsplat.setDefaultUser("Fred"); +bugsplat.setDefaultEmail("fred@bedrock.com"); +bugsplat.setDefaultDescription("description"); +bugsplat.setDefaultAdditionalFilePaths(["./src/assets/attachment.txt"]); // Recommended: Post to BugSplat when unhandledRejections and uncaughtExceptions occur const javaScriptErrorHandler = async (error: Error) => { await bugsplat.post(error); app.quit(); -} -process.on("unhandledRejection", javaScriptErrorHandler) -process.on("uncaughtException", javaScriptErrorHandler) +}; +process.on("unhandledRejection", javaScriptErrorHandler); +process.on("uncaughtException", javaScriptErrorHandler); // Optional: Uncomment to send an Error to BugSplat manually //bugsplat.post(new Error("foobar!")).then(({ error, response, original }) => console.log(error, response, original)) @@ -58,7 +64,7 @@ function createWindow() { mainWindow.loadFile(path.join(__dirname, "../../index.html")); // Maximize the window so the buttons aren't hidden - mainWindow.maximize() + mainWindow.maximize(); // Open the DevTools. mainWindow.webContents.openDevTools(); @@ -99,7 +105,7 @@ ipcMain.on("trigger:addon-main-crash", function () { console.log("add = ", add(7, 3)); }); -ipcMain.on('open-external-url-event', (event, url) => { - event.returnValue = 'Message received!' +ipcMain.on("open-external-url-event", (event, url) => { + event.returnValue = "Message received!"; shell.openExternal(url); -}) \ No newline at end of file +}); diff --git a/tsconfig.json b/tsconfig.json index 06b29f8..e2214e3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,7 +4,7 @@ "noImplicitAny": true, "resolveJsonModule": true, "sourceMap": true, - "outDir": "dist", + "outDir": "dist/src", "baseUrl": ".", "paths": { "*": ["node_modules/*"]