diff --git a/package.json b/package.json index cf05718..0e694e2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron-log", - "version": "5.0.4", + "version": "5.0.5-beta.2", "description": "Just a simple logging module for your Electron application", "main": "src/index.js", "browser": "src/renderer/index.js", diff --git a/src/main/electronApi.js b/src/main/electronApi.js index 0e5978d..c8adf60 100644 --- a/src/main/electronApi.js +++ b/src/main/electronApi.js @@ -1,17 +1,11 @@ 'use strict'; +require('./electronApiLoader'); + +const electron = require('electron'); const os = require('os'); const path = require('path'); -/** @type {Electron.Main} */ -let electron; -try { - // eslint-disable-next-line global-require,import/no-extraneous-dependencies - electron = require('electron'); -} catch { - electron = null; -} - module.exports = { getAppUserDataPath() { return getPath('userData'); @@ -231,3 +225,7 @@ function sendIpcToRenderer(channel, message) { } }); } + +function loadElectron() { + +} diff --git a/src/main/electronApiLoader.js b/src/main/electronApiLoader.js new file mode 100644 index 0000000..a0f2198 --- /dev/null +++ b/src/main/electronApiLoader.js @@ -0,0 +1,23 @@ +'use strict'; + +// This is a workaround for node.js environment when Electron dependency isn't +// installed. + +let electronIsAvailable = false; + +try { + // eslint-disable-next-line global-require + require('electron'); + electronIsAvailable = true; +} catch { + // No Electron installed +} + +if (!electronIsAvailable) { + try { + require.cache.electron = { exports: {} }; + } catch { + // Looks like there is no other way to provide support for node.js app + // without Electron installed. + } +} diff --git a/src/main/transports/file/packageJson.js b/src/main/transports/file/packageJson.js index 89bbced..bdec616 100644 --- a/src/main/transports/file/packageJson.js +++ b/src/main/transports/file/packageJson.js @@ -98,9 +98,10 @@ function extractPathFromArgs() { } function getMainModulePath() { - if (typeof require === 'function') { + try { + // Requires isn't available in ESM return require.main?.filename; + } catch { + return undefined; } - - return undefined; }