|
1 | 1 | import path from "node:path";
|
2 | 2 | import fs from "node:fs/promises";
|
3 |
| - |
4 |
| -const __dirname = import.meta.dirname || path.dirname((await import("node:url")).fileURLToPath(import.meta.url)); |
5 |
| -export const projectRoot: string = !process["resourcesPath"] ? path.resolve(__dirname, "..") : process["resourcesPath"]; |
| 3 | +const __dirname = import.meta.dirname || path.dirname((await import("node:url")).fileURLToPath(import.meta.url)); // Solve current __dirname in ESM module |
| 4 | +export const projectRoot = path.resolve(__dirname, ".."); |
| 5 | +if (__dirname.includes(".asar")) { |
| 6 | + console.warn("Check if addon nothing includes in .asar file") |
| 7 | +} |
6 | 8 |
|
7 | 9 | declare global {
|
8 | 10 | namespace NodeJS {
|
@@ -43,11 +45,11 @@ export async function LoadAddon<T = any>(addonFile: string, exports?: Record<st
|
43 | 45 | let _addonFile: string = null
|
44 | 46 | if (await exists(addonFile)) _addonFile = addonFile;
|
45 | 47 | else if (await exists(path.resolve(projectRoot, addonFile))) _addonFile = path.resolve(projectRoot, addonFile)
|
46 |
| - else if (await exists(path.resolve(projectRoot, addonFile+".node"))) _addonFile = path.resolve(projectRoot, addonFile+".node") |
47 |
| - else if (await exists(path.resolve(projectRoot, "build/Release", addonFile))) _addonFile = path.resolve(projectRoot, "build/Release", addonFile) |
48 |
| - else if (await exists(path.resolve(projectRoot, "build/Release", addonFile+".node"))) _addonFile = path.resolve(projectRoot, "build/Release", addonFile+".node") |
49 |
| - else if (await exists(path.resolve(projectRoot, "build/Debug", addonFile))) _addonFile = path.resolve(projectRoot, "build/Debug", addonFile) |
50 |
| - else if (await exists(path.resolve(projectRoot, "build/Debug", addonFile+".node"))) _addonFile = path.resolve(projectRoot, "build/Debug", addonFile+".node") |
| 48 | + else if (await exists(path.resolve(projectRoot, addonFile+".node"))) _addonFile = path.resolve(projectRoot, addonFile+".node") |
| 49 | + else if (await exists(path.resolve(projectRoot, "build/Release", addonFile))) _addonFile = path.resolve(projectRoot, "build/Release", addonFile) |
| 50 | + else if (await exists(path.resolve(projectRoot, "build/Release", addonFile+".node"))) _addonFile = path.resolve(projectRoot, "build/Release", addonFile+".node") |
| 51 | + else if (await exists(path.resolve(projectRoot, "build/Debug", addonFile))) _addonFile = path.resolve(projectRoot, "build/Debug", addonFile) |
| 52 | + else if (await exists(path.resolve(projectRoot, "build/Debug", addonFile+".node"))) _addonFile = path.resolve(projectRoot, "build/Debug", addonFile+".node") |
51 | 53 | if (!_addonFile) throw new Error("Cannot load required addon")
|
52 | 54 | let ext: NodeJS.Moduledlopen = {exports: Object.assign({}, exports)}
|
53 | 55 | process.dlopen(ext, _addonFile)
|
|
0 commit comments