electron/npm/index.js

35 lines
1.3 KiB
JavaScript
Raw Normal View History

2014-10-20 04:56:49 +00:00
var fs = require('fs')
var path = require('path')
2014-11-15 09:21:07 +00:00
2016-12-27 06:26:05 +00:00
var pathFile = path.join(__dirname, 'path.txt')
2016-12-26 23:17:48 +00:00
function getElectronPath () {
if (fs.existsSync(pathFile)) {
var executablePath = fs.readFileSync(pathFile, 'utf-8')
if (process.env.ELECTRON_OVERRIDE_DIST_PATH) {
return path.join(process.env.ELECTRON_OVERRIDE_DIST_PATH, executablePath)
}
return path.join(__dirname, 'dist', executablePath)
} else {
throw new Error('Electron failed to install correctly, please delete node_modules/electron and try installing again')
}
2016-12-26 23:17:48 +00:00
}
// A list of the main modules the people will attempt to use from the Electron API, this is not a complete list but should cover most
// use cases.
var electronModuleNames = ['app', 'autoUpdater', 'BrowserWindow', 'ipcMain', 'Menu', 'net', 'Notification', 'systemPreferences', 'Tray']
var electronPath = new String(getElectronPath())
electronModuleNames.forEach(function warnOnElectronAPIAccess (apiKey) {
Object.defineProperty(electronPath, apiKey, {
enumerable: false,
configurable: false,
get: function getElectronAPI () {
console.warn('WARNING: You are attempting to access an Electron API from a node environment.\n\n' +
'You need to use the "electron" command to run your app. E.g. "npx electron ./myapp.js"')
}
})
})
module.exports = electronPath