const { app } = require('electron');

// Send data from the second instance to the first instance.
const sendAdditionalData = app.commandLine.hasSwitch('send-data');

app.whenReady().then(() => {
  console.log('started'); // ping parent
});

let obj = {
  level: 1,
  testkey: 'testvalue1',
  inner: {
    level: 2,
    testkey: 'testvalue2'
  }
};
if (app.commandLine.hasSwitch('data-content')) {
  obj = JSON.parse(app.commandLine.getSwitchValue('data-content'));
  if (obj === 'undefined') {
    obj = undefined;
  }
}

const gotTheLock = sendAdditionalData
  ? app.requestSingleInstanceLock(obj)
  : app.requestSingleInstanceLock();

app.on('second-instance', (event, args, workingDirectory, data) => {
  setImmediate(() => {
    console.log([JSON.stringify(args), JSON.stringify(data)].join('||'));
    app.exit(0);
  });
});

if (!gotTheLock) {
  app.exit(1);
}