// @ts-nocheck
import { exec, spawn, ChildProcess } from "child_process"
import { join } from "path"
import * as electron from "electron"
import { main } from "../../package.json"

export function devElectron() {
  return new Promise((resolve, reject) => {
    let electronProcess = spawn(electron as unknown as string, ['--inspect=5858',join(__dirname, `../../${main}`)], {
      stdio: "pipe",
      // env: Object.assign(process.env, { NODE_ENV: argv.env }),
    })
    if (electronProcess) {
      electronProcess.stdout.on("data", data => {
        console.log(`${data}`)
      })
      resolve(electronProcess)
    } else {
      reject()
    }
  })
}


export function buildElectron() {
  return new Promise((resolve, reject) => {
    let tscProcess = spawn("node", [join(__dirname, "../../node_modules/@electron-forge/cli/dist/electron-forge.js"), "package"], {
      stdio: "pipe",
      // env: Object.assign(process.env, { NODE_ENV: argv.env }),
    })
    if (tscProcess) {
      tscProcess.stdout.on("data", data => {
        console.log(`[electron build]: ${data}`)
      })
      tscProcess.stdout.on("end", data => {
        console.log(`[electron build end]`)
        resolve(tscProcess)
      })
      tscProcess.stderr.on("data", data => {
        console.error(`[electron build err]: ${data}`)
        reject()
      })
    } else {
      reject()
    }
  })
}