How to use electron-util - 10 common examples

To help you get started, we’ve selected a few electron-util examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github ooni / probe-desktop / main / utils / ooni / ooniprobe.js View on Github external
return new Promise((resolve, reject) => {
      try {
        let binPath = self._binaryPath,
          options = {
            stdio: ['pipe', 'pipe', 'pipe'],
            env: {
              'OONI_HOME': getHomeDir(),
            }
          }
        if (is.windows) {
          const isAscii = /^[ -~]+$/
          let homeDir = os.homedir()
          try {
            // This is a workaround for the users home directory containing
            // non-ascii characters.
            // For more context see: https://github.com/nodejs/node/issues/17586
            if (!isAscii.test(homeDir)) {
              // eslint-disable-next-line no-console
              log.info('detected non-ascii characters in homeDir', homeDir)
              const shortHomeDir = GetHomeShortPath()
              options.env['OONI_HOME'] = path.join(shortHomeDir, path.relative(homeDir, options.env.OONI_HOME))
            }
          } catch (err) {
            // eslint-disable-next-line no-console
            console.log('failed to determine the home shortpath. Things will break with user homes which contain non-ascii characters.')
          }
github atomiclabs / hyperdex / app / marketmaker / index.js View on Github external
currency = _.omit(currency, ['electrumServers']);

			// Translate to exepcted mm v2 format
			currency.etomic = currency.contractAddress;
			delete currency.contractAddress;

			return currency;
		});

		options = {
			...options,
			gui: 'hyperdex',
			userhome: os.homedir(),
			netid: 9999, // TODO: Set this to `0` when mm v2 is production ready
			rpcport: port,
			rpccors: is.development ? 'http://localhost:8080' : 'app://-',
			coins,
		};

		this.port = options.rpcport;

		if (options.seedPhrase) {
			// eslint-disable-next-line camelcase
			options.rpc_password = await sha256(options.seedPhrase);
			options.passphrase = options.seedPhrase;
			delete options.seedPhrase;
		} else {
			throw new Error('The `seedPhrase` option is required');
		}

		// NOTE: It's very important that this is a different directory than mm v1, as the database is not compatible
		// TODO: Update the path here when mm v2 is production ready
github atomiclabs / hyperdex / app / menu.js View on Github external
const createHelpMenu = () => {
	const helpSubmenu = [
		{
			label: t('help.debugMode'),
			type: 'checkbox',
			checked: isDevelopment,
			enabled: !isNightlyBuild && !is.development, // Enable it only in production
			click() {
				config.set('isDebugMode', !isDevelopment);
				app.relaunch();
				app.quit();
			},
		},
		{
			type: 'separator',
		},
		openUrlMenuItem({
			label: t('help.website'),
			url: websiteUrl,
		}),
		openUrlMenuItem({
			label: t('help.sourceCode'),
			url: repoUrl,
github timche / gmail-desktop / src / menu.ts View on Github external
)
        }
      },
      {
        label: 'View Logs',
        visible: config.get(ConfigKey.DebugMode),
        click() {
          viewLogs()
        }
      }
    ]
  }
]

