{"version":3,"file":"process.cjs","sources":["../src/process.ts"],"sourcesContent":["import { ChildProcess, execSync } from 'child_process';\nimport { isWindows } from './env.js';\nimport logger from './logger.js';\n\n/**\n * Kills child process.\n *\n * @param child The child process to kill.\n * @param verbose Whether to explain each action.\n * @returns true if the process was successfully killed.\n */\nexport function killProcess(child: ChildProcess, verbose = false) {\n  const processId = child.pid ?? Infinity;\n  const successMessage = `Successfully shut down process \"${processId}\".`;\n  if (verbose) {\n    logger.info(`Attempting to shut down process \"${processId}\".`);\n  }\n  if (isWindows) {\n    try {\n      if (processId) execSync('taskkill /pid ' + child.pid + ' /T /F');\n      if (verbose) {\n        logger.info();\n      }\n      return true;\n    } catch (e: unknown) {\n      if (\n        (e as Error)?.message.includes(`The process \"${processId}\" not found`)\n      ) {\n        if (verbose) {\n          logger.warn(\n            `The requested process \"${processId}\" was not found. Assuming ` +\n              'the process has already been shut down.',\n          );\n        }\n        return true;\n      } else if (verbose) {\n        logger.error((e as Error).message);\n      }\n    }\n    if (verbose) {\n      logger.error(`Could not shutdown child process \"${processId}\".`);\n    }\n    return false;\n  }\n\n  child.kill('SIGINT');\n  if (verbose) {\n    child.killed\n      ? logger.info(successMessage)\n      : logger.error(`Could not shut down child process \"${processId}\".`);\n  }\n  return child.killed;\n}\n"],"names":["logger","isWindows","execSync"],"mappings":";;;;;;;;AAWgB,SAAA,WAAA,CAAY,KAAqB,EAAA,OAAA,GAAU,KAAO,EAAA;AAXlE,EAAA,IAAA,EAAA,CAAA;AAYE,EAAM,MAAA,SAAA,GAAA,CAAY,EAAM,GAAA,KAAA,CAAA,GAAA,KAAN,IAAa,GAAA,EAAA,GAAA,QAAA,CAAA;AAC/B,EAAA,MAAM,iBAAiB,CAAmC,gCAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA;AAC1D,EAAA,IAAI,OAAS,EAAA;AACX,IAAOA,iBAAA,CAAA,IAAA,CAAK,oCAAoC,SAAa,CAAA,EAAA,CAAA,CAAA,CAAA;AAAA,GAC/D;AACA,EAAA,IAAIC,aAAW,EAAA;AACb,IAAI,IAAA;AACF,MAAI,IAAA,SAAA;AAAW,QAASC,sBAAA,CAAA,gBAAA,GAAmB,KAAM,CAAA,GAAA,GAAM,QAAQ,CAAA,CAAA;AAC/D,MAAA,IAAI,OAAS,EAAA;AACX,QAAAF,iBAAA,CAAO,IAAK,EAAA,CAAA;AAAA,OACd;AACA,MAAO,OAAA,IAAA,CAAA;AAAA,aACA,CAAP,EAAA;AACA,MAAA,IACG,CAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,CAAA,CAAA,OAAA,CAAQ,QAAS,CAAA,CAAA,aAAA,EAAgB,SAC/C,CAAA,WAAA,CAAA,CAAA,EAAA;AACA,QAAA,IAAI,OAAS,EAAA;AACX,UAAOA,iBAAA,CAAA,IAAA;AAAA,YACL,CAA0B,uBAAA,EAAA,SAAA,CAAA,iEAAA,CAAA;AAAA,WAE5B,CAAA;AAAA,SACF;AACA,QAAO,OAAA,IAAA,CAAA;AAAA,iBACE,OAAS,EAAA;AAClB,QAAOA,iBAAA,CAAA,KAAA,CAAO,EAAY,OAAO,CAAA,CAAA;AAAA,OACnC;AAAA,KACF;AACA,IAAA,IAAI,OAAS,EAAA;AACX,MAAOA,iBAAA,CAAA,KAAA,CAAM,qCAAqC,SAAa,CAAA,EAAA,CAAA,CAAA,CAAA;AAAA,KACjE;AACA,IAAO,OAAA,KAAA,CAAA;AAAA,GACT;AAEA,EAAA,KAAA,CAAM,KAAK,QAAQ,CAAA,CAAA;AACnB,EAAA,IAAI,OAAS,EAAA;AACX,IAAM,KAAA,CAAA,MAAA,GACFA,kBAAO,IAAK,CAAA,cAAc,IAC1BA,iBAAO,CAAA,KAAA,CAAM,sCAAsC,SAAa,CAAA,EAAA,CAAA,CAAA,CAAA;AAAA,GACtE;AACA,EAAA,OAAO,KAAM,CAAA,MAAA,CAAA;AACf;;;;"}