Skip to content

Commit

Permalink
fix: Run app.setAppPath() with the right path (#78)
Browse files Browse the repository at this point in the history
* Fix: Run app.setAppPath() with the right path

* Implement feedback <3

* test: Add linting
  • Loading branch information
felixrieseberg authored Sep 6, 2023
1 parent 381ca1a commit 9a808be
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 7 deletions.
23 changes: 21 additions & 2 deletions entry-asar/has-asar.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,26 @@
const path = require('path');

if (process.arch === 'arm64') {
process._archPath = require.resolve('../app-arm64.asar');
setPaths('arm64');
} else {
process._archPath = require.resolve('../app-x64.asar');
setPaths('x64');
}

function setPaths(platform) {
// This should return the full path, ending in something like
// Notion.app/Contents/Resources/app.asar
const appPath = app.getAppPath();
const asarFile = `app-${platform}.asar`;

// Maybe we'll handle this in Electron one day
if (path.basename(appPath) === 'app.asar') {
const platformAppPath = path.join(path.dirname(appPath), asarFile);

// This is an undocumented API. It exists.
app.setAppPath(platformAppPath);
}

process._archPath = require.resolve(`../${asarFile}`);
}

require(process._archPath);
21 changes: 19 additions & 2 deletions entry-asar/no-asar.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,24 @@
if (process.arch === 'arm64') {
process._archPath = require.resolve('../app-arm64');
setPaths('arm64');
} else {
process._archPath = require.resolve('../app-x64');
setPaths('x64');
}

function setPaths(platform) {
// This should return the full path, ending in something like
// Notion.app/Contents/Resources/app
const appPath = app.getAppPath();
const appFolder = `app-${platform}`;

// Maybe we'll handle this in Electron one day
if (path.basename(appPath) === 'app') {
const platformAppPath = path.join(path.dirname(appPath), appFolder);

// This is an undocumented private API. It exists.
app.setAppPath(platformAppPath);
}

process._archPath = require.resolve(`../${appFolder}`);
}

require(process._archPath);
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@
"author": "Samuel Attard",
"scripts": {
"build": "tsc && tsc -p tsconfig.esm.json",
"lint": "prettier --check \"src/**/*.ts\"",
"prettier:write": "prettier --write \"src/**/*.ts\"",
"lint": "prettier --check \"{src,entry-asar}/**/*.{js,ts}\"",
"prettier:write": "prettier --write \"{src,entry-asar}/**/*.{js,ts}\"",
"prepublishOnly": "npm run build",
"test": "exit 0",
"prepare": "husky install"
Expand Down Expand Up @@ -57,4 +57,4 @@
"prettier --write"
]
}
}
}

0 comments on commit 9a808be

Please sign in to comment.