// Add the develop menu when running in the development environment
if (is.development) {
  applicationMenu.splice(-1, 0, {
    label: 'Develop',
    submenu: [
      {
        label: 'Clear Cache and Restart',
        click() {
          // Clear app config
          config.clear()
          // Restart without firing quitting events
          app.relaunch()
          app.exit(0)
        }
      }
    ]
  })
}
github atomiclabs / hyperdex / app / renderer / containers / App.js View on Github external
this.setState(prevState => {
			this.api.disableCurrency(coin);
			const enabledCoins = prevState.enabledCoins.filter(enabledCoin => enabledCoin !== coin);
			setCurrencies(prevState.portfolio.id, enabledCoins);

			// TODO: Remove this when https://github.com/artemii235/SuperNET/issues/459 is fixed.
			api.dialog.showMessageBox(activeWindow(), {
				message: 'Marketmaker v2 cannot currently disable currencies when running, so you need to restart HyperDEX for it to take effect.',
			});

			return {enabledCoins};
		}, () => {
			this.events.emit('enabled-currencies-changed');
github sindresorhus / caprine / source / index.ts View on Github external
minHeight: 200,
		alwaysOnTop: config.get('alwaysOnTop'),
		titleBarStyle: 'hiddenInset',
		autoHideMenuBar: config.get('autoHideMenuBar'),
		darkTheme: isDarkMode, // GTK+3
		webPreferences: {
			preload: path.join(__dirname, 'browser.js'),
			contextIsolation: true,
			plugins: true
		}
	});

	setUserLocale();
	initRequestsFiltering();

	darkMode.onChange(() => {
		win.webContents.send('set-dark-mode');
	});

	if (is.macos) {
		win.setSheetOffset(40);
	}

	win.loadURL(mainURL);

	win.on('close', event => {
		if (config.get('quitOnWindowClose')) {
			app.quit();
			return;
		}

		// Workaround for https://github.com/electron/electron/issues/20263
github sindresorhus / electron-timber / index.js View on Github external
const logChannel = '__ELECTRON_TIMBER_LOG__';
const warnChannel = '__ELECTRON_TIMBER_WARN__';
const errorChannel = '__ELECTRON_TIMBER_ERROR__';
const updateChannel = '__ELECTRON_TIMBER_UPDATE__';
const defaultsNameSpace = '__ELECTRON_TIMBER_DEFAULTS__';

const filteredLoggers = process.env.TIMBER_LOGGERS && new Set(process.env.TIMBER_LOGGERS.split(','));
const preloadScript = path.resolve(__dirname, 'preload.js');

const logLevels = {
	info: 0,
	warn: 1,
	error: 2
};

if (is.main) {
	global[defaultsNameSpace] = {
		ignore: null,
		shouldHookConsole: false,
		logLevel: is.development ? logLevels.info : logLevels.warn
	};
}

// Flag to indicate whether the console has been hooked or not
let isConsoleHooked = false;
const _console = {};
const hookableMethods = ['log', 'warn', 'error', 'time', 'timeEnd'];

let longestNameLength = 0;

class Timber {
	constructor(options = {}) {
github dreamnettech / dreamtime / src / electron / src / index.js View on Github external
static async setup() {
    // https://github.com/sindresorhus/electron-util#enforcemacosapplocation-macos
    enforceMacOSAppLocation()

    // application exit.
    app.on('will-quit', async (event) => {
      logger.debug('Exiting...')

      event.preventDefault()

      await this.shutdown()

      app.exit()
    })

    // windows closed, no more to do.
    app.on('window-all-closed', () => {
      app.quit()
    })
github coountdown / coountdown / main / index.js View on Github external
// Constants
let onlineStatusWindow
let twitterLoginWindow
let tray
let isQuit = false
let loggedIn = false
let alreadyGetUser = false
const appLaunchTime = moment()

setupSentry(app)
store.setupNoti()
app.setName(config.APP_NAME)

// Hide dock icon (In production mode, it's setup on package.json. [key: LSUIElement])
if (isDev && electronUtil.is.macos) {
  app.dock.hide()
}

if (firstRun()) {
  app.setLoginItemSettings({ openAtLogin: true })
}

const gotTheLock = app.requestSingleInstanceLock()

if (!gotTheLock) {
  app.quit()
}

// Process Cycle
app.on('ready', async () => {
  // Checking internet connection
github therehq / there-desktop / main / index.js View on Github external
}
setLoggedInStatus()

// Set the application's name
app.setName('There')

// Make There start automatically on login
if (!isDev && firstRun()) {
  app.setLoginItemSettings({ openAtLogin: true })
}

// Hide dock icon before the app starts
// This is only required for development because
// we're setting a property on the bundled app
// in production, which prevents the icon from flickering
if (isDev && electronUtils.is.macos) {
  app.dock.hide()
}

// Makes sure where inheriting the correct path
// Within the bundled app, the path would otherwise be different
fixPath()

app.on('window-all-closed', () => {
  if (!electronUtils.is.macos) {
    app.quit()
  }
})

const contextMenu = (tray, windows) => {
  if (process.env.CONNECTION === 'offline') {
    return outerMenu(app, tray, windows)