film-exif/src/electron/wait-inferno.js

40 lines
875 B
JavaScript

const { spawn } = require('child_process');
const log = require('electron-log');
const net = require('net');
const port = process.env.PORT ? (process.env.PORT - 100) : 3000;
process.env.ELECTRON_START_URL = `https://localhost:${port}`;
log.transports.file.level = false;
const client = new net.Socket();
let startedElectron = false;
const tryConnection = () => client.connect({port}, () => {
client.end();
if (!startedElectron) {
log.info('starting electron');
startedElectron = true;
const instance = spawn('node', ['node_modules/electron/cli.js', '.'], {
env: {
...process.env,
},
stdio: 'inherit',
});
instance.on('message', (message, sendHandle) => {
console.log(message, sendHandle);
});
}
});
tryConnection();
client.on('error', (error) => {
if (error) {
console.error(error);
return;
}
setTimeout(tryConnection, 1000);
